diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | asm/rom5_part2.s | 68390 | ||||
-rw-r--r-- | asm/rom_8094928.s | 65205 | ||||
-rw-r--r-- | asm/save_menu_util.s | 457 | ||||
-rw-r--r-- | asm/trainer_card.s | 2755 | ||||
-rw-r--r-- | ld_script.txt | 3 |
6 files changed, 68422 insertions, 68391 deletions
@@ -56,7 +56,8 @@ asm/field_effect.o asm/title_screen.o asm/rom_807C828.o \ asm/rom_806936C.o asm/clear_save_data_menu.o asm/rom_8148B8C.o \ asm/mystery_event_menu.o asm/save_failed_screen.o asm/rom_81473B8.o \ asm/diploma.o asm/berry_tag_screen.o asm/lottery_corner.o \ -asm/battle_ai.o asm/trader.o +asm/battle_ai.o asm/trader.o asm/trainer_card.o asm/save_menu_util.o \ +asm/rom_8094928.o DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \ data/event_scripts.o data/battle_anim_scripts.o \ diff --git a/asm/rom5_part2.s b/asm/rom5_part2.s index 0df2c27d1..c347a0069 100644 --- a/asm/rom5_part2.s +++ b/asm/rom5_part2.s @@ -11676,68394 +11676,4 @@ _08093108: .4byte gSprites _0809310C: .4byte sub_8092FD8 thumb_func_end sub_809308C - thumb_func_start sub_8093110 -sub_8093110: @ 8093110 - push {lr} - bl sub_80932AC - ldr r0, _08093128 - bl SetMainCallback2 - ldr r0, _0809312C - adds r0, 0x9C - movs r1, 0x2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08093128: .4byte sub_8093174 -_0809312C: .4byte 0x02000000 - thumb_func_end sub_8093110 - - thumb_func_start sub_8093130 -sub_8093130: @ 8093130 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80932E4 - ldr r0, _08093164 - bl SetMainCallback2 - ldr r2, _08093168 - ldr r3, _0809316C - ldr r0, _08093170 - lsls r4, 2 - adds r4, r0 - ldrb r1, [r4, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x1A] - adds r2, 0x9C - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093164: .4byte sub_8093174 -_08093168: .4byte 0x02000000 -_0809316C: .4byte gLinkPlayers -_08093170: .4byte gUnknown_02029818 - thumb_func_end sub_8093130 - - thumb_func_start sub_8093174 -sub_8093174: @ 8093174 - push {lr} - ldr r0, _0809318C - ldr r1, _08093190 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _08093232 - lsls r0, 2 - ldr r1, _08093194 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809318C: .4byte gMain -_08093190: .4byte 0x0000043c -_08093194: .4byte _08093198 - .align 2, 0 -_08093198: - .4byte _080931BC - .4byte _080931C6 - .4byte _080931CC - .4byte _080931D2 - .4byte _080931DC - .4byte _080931EC - .4byte _08093200 - .4byte _08093206 - .4byte _08093220 -_080931BC: - bl sub_8093534 - bl sub_8093688 - b _0809320A -_080931C6: - bl sub_8093598 - b _0809320A -_080931CC: - bl sub_80935EC - b _0809320A -_080931D2: - bl sub_8093610 - bl sub_80937A4 - b _0809320A -_080931DC: - bl sub_80937BC - ldr r1, _080931F8 - ldr r0, _080931FC - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080931EC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _08093232 - b _0809320A - .align 2, 0 -_080931F8: .4byte gMain -_080931FC: .4byte 0x0000043c -_08093200: - bl sub_80937F0 - b _0809320A -_08093206: - bl sub_80937D8 -_0809320A: - ldr r1, _08093218 - ldr r0, _0809321C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08093232 - .align 2, 0 -_08093218: .4byte gMain -_0809321C: .4byte 0x0000043c -_08093220: - bl nullsub_15 - bl sub_8093800 - bl sub_8093550 - ldr r0, _08093238 - bl SetMainCallback2 -_08093232: - pop {r0} - bx r0 - .align 2, 0 -_08093238: .4byte sub_809323C - thumb_func_end sub_8093174 - - thumb_func_start sub_809323C -sub_809323C: @ 809323C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_809323C - - thumb_func_start sub_8093254 -sub_8093254: @ 8093254 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r2, _0809329C - ldrb r0, [r2, 0x6] - adds r0, 0x1 - strb r0, [r2, 0x6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _0809327E - movs r0, 0 - strb r0, [r2, 0x6] - ldrb r0, [r2, 0x5] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2, 0x5] -_0809327E: - ldrb r0, [r2, 0x4] - cmp r0, 0 - beq _08093298 - ldr r1, _080932A0 - ldr r0, _080932A4 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _080932A8 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_08093298: - pop {r0} - bx r0 - .align 2, 0 -_0809329C: .4byte 0x02000000 -_080932A0: .4byte 0x040000d4 -_080932A4: .4byte gUnknown_03004DE0 -_080932A8: .4byte 0x800000a0 - thumb_func_end sub_8093254 - - thumb_func_start sub_80932AC -sub_80932AC: @ 80932AC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080932DC - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080932E0 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - adds r0, 0xC - adds r1, r4, 0 - bl StoreWordInTwoHalfwords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080932DC: .4byte nullsub_60 -_080932E0: .4byte gTasks - thumb_func_end sub_80932AC - - thumb_func_start sub_80932E4 -sub_80932E4: @ 80932E4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0809331C - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08093320 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - strh r4, [r0, 0xA] - adds r0, 0xC - adds r1, r5, 0 - bl StoreWordInTwoHalfwords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809331C: .4byte nullsub_60 -_08093320: .4byte gTasks - thumb_func_end sub_80932E4 - - thumb_func_start sub_8093324 -sub_8093324: @ 8093324 - push {r4,r5,lr} - ldr r0, _0809336C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08093370 - adds r4, r1, r0 - ldr r5, _08093374 - ldrh r0, [r4, 0x8] - strb r0, [r5, 0x1] - adds r0, r4, 0 - adds r0, 0xC - adds r1, r5, 0 - adds r1, 0x60 - bl LoadWordFromTwoHalfwords - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0809337C - ldr r2, _08093378 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r2 - adds r0, r5, 0 - adds r0, 0x64 - movs r2, 0x38 - bl memcpy - b _08093384 - .align 2, 0 -_0809336C: .4byte nullsub_60 -_08093370: .4byte gTasks -_08093374: .4byte 0x02000000 -_08093378: .4byte gUnknown_0202FFC0 -_0809337C: - adds r0, r5, 0 - adds r0, 0x64 - bl sub_8093390 -_08093384: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8093324 - - thumb_func_start nullsub_60 -nullsub_60: @ 809338C - bx lr - thumb_func_end nullsub_60 - - thumb_func_start sub_8093390 -sub_8093390: @ 8093390 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080934A4 - ldrb r0, [r6, 0x8] - strb r0, [r5] - ldrh r0, [r6, 0xE] - strh r0, [r5, 0x10] - ldrb r0, [r6, 0x10] - strh r0, [r5, 0x12] - movs r0, 0x1 - bl sub_8053108 - adds r4, r0, 0 - movs r0, 0xA - bl sub_8053108 - cmp r0, 0 - bne _080933B6 - movs r4, 0 -_080933B6: - lsrs r0, r4, 16 - strh r0, [r5, 0x6] - lsrs r0, r4, 8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x8] - ands r4, r1 - strh r4, [r5, 0xA] - ldr r0, _080934A8 - bl FlagGet - strb r0, [r5, 0x2] - bl sub_8090FC0 - strb r0, [r5, 0x3] - bl GetPokedexSeenCount - strh r0, [r5, 0xC] - ldrb r1, [r6, 0xB] - lsls r1, 8 - ldrb r0, [r6, 0xA] - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r7, _080934AC - movs r0, 0x17 - adds r1, r7, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x14] - movs r0, 0x18 - adds r1, r7, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x16] - ldr r1, _080934B0 - movs r0, 0x23 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x1C] - ldr r4, _080934B4 - movs r0, 0x22 - adds r1, r4, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x1E] - movs r0, 0x15 - adds r1, r4, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x20] - movs r1, 0xAE - lsls r1, 3 - adds r0, r6, r1 - ldrh r0, [r0] - strh r0, [r5, 0x18] - ldr r2, _080934B8 - adds r1, r6, r2 - ldrh r1, [r1] - strh r1, [r5, 0x1A] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r7 - bls _08093436 - strh r7, [r5, 0x18] -_08093436: - ldrh r0, [r5, 0x1A] - cmp r0, r7 - bls _0809343E - strh r7, [r5, 0x1A] -_0809343E: - movs r4, 0 - bl sub_80C4D50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _0809344E - movs r4, 0x1 -_0809344E: - strb r4, [r5, 0x4] - ldr r0, _080934BC - movs r2, 0x92 - lsls r2, 3 - adds r1, r0, r2 - ldr r1, [r1] - str r1, [r5, 0x24] - movs r2, 0 - adds r6, r5, 0 - adds r6, 0x30 - adds r3, r5, 0 - adds r3, 0x28 - ldr r1, _080934C0 - adds r4, r0, r1 -_0809346A: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0809346A - movs r2, 0 - adds r3, r6, 0 - ldr r4, _080934A4 -_08093484: - adds r1, r3, r2 - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _08093484 - adds r0, r5, 0 - bl sub_80934F4 - strb r0, [r5, 0x1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080934A4: .4byte gSaveBlock2 -_080934A8: .4byte 0x00000801 -_080934AC: .4byte 0x0000270f -_080934B0: .4byte 0x000003e7 -_080934B4: .4byte 0x0000ffff -_080934B8: .4byte 0x00000572 -_080934BC: .4byte gSaveBlock1 -_080934C0: .4byte 0x00002b1c - thumb_func_end sub_8093390 - - thumb_func_start sub_80934C4 -sub_80934C4: @ 80934C4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080934D8 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080934D8: .4byte gUnknown_0202FFC0 - thumb_func_end sub_80934C4 - - thumb_func_start sav12_xor_get_clamped_above -sav12_xor_get_clamped_above: @ 80934DC - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - bl sub_8053108 - cmp r0, r4 - bls _080934EE - adds r0, r4, 0 -_080934EE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sav12_xor_get_clamped_above - - thumb_func_start sub_80934F4 -sub_80934F4: @ 80934F4 - push {lr} - adds r1, r0, 0 - movs r2, 0 - ldrh r0, [r1, 0x6] - cmp r0, 0 - bne _08093506 - ldr r0, [r1, 0x8] - cmp r0, 0 - beq _08093508 -_08093506: - movs r2, 0x1 -_08093508: - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _08093514 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_08093514: - ldrh r0, [r1, 0x1A] - cmp r0, 0x31 - bls _08093520 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_08093520: - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0809352C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_0809352C: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80934F4 - - thumb_func_start sub_8093534 -sub_8093534: @ 8093534 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_8093534 - - thumb_func_start sub_8093550 -sub_8093550: @ 8093550 - push {r4,lr} - ldr r0, _08093588 - bl SetVBlankCallback - ldr r3, _0809358C - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08093590 - ldrh r0, [r4] - movs r1, 0x3 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08093594 - ldrh r0, [r2] - movs r1, 0x18 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093588: .4byte sub_8093254 -_0809358C: .4byte 0x04000208 -_08093590: .4byte 0x04000200 -_08093594: .4byte REG_DISPSTAT - thumb_func_end sub_8093550 - - thumb_func_start sub_8093598 -sub_8093598: @ 8093598 - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - mov r4, sp - movs r6, 0 - ldr r1, _080935E4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080935E8 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080935B6: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _080935B6 - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080935E4: .4byte 0x040000d4 -_080935E8: .4byte 0x81000800 - thumb_func_end sub_8093598 - - thumb_func_start sub_80935EC -sub_80935EC: @ 80935EC - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _08093608 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0809360C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_08093608: .4byte 0x040000d4 -_0809360C: .4byte 0x81000200 - thumb_func_end sub_80935EC - - thumb_func_start sub_8093610 -sub_8093610: @ 8093610 - push {r4,r5,lr} - ldr r5, _08093664 - movs r1, 0 - strh r1, [r5] - ldr r2, _08093668 - strh r1, [r2] - ldr r3, _0809366C - strh r1, [r3] - ldr r4, _08093670 - strh r1, [r4] - ldr r0, _08093674 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08093678 - adds r0, r1, 0 - strh r0, [r5] - ldr r1, _0809367C - adds r0, r1, 0 - strh r0, [r2] - ldr r1, _08093680 - adds r0, r1, 0 - strh r0, [r3] - ldr r1, _08093684 - adds r0, r1, 0 - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08093664: .4byte REG_BG0CNT -_08093668: .4byte REG_BG1CNT -_0809366C: .4byte REG_BG2CNT -_08093670: .4byte REG_BG3CNT -_08093674: .4byte REG_BG0HOFS -_08093678: .4byte 0x00001e08 -_0809367C: .4byte 0x00000801 -_08093680: .4byte 0x00000902 -_08093684: .4byte 0x00000a03 - thumb_func_end sub_8093610 - - thumb_func_start sub_8093688 -sub_8093688: @ 8093688 - push {r4-r6,lr} - bl sub_8093324 - ldr r2, _080936D0 - movs r1, 0 - strb r1, [r2] - strb r1, [r2, 0x3] - strb r1, [r2, 0x4] - adds r0, r2, 0 - adds r0, 0x65 - ldrb r0, [r0] - strb r0, [r2, 0x2] - strb r1, [r2, 0x5] - strb r1, [r2, 0x6] - movs r4, 0 - adds r6, r2, 0 - adds r6, 0x20 - adds r5, r2, 0 - adds r5, 0x8C -_080936AE: - lsls r0, r4, 4 - adds r0, r6 - lsls r1, r4, 1 - adds r1, r5, r1 - ldrh r1, [r1] - bl sub_80EB3FC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080936AE - bl sub_80936D4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080936D0: .4byte 0x02000000 - thumb_func_end sub_8093688 - - thumb_func_start sub_80936D4 -sub_80936D4: @ 80936D4 - push {r4-r6,lr} - ldr r4, _08093798 - movs r0, 0 - strb r0, [r4, 0x7] - strb r0, [r4, 0x8] - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0xB] - strb r0, [r4, 0xC] - strb r0, [r4, 0xD] - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r4, 0 - adds r0, 0x66 - ldrb r0, [r0] - cmp r0, 0 - beq _08093704 - ldrb r0, [r4, 0x7] - adds r0, 0x1 - strb r0, [r4, 0x7] -_08093704: - adds r0, r4, 0 - adds r0, 0x6A - ldrh r0, [r0] - cmp r0, 0 - bne _08093714 - ldr r0, [r4, 0x6C] - cmp r0, 0 - beq _0809371A -_08093714: - ldrb r0, [r4, 0x8] - adds r0, 0x1 - strb r0, [r4, 0x8] -_0809371A: - ldr r1, _08093798 - ldr r0, [r1, 0x78] - cmp r0, 0 - beq _08093728 - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] -_08093728: - ldr r0, [r1, 0x7C] - cmp r0, 0 - beq _08093734 - ldrb r0, [r1, 0xA] - adds r0, 0x1 - strb r0, [r1, 0xA] -_08093734: - adds r0, r1, 0 - adds r0, 0x80 - ldrh r0, [r0] - cmp r0, 0 - beq _08093744 - ldrb r0, [r1, 0xB] - adds r0, 0x1 - strb r0, [r1, 0xB] -_08093744: - adds r0, r1, 0 - adds r0, 0x82 - ldrh r0, [r0] - cmp r0, 0 - beq _08093754 - ldrb r0, [r1, 0xC] - adds r0, 0x1 - strb r0, [r1, 0xC] -_08093754: - adds r0, r1, 0 - adds r0, 0x84 - ldrh r0, [r0] - cmp r0, 0 - beq _08093764 - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] -_08093764: - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08093792 - movs r5, 0 - ldr r4, _0809379C - adds r6, r1, 0 - adds r6, 0xE -_08093772: - lsls r0, r4, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08093788 - adds r1, r5, r6 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08093788: - adds r4, 0x1 - adds r5, 0x1 - ldr r0, _080937A0 - cmp r4, r0 - bls _08093772 -_08093792: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08093798: .4byte 0x02000000 -_0809379C: .4byte 0x00000807 -_080937A0: .4byte 0x0000080e - thumb_func_end sub_80936D4 - - thumb_func_start sub_80937A4 -sub_80937A4: @ 80937A4 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - thumb_func_end sub_80937A4 - - thumb_func_start sub_80937BC -sub_80937BC: @ 80937BC - push {r4,lr} - ldr r4, _080937D4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl MultistepInitMenuWindowBegin - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080937D4: .4byte gWindowConfig_81E6DC4 - thumb_func_end sub_80937BC - - thumb_func_start sub_80937D8 -sub_80937D8: @ 80937D8 - push {lr} - bl sub_8093E04 - bl sub_8093E28 - bl sub_8093F64 - bl sub_8093DAC - pop {r0} - bx r0 - thumb_func_end sub_80937D8 - - thumb_func_start sub_80937F0 -sub_80937F0: @ 80937F0 - push {lr} - bl sub_8093EF8 - pop {r0} - bx r0 - thumb_func_end sub_80937F0 - - thumb_func_start nullsub_15 -nullsub_15: @ 80937FC - bx lr - thumb_func_end nullsub_15 - - thumb_func_start sub_8093800 -sub_8093800: @ 8093800 - push {lr} - bl sub_809380C - pop {r0} - bx r0 - thumb_func_end sub_8093800 - - thumb_func_start sub_809380C -sub_809380C: @ 809380C - push {r4,lr} - ldr r4, _08093828 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093828: .4byte sub_809382C - thumb_func_end sub_809380C - - thumb_func_start sub_809382C -sub_809382C: @ 809382C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08093858 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, _0809385C - ldr r5, _08093860 -_0809383E: - ldrb r0, [r6] - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0809383E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093858: .4byte gUnknown_083B5EBC -_0809385C: .4byte 0x02000000 -_08093860: .4byte gTasks - thumb_func_end sub_809382C - - thumb_func_start sub_8093864 -sub_8093864: @ 8093864 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, _080938A0 - ldr r2, _080938A4 - ldrb r1, [r2, 0x11] - movs r0, 0x1 - ands r0, r1 - movs r5, 0 - strb r0, [r4, 0x5] - ldrb r0, [r2, 0x12] - strb r0, [r4, 0x6] - bl sub_80939A4 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080938A0: .4byte 0x02000000 -_080938A4: .4byte gSaveBlock2 - thumb_func_end sub_8093864 - - thumb_func_start sub_80938A8 -sub_80938A8: @ 80938A8 - push {lr} - ldr r0, _080938C4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080938BE - ldr r1, _080938C8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080938BE: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080938C4: .4byte gPaletteFade -_080938C8: .4byte 0x02000000 - thumb_func_end sub_80938A8 - - thumb_func_start rfu_NI_stopReceivingData -rfu_NI_stopReceivingData: @ 80938CC - push {lr} - ldr r0, _080938E4 - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080938EC - ldr r1, _080938E8 - movs r0, 0x5 - strb r0, [r1] - movs r0, 0x1 - b _08093914 - .align 2, 0 -_080938E4: .4byte gMain -_080938E8: .4byte 0x02000000 -_080938EC: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08093912 - ldr r2, _08093900 - ldrb r1, [r2, 0x3] - cmp r1, 0 - beq _08093904 - movs r0, 0x5 - b _0809390C - .align 2, 0 -_08093900: .4byte 0x02000000 -_08093904: - movs r0, 0x1 - eors r0, r1 - strb r0, [r2, 0x3] - movs r0, 0x3 -_0809390C: - strb r0, [r2] - movs r0, 0x1 - b _08093914 -_08093912: - movs r0, 0 -_08093914: - pop {r1} - bx r1 - thumb_func_end rfu_NI_stopReceivingData - - thumb_func_start sub_8093918 -sub_8093918: @ 8093918 - push {lr} - bl sub_8093A28 - movs r0, 0x36 - bl PlaySE - ldr r1, _08093934 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093934: .4byte 0x02000000 - thumb_func_end sub_8093918 - - thumb_func_start sub_8093938 -sub_8093938: @ 8093938 - push {lr} - bl sub_8093A48 - lsls r0, 24 - cmp r0, 0 - beq _0809394A - ldr r1, _08093950 - movs r0, 0x2 - strb r0, [r1] -_0809394A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093950: .4byte 0x02000000 - thumb_func_end sub_8093938 - - thumb_func_start sub_8093954 -sub_8093954: @ 8093954 - push {lr} - sub sp, 0x4 - bl sub_80939C0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0809397C - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0809397C: .4byte 0x02000000 - thumb_func_end sub_8093954 - - thumb_func_start sub_8093980 -sub_8093980: @ 8093980 - push {lr} - ldr r0, _0809399C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08093996 - ldr r0, _080939A0 - ldr r0, [r0, 0x60] - bl SetMainCallback2 -_08093996: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809399C: .4byte gPaletteFade -_080939A0: .4byte 0x02000000 - thumb_func_end sub_8093980 - - thumb_func_start sub_80939A4 -sub_80939A4: @ 80939A4 - push {lr} - ldr r0, _080939B8 - movs r1, 0 - bl CreateTask - ldr r0, _080939BC - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080939B8: .4byte sub_80939DC -_080939BC: .4byte gWindowConfig_81E6DC4 - thumb_func_end sub_80939A4 - - thumb_func_start sub_80939C0 -sub_80939C0: @ 80939C0 - push {lr} - ldr r0, _080939D8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080939D4 - bl DestroyTask -_080939D4: - pop {r0} - bx r0 - .align 2, 0 -_080939D8: .4byte sub_80939DC - thumb_func_end sub_80939C0 - - thumb_func_start sub_80939DC -sub_80939DC: @ 80939DC - push {lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08093A20 - adds r2, r1, r0 - ldr r0, _08093A24 - ldrb r1, [r0, 0x5] - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _08093A04 - strh r1, [r2, 0xA] - ldrh r0, [r2, 0x8] - movs r1, 0x1 - eors r0, r1 - strh r0, [r2, 0x8] -_08093A04: - movs r0, 0x8 - ldrsh r1, [r2, r0] - mov r0, sp - bl sub_8094250 - mov r0, sp - movs r1, 0xA - movs r2, 0xC - bl MenuPrint - add sp, 0x20 - pop {r0} - bx r0 - .align 2, 0 -_08093A20: .4byte gTasks -_08093A24: .4byte 0x02000000 - thumb_func_end sub_80939DC - - thumb_func_start sub_8093A28 -sub_8093A28: @ 8093A28 - push {r4,lr} - ldr r4, _08093A44 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093A44: .4byte sub_8093A68 - thumb_func_end sub_8093A28 - - thumb_func_start sub_8093A48 -sub_8093A48: @ 8093A48 - push {lr} - ldr r0, _08093A5C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08093A60 - movs r0, 0 - b _08093A62 - .align 2, 0 -_08093A5C: .4byte sub_8093A68 -_08093A60: - movs r0, 0x1 -_08093A62: - pop {r1} - bx r1 - thumb_func_end sub_8093A48 - - thumb_func_start sub_8093A68 -sub_8093A68: @ 8093A68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08093A98 - ldr r2, _08093A9C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08093A7A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08093A7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08093A98: .4byte gUnknown_083B5ED8 -_08093A9C: .4byte gTasks - thumb_func_end sub_8093A68 - - thumb_func_start sub_8093AA0 -sub_8093AA0: @ 8093AA0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08093AE0 - movs r1, 0 - strb r1, [r0, 0x4] - bl dp12_8087EA4 - movs r1, 0 - ldr r0, _08093AE4 - ldr r2, _08093AE8 - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 -_08093ABA: - strh r2, [r0] - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x9F - bls _08093ABA - ldr r0, _08093AEC - bl SetHBlankCallback - ldr r1, _08093AE0 - movs r0, 0x1 - strb r0, [r1, 0x4] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093AE0: .4byte 0x02000000 -_08093AE4: .4byte gUnknown_03004DE0 -_08093AE8: .4byte 0x0000fffc -_08093AEC: .4byte sub_8093D7C - thumb_func_end sub_8093AA0 - - thumb_func_start sub_8093AF0 -sub_8093AF0: @ 8093AF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - ldr r1, _08093BFC - movs r0, 0 - strb r0, [r1, 0x4] - mov r2, r8 - ldrh r0, [r2, 0xA] - adds r0, 0x3 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _08093B18 - movs r0, 0x4F - strh r0, [r2, 0xA] -_08093B18: - mov r4, r8 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r0, 0xA0 - subs r0, r7 - mov r9, r0 - subs r4, r0, r7 - negs r0, r7 - lsls r6, r0, 16 - movs r0, 0xA0 - lsls r0, 16 - adds r1, r4, 0 - bl __udivsi3 - adds r5, r0, 0 - ldr r1, _08093C00 - adds r5, r1 - adds r0, r5, 0 - muls r0, r4 - adds r0, r6 - mov r10, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl __udivsi3 - str r0, [sp] - lsls r5, 1 - movs r3, 0 - cmp r3, r7 - bcs _08093B74 - ldr r2, _08093C04 - mov r12, r2 - ldr r0, _08093C08 - adds r4, r0, 0 -_08093B5C: - lsls r0, r3, 16 - asrs r0, 16 - lsls r1, r0, 1 - add r1, r12 - subs r2, r4, r0 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, r7 - bcc _08093B5C -_08093B74: - lsls r2, r3, 16 - mov r1, r9 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r4, r10 - lsrs r7, r4, 16 - cmp r2, r0 - bge _08093BAE - ldr r0, _08093C04 - mov r9, r0 - ldr r4, _08093C08 - mov r12, r4 - adds r4, r1, 0 -_08093B8E: - lsrs r1, r6, 16 - adds r6, r5 - ldr r0, [sp] - subs r5, r0 - asrs r2, 16 - lsls r0, r2, 1 - add r0, r9 - add r1, r12 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _08093B8E -_08093BAE: - adds r1, r7, 0 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x9F - bgt _08093BD4 - ldr r4, _08093C04 - ldr r0, _08093C08 - adds r2, r1, r0 -_08093BBE: - lsls r1, r3, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r4 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - cmp r1, 0x9F - ble _08093BBE -_08093BD4: - movs r0, 0x1 - ldr r1, _08093BFC - strb r0, [r1, 0x4] - mov r2, r8 - movs r4, 0xA - ldrsh r0, [r2, r4] - cmp r0, 0x4A - ble _08093BEA - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08093BEA: - movs r0, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08093BFC: .4byte 0x02000000 -_08093C00: .4byte 0xffff0000 -_08093C04: .4byte gUnknown_03004DE0 -_08093C08: .4byte 0x0000fffc - thumb_func_end sub_8093AF0 - - thumb_func_start sub_8093C0C -sub_8093C0C: @ 8093C0C - push {r4,lr} - adds r4, r0, 0 - bl sub_80939C0 - bl sub_8093DAC - ldr r0, _08093C34 - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _08093C24 - bl sub_80939A4 -_08093C24: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093C34: .4byte 0x02000000 - thumb_func_end sub_8093C0C - - thumb_func_start sub_8093C38 -sub_8093C38: @ 8093C38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - ldr r1, _08093D40 - movs r2, 0 - strb r2, [r1, 0x4] - ldrh r0, [r0, 0xA] - subs r0, 0x3 - mov r3, r8 - strh r0, [r3, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _08093C5C - strh r2, [r3, 0xA] -_08093C5C: - mov r4, r8 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r0, 0xA0 - subs r0, r7 - mov r9, r0 - subs r4, r0, r7 - negs r0, r7 - lsls r6, r0, 16 - movs r0, 0xA0 - lsls r0, 16 - adds r1, r4, 0 - bl __udivsi3 - adds r5, r0, 0 - ldr r1, _08093D44 - adds r5, r1 - adds r0, r5, 0 - muls r0, r4 - adds r0, r6 - mov r10, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl __udivsi3 - str r0, [sp] - lsrs r5, 1 - movs r3, 0 - cmp r3, r7 - bcs _08093CB8 - ldr r2, _08093D48 - mov r12, r2 - ldr r0, _08093D4C - adds r4, r0, 0 -_08093CA0: - lsls r0, r3, 16 - asrs r0, 16 - lsls r1, r0, 1 - add r1, r12 - subs r2, r4, r0 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, r7 - bcc _08093CA0 -_08093CB8: - lsls r2, r3, 16 - mov r1, r9 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r4, r10 - lsrs r7, r4, 16 - cmp r2, r0 - bge _08093CF2 - ldr r0, _08093D48 - mov r9, r0 - ldr r3, _08093D4C - mov r12, r3 - adds r4, r1, 0 -_08093CD2: - lsrs r1, r6, 16 - adds r6, r5 - ldr r0, [sp] - adds r5, r0 - asrs r2, 16 - lsls r0, r2, 1 - add r0, r9 - add r1, r12 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _08093CD2 -_08093CF2: - adds r1, r7, 0 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x9F - bgt _08093D18 - ldr r4, _08093D48 - ldr r0, _08093D4C - adds r2, r1, r0 -_08093D02: - lsls r1, r3, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r4 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - cmp r1, 0x9F - ble _08093D02 -_08093D18: - movs r0, 0x1 - ldr r1, _08093D40 - strb r0, [r1, 0x4] - mov r2, r8 - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r0, 0 - bgt _08093D2E - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08093D2E: - movs r0, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08093D40: .4byte 0x02000000 -_08093D44: .4byte 0xffff0000 -_08093D48: .4byte gUnknown_03004DE0 -_08093D4C: .4byte 0x0000fffc - thumb_func_end sub_8093C38 - - thumb_func_start sub_8093D50 -sub_8093D50: @ 8093D50 - push {lr} - ldr r1, _08093D74 - movs r0, 0 - strb r0, [r1, 0x4] - bl SetHBlankCallback - bl sub_8093E04 - ldr r0, _08093D78 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093D74: .4byte 0x02000000 -_08093D78: .4byte sub_8093A68 - thumb_func_end sub_8093D50 - - thumb_func_start sub_8093D7C -sub_8093D7C: @ 8093D7C - ldr r1, _08093DA0 - ldr r0, _08093DA4 - ldrh r2, [r0] - movs r0, 0xFF - ands r0, r2 - lsls r0, 1 - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08093DA8 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_08093DA0: .4byte gUnknown_03004DE0 -_08093DA4: .4byte REG_VCOUNT -_08093DA8: .4byte REG_BG0VOFS - thumb_func_end sub_8093D7C - - thumb_func_start sub_8093DAC -sub_8093DAC: @ 8093DAC - push {lr} - ldr r0, _08093DBC - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _08093DC0 - bl sub_8093DEC - b _08093DC4 - .align 2, 0 -_08093DBC: .4byte 0x02000000 -_08093DC0: - bl sub_8093DC8 -_08093DC4: - pop {r0} - bx r0 - thumb_func_end sub_8093DAC - - thumb_func_start sub_8093DC8 -sub_8093DC8: @ 8093DC8 - push {lr} - bl MenuZeroFillScreen - bl sub_80940E4 - bl sub_8093F14 - bl sub_8093F80 - bl sub_8093FD0 - bl sub_8094038 - bl sub_8094140 - pop {r0} - bx r0 - thumb_func_end sub_8093DC8 - - thumb_func_start sub_8093DEC -sub_8093DEC: @ 8093DEC - push {lr} - bl MenuZeroFillScreen - bl sub_80940E4 - bl sub_8093F48 - bl sub_8094188 - pop {r0} - bx r0 - thumb_func_end sub_8093DEC - - thumb_func_start sub_8093E04 -sub_8093E04: @ 8093E04 - ldr r0, _08093E20 - ldr r2, _08093E24 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - movs r2, 0 - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08093E20: .4byte REG_BG0VOFS -_08093E24: .4byte 0x0000fffc - thumb_func_end sub_8093E04 - - thumb_func_start sub_8093E28 -sub_8093E28: @ 8093E28 - push {r4-r7,lr} - bl sub_8093EA0 - ldr r0, _08093E84 - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r3, _08093E88 - movs r4, 0xC0 - lsls r4, 19 - movs r5, 0xA4 - lsls r5, 5 - ldr r1, _08093E8C - ldr r6, _08093E90 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08093E4E: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _08093E4E - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _08093E94 - ldr r2, _08093E98 - ldr r0, _08093E8C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08093E9C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093E84: .4byte gUnknown_083B5F6C -_08093E88: .4byte gMenuTrainerCard_Gfx -_08093E8C: .4byte 0x040000d4 -_08093E90: .4byte 0x80000800 -_08093E94: .4byte gBadgesTiles -_08093E98: .4byte 0x06001480 -_08093E9C: .4byte 0x80000200 - thumb_func_end sub_8093E28 - - thumb_func_start sub_8093EA0 -sub_8093EA0: @ 8093EA0 - push {r4,lr} - ldr r1, _08093EE4 - ldr r4, _08093EE8 - ldrb r0, [r4, 0x2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08093EEC - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08093EF0 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x64 - ldrb r0, [r4] - cmp r0, 0 - beq _08093EDC - ldr r0, _08093EF4 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette -_08093EDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093EE4: .4byte gUnknown_083B5EF8 -_08093EE8: .4byte 0x02000000 -_08093EEC: .4byte gBadgesPalette -_08093EF0: .4byte gUnknown_083B5F4C -_08093EF4: .4byte gUnknown_083B5F0C - thumb_func_end sub_8093EA0 - - thumb_func_start sub_8093EF8 -sub_8093EF8: @ 8093EF8 - push {lr} - ldr r0, _08093F0C - adds r0, 0x64 - ldrb r0, [r0] - ldr r2, _08093F10 - movs r1, 0x50 - bl LoadTrainerGfx_TrainerCard - pop {r0} - bx r0 - .align 2, 0 -_08093F0C: .4byte 0x02000000 -_08093F10: .4byte 0x06001880 - thumb_func_end sub_8093EF8 - - thumb_func_start sub_8093F14 -sub_8093F14: @ 8093F14 - push {lr} - sub sp, 0x8 - ldr r0, _08093F3C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _08093F40 - ldrb r0, [r0, 0x1] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, _08093F44 - movs r2, 0xA0 - lsls r2, 1 - bl CpuFastSet - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08093F3C: .4byte gUnknown_083B5EEC -_08093F40: .4byte 0x02000000 -_08093F44: .4byte 0x06004800 - thumb_func_end sub_8093F14 - - thumb_func_start sub_8093F48 -sub_8093F48: @ 8093F48 - push {lr} - ldr r0, _08093F5C - ldr r1, _08093F60 - movs r2, 0xA0 - lsls r2, 1 - bl CpuFastSet - pop {r0} - bx r0 - .align 2, 0 -_08093F5C: .4byte gUnknown_08E8CFC0 -_08093F60: .4byte 0x06004800 - thumb_func_end sub_8093F48 - - thumb_func_start sub_8093F64 -sub_8093F64: @ 8093F64 - push {lr} - ldr r0, _08093F78 - ldr r1, _08093F7C - movs r2, 0xA0 - lsls r2, 1 - bl CpuFastSet - pop {r0} - bx r0 - .align 2, 0 -_08093F78: .4byte gUnknown_08E8D9C0 -_08093F7C: .4byte 0x06005000 - thumb_func_end sub_8093F64 - - thumb_func_start sub_8093F80 -sub_8093F80: @ 8093F80 - push {r4-r7,lr} - movs r5, 0xC4 - ldr r7, _08093FCC - movs r1, 0x5 - movs r0, 0xA0 - lsls r0, 7 - adds r6, r0, 0 -_08093F8E: - movs r0, 0x13 - lsls r3, r1, 16 - asrs r4, r3, 11 -_08093F94: - lsls r2, r0, 16 - asrs r2, 16 - adds r1, r4, r2 - lsls r1, 1 - adds r1, r7 - adds r0, r5, 0 - orrs r0, r6 - strh r0, [r1] - adds r2, 0x1 - lsls r2, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0x1A - ble _08093F94 - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _08093F8E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093FCC: .4byte 0x06004000 - thumb_func_end sub_8093F80 - - thumb_func_start sub_8093FD0 -sub_8093FD0: @ 8093FD0 - push {r4-r6,lr} - ldr r4, _0809402C - movs r2, 0xF - ldr r0, _08094030 - ldrb r0, [r0, 0x2] - adds r0, 0xF - cmp r2, r0 - bge _08094002 - movs r6, 0xC0 - lsls r6, 1 - ldr r1, _08094034 - adds r5, r1, 0 - adds r3, r0, 0 -_08093FEA: - lsls r1, r2, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r4 - adds r0, r6 - strh r5, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r2, r1, 16 - asrs r1, 16 - cmp r1, r3 - blt _08093FEA -_08094002: - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x12 - bgt _08094024 - movs r3, 0xC0 - lsls r3, 1 - movs r2, 0 -_08094010: - asrs r0, r1, 16 - lsls r1, r0, 1 - adds r1, r4 - adds r1, r3 - strh r2, [r1] - adds r0, 0x1 - lsls r1, r0, 16 - asrs r0, r1, 16 - cmp r0, 0x12 - ble _08094010 -_08094024: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809402C: .4byte 0x06004000 -_08094030: .4byte 0x02000000 -_08094034: .4byte 0x0000408f - thumb_func_end sub_8093FD0 - - thumb_func_start sub_8094038 -sub_8094038: @ 8094038 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, _080940D0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080940C2 - ldr r0, _080940D4 - mov r9, r0 - movs r0, 0 - movs r2, 0x4 - adds r1, 0xE - mov r8, r1 - ldr r7, _080940D8 - movs r1, 0xC0 - lsls r1, 6 - adds r6, r1, 0 - adds r1, r7, 0x6 - mov r12, r1 -_08094060: - lsls r0, 16 - asrs r4, r0, 16 - mov r1, r8 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r5, r2, 16 - cmp r0, 0 - beq _080940AE - asrs r1, r5, 15 - add r1, r9 - movs r2, 0xF0 - lsls r2, 2 - adds r3, r1, r2 - lsls r2, r4, 3 - adds r0, r2, r7 - ldrh r0, [r0] - orrs r0, r6 - strh r0, [r3] - ldr r0, _080940DC - adds r3, r1, r0 - adds r0, r7, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - orrs r0, r6 - strh r0, [r3] - movs r0, 0x80 - lsls r0, 3 - adds r3, r1, r0 - adds r0, r7, 0x4 - adds r0, r2, r0 - ldrh r0, [r0] - orrs r0, r6 - strh r0, [r3] - ldr r0, _080940E0 - adds r1, r0 - add r2, r12 - ldrh r0, [r2] - orrs r0, r6 - strh r0, [r1] -_080940AE: - adds r1, r4, 0x1 - lsls r1, 16 - movs r2, 0xC0 - lsls r2, 10 - adds r0, r5, r2 - lsrs r2, r0, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, 0x7 - ble _08094060 -_080940C2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080940D0: .4byte 0x02000000 -_080940D4: .4byte 0x06004000 -_080940D8: .4byte gUnknown_083B5F8C -_080940DC: .4byte 0x000003c2 -_080940E0: .4byte 0x00000402 - thumb_func_end sub_8094038 - - thumb_func_start sub_80940E4 -sub_80940E4: @ 80940E4 - push {r4,lr} - movs r2, 0 - ldr r1, _08094108 - movs r4, 0 - ldr r3, _0809410C -_080940EE: - strh r4, [r1] - lsls r0, r2, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - adds r1, 0x2 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r3 - ble _080940EE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094108: .4byte 0x06004000 -_0809410C: .4byte 0x000003ff - thumb_func_end sub_80940E4 - - thumb_func_start sub_8094110 -sub_8094110: @ 8094110 - push {r4-r6,lr} - ldr r6, _0809413C - movs r2, 0x3 - movs r5, 0xA0 - lsls r5, 2 - movs r3, 0x1 - movs r4, 0xB0 - lsls r4, 2 -_08094120: - lsls r0, r2, 1 - adds r0, r6 - adds r1, r0, r5 - strh r3, [r1] - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x10 - bls _08094120 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809413C: .4byte 0x06004800 - thumb_func_end sub_8094110 - - thumb_func_start sub_8094140 -sub_8094140: @ 8094140 - push {r4,r5,lr} - ldr r0, _0809417C - bl BasicInitMenuWindow - ldr r4, _08094180 - ldr r5, _08094184 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl ConvertInternationalString - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x5 - bl MenuPrint - bl sub_80941D8 - bl sub_8094200 - bl sub_8094218 - bl sub_809429C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809417C: .4byte gWindowConfig_81E6DC4 -_08094180: .4byte gStringVar1 -_08094184: .4byte 0x02000094 - thumb_func_end sub_8094140 - - thumb_func_start sub_8094188 -sub_8094188: @ 8094188 - push {lr} - ldr r0, _080941D0 - bl BasicInitMenuWindow - bl sub_80942F8 - bl sub_8094334 - bl sub_80943C4 - bl sub_8094428 - bl sub_8094498 - bl sub_80944E8 - bl sub_8094538 - ldr r0, _080941D4 - bl BasicInitMenuWindow - bl sub_8094354 - bl sub_80943E4 - bl sub_8094448 - bl sub_80944B8 - bl sub_8094508 - bl sub_8094558 - pop {r0} - bx r0 - .align 2, 0 -_080941D0: .4byte gWindowConfig_81E6DC4 -_080941D4: .4byte gWindowConfig_81E6DE0 - thumb_func_end sub_8094188 - - thumb_func_start sub_80941D8 -sub_80941D8: @ 80941D8 - push {lr} - sub sp, 0x8 - ldr r0, _080941FC - adds r0, 0x72 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x14 - movs r2, 0x2 - bl MenuPrint - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080941FC: .4byte 0x02000000 - thumb_func_end sub_80941D8 - - thumb_func_start sub_8094200 -sub_8094200: @ 8094200 - push {lr} - ldr r0, _08094214 - adds r0, 0x88 - ldr r0, [r0] - movs r1, 0x10 - movs r2, 0x8 - bl sub_80B7AEC - pop {r0} - bx r0 - .align 2, 0 -_08094214: .4byte 0x02000000 - thumb_func_end sub_8094200 - - thumb_func_start sub_8094218 -sub_8094218: @ 8094218 - push {lr} - sub sp, 0x10 - ldr r1, _0809422C - ldrb r0, [r1, 0x7] - cmp r0, 0 - bne _08094230 - bl sub_8094110 - b _0809424A - .align 2, 0 -_0809422C: .4byte 0x02000000 -_08094230: - adds r0, r1, 0 - adds r0, 0x70 - ldrh r1, [r0] - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x10 - movs r2, 0xA - bl sub_8072B4C -_0809424A: - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end sub_8094218 - - thumb_func_start sub_8094250 -sub_8094250: @ 8094250 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - lsls r1, 16 - lsrs r3, r1, 16 - ldr r0, _08094294 - ldrh r4, [r0, 0xE] - ldrb r2, [r0, 0x10] - ldr r1, _08094298 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _08094272 - adds r0, r1, 0 - adds r0, 0x74 - ldrh r4, [r0] - adds r0, 0x2 - ldrh r2, [r0] -_08094272: - lsls r3, 16 - asrs r3, 16 - mov r0, sp - adds r1, r4, 0 - bl FormatPlayTime - adds r0, r5, 0 - mov r1, sp - movs r2, 0x30 - movs r3, 0x1 - bl sub_8072C74 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094294: .4byte gSaveBlock2 -_08094298: .4byte 0x02000000 - thumb_func_end sub_8094250 - - thumb_func_start sub_809429C -sub_809429C: @ 809429C - push {r4-r6,lr} - ldr r6, _080942F0 - ldrb r0, [r6, 0x1] - cmp r0, 0 - beq _080942EA - ldr r0, _080942F4 - adds r1, r6, 0 - adds r1, 0x20 - bl StringCopy - movs r5, 0 - strb r5, [r0] - adds r0, 0x1 - adds r1, r6, 0 - adds r1, 0x30 - bl StringCopy - ldr r4, _080942F4 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xE - bl MenuPrint - adds r1, r6, 0 - adds r1, 0x40 - adds r0, r4, 0 - bl StringCopy - strb r5, [r0] - adds r0, 0x1 - adds r1, r6, 0 - adds r1, 0x50 - bl StringCopy - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x10 - bl MenuPrint -_080942EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080942F0: .4byte 0x02000000 -_080942F4: .4byte gStringVar1 - thumb_func_end sub_809429C - - thumb_func_start sub_80942F8 -sub_80942F8: @ 80942F8 - push {r4,r5,lr} - ldr r4, _08094328 - ldr r5, _0809432C - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl ConvertInternationalString - ldr r1, _08094330 - adds r0, r4, 0 - bl StringAppend - adds r0, r4, 0 - movs r1, 0x1C - movs r2, 0x2 - bl sub_8072B4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094328: .4byte gStringVar1 -_0809432C: .4byte 0x02000094 -_08094330: .4byte gOtherText_TrainersTrainerCard - thumb_func_end sub_80942F8 - - thumb_func_start sub_8094334 -sub_8094334: @ 8094334 - push {lr} - ldr r0, _0809434C - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _08094348 - ldr r0, _08094350 - movs r1, 0x3 - movs r2, 0x5 - bl MenuPrint -_08094348: - pop {r0} - bx r0 - .align 2, 0 -_0809434C: .4byte 0x02000000 -_08094350: .4byte gOtherText_FirstHOF - thumb_func_end sub_8094334 - - thumb_func_start sub_8094354 -sub_8094354: @ 8094354 - push {r4,r5,lr} - ldr r5, _080943B8 - ldrb r0, [r5, 0x8] - cmp r0, 0 - beq _080943B0 - ldr r2, _080943BC - adds r0, r5, 0 - adds r0, 0x6A - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - ldr r4, _080943C0 - adds r1, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r5, 0 - adds r0, 0x6C - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - adds r1, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r5, 0 - adds r0, 0x6E - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080943BC - movs r1, 0x1C - movs r2, 0x5 - bl sub_8072B4C -_080943B0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080943B8: .4byte 0x02000000 -_080943BC: .4byte gStringVar1 -_080943C0: .4byte gUnknown_083B5EF4 - thumb_func_end sub_8094354 - - thumb_func_start sub_80943C4 -sub_80943C4: @ 80943C4 - push {lr} - ldr r0, _080943DC - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _080943D8 - ldr r0, _080943E0 - movs r1, 0x3 - movs r2, 0x7 - bl MenuPrint -_080943D8: - pop {r0} - bx r0 - .align 2, 0 -_080943DC: .4byte 0x02000000 -_080943E0: .4byte gOtherText_LinkCableBattles - thumb_func_end sub_80943C4 - - thumb_func_start sub_80943E4 -sub_80943E4: @ 80943E4 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08094424 - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0809441C - adds r0, r4, 0 - adds r0, 0x78 - ldrh r1, [r0] - mov r0, sp - bl ConvertIntToDecimalString - mov r0, sp - movs r1, 0x16 - movs r2, 0x7 - bl sub_8072B4C - adds r0, r4, 0 - adds r0, 0x7A - ldrh r1, [r0] - mov r0, sp - bl ConvertIntToDecimalString - mov r0, sp - movs r1, 0x1C - movs r2, 0x7 - bl sub_8072B4C -_0809441C: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094424: .4byte 0x02000000 - thumb_func_end sub_80943E4 - - thumb_func_start sub_8094428 -sub_8094428: @ 8094428 - push {lr} - ldr r0, _08094440 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _0809443C - ldr r0, _08094444 - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint -_0809443C: - pop {r0} - bx r0 - .align 2, 0 -_08094440: .4byte 0x02000000 -_08094444: .4byte gOtherText_BattleTowerWinRecord - thumb_func_end sub_8094428 - - thumb_func_start sub_8094448 -sub_8094448: @ 8094448 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08094494 - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _0809448C - adds r0, r4, 0 - adds r0, 0x7C - ldrh r1, [r0] - mov r0, sp - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C44 - mov r0, sp - movs r1, 0x70 - movs r2, 0x78 - movs r3, 0 - bl sub_80729D8 - adds r0, r4, 0 - adds r0, 0x7E - ldrh r1, [r0] - mov r0, sp - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C44 - mov r0, sp - movs r1, 0x95 - movs r2, 0x78 - movs r3, 0 - bl sub_80729D8 -_0809448C: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094494: .4byte 0x02000000 - thumb_func_end sub_8094448 - - thumb_func_start sub_8094498 -sub_8094498: @ 8094498 - push {lr} - ldr r0, _080944B0 - ldrb r0, [r0, 0xB] - cmp r0, 0 - beq _080944AC - ldr r0, _080944B4 - movs r1, 0x3 - movs r2, 0xD - bl MenuPrint -_080944AC: - pop {r0} - bx r0 - .align 2, 0 -_080944B0: .4byte 0x02000000 -_080944B4: .4byte gOtherText_ContestRecord - thumb_func_end sub_8094498 - - thumb_func_start sub_80944B8 -sub_80944B8: @ 80944B8 - push {lr} - sub sp, 0x8 - ldr r1, _080944E4 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _080944DE - adds r0, r1, 0 - adds r0, 0x80 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x1C - movs r2, 0xD - bl sub_8072B4C -_080944DE: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080944E4: .4byte 0x02000000 - thumb_func_end sub_80944B8 - - thumb_func_start sub_80944E8 -sub_80944E8: @ 80944E8 - push {lr} - ldr r0, _08094500 - ldrb r0, [r0, 0xC] - cmp r0, 0 - beq _080944FC - ldr r0, _08094504 - movs r1, 0x3 - movs r2, 0xB - bl MenuPrint -_080944FC: - pop {r0} - bx r0 - .align 2, 0 -_08094500: .4byte 0x02000000 -_08094504: .4byte gOtherText_MixingRecord - thumb_func_end sub_80944E8 - - thumb_func_start sub_8094508 -sub_8094508: @ 8094508 - push {lr} - sub sp, 0x8 - ldr r1, _08094534 - ldrb r0, [r1, 0xC] - cmp r0, 0 - beq _0809452E - adds r0, r1, 0 - adds r0, 0x82 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x1C - movs r2, 0xB - bl sub_8072B4C -_0809452E: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08094534: .4byte 0x02000000 - thumb_func_end sub_8094508 - - thumb_func_start sub_8094538 -sub_8094538: @ 8094538 - push {lr} - ldr r0, _08094550 - ldrb r0, [r0, 0xD] - cmp r0, 0 - beq _0809454C - ldr r0, _08094554 - movs r1, 0x3 - movs r2, 0x9 - bl MenuPrint -_0809454C: - pop {r0} - bx r0 - .align 2, 0 -_08094550: .4byte 0x02000000 -_08094554: .4byte gOtherText_TradeRecord - thumb_func_end sub_8094538 - - thumb_func_start sub_8094558 -sub_8094558: @ 8094558 - push {lr} - sub sp, 0x8 - ldr r1, _08094584 - ldrb r0, [r1, 0xD] - cmp r0, 0 - beq _0809457E - adds r0, r1, 0 - adds r0, 0x84 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x1C - movs r2, 0x9 - bl sub_8072B4C -_0809457E: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08094584: .4byte 0x02000000 - thumb_func_end sub_8094558 - - thumb_func_start unref_sub_8094588 -unref_sub_8094588: @ 8094588 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - ldr r4, _080945B4 - ldr r0, _080945B8 - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0809459E - ldr r4, _080945BC -_0809459E: - lsls r1, r3, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080945B4: .4byte gOtherText_Boy -_080945B8: .4byte gSaveBlock2 -_080945BC: .4byte gOtherText_Girl - thumb_func_end unref_sub_8094588 - - thumb_func_start sub_80945C0 -sub_80945C0: @ 80945C0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - movs r6, 0xC - bl sub_809473C - lsls r0, 24 - cmp r0, 0 - beq _080945D8 - movs r6, 0xD -_080945D8: - ldr r0, _08094658 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0809465C - lsls r0, r5, 24 - lsrs r0, 24 - lsls r1, r4, 24 - lsrs r1, 24 - adds r2, r5, r6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r4, 0 - adds r3, 0xB - lsls r3, 24 - lsrs r3, 24 - bl MenuDrawTextWindow - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r5, r0, 16 - asrs r0, 16 - lsls r1, r4, 16 - movs r2, 0x80 - lsls r2, 9 - adds r1, r2 - lsrs r4, r1, 16 - asrs r1, 16 - bl sub_8094778 - lsls r5, 16 - asrs r5, 16 - lsls r1, r4, 16 - asrs r4, r1, 16 - movs r0, 0x80 - lsls r0, 10 - adds r1, r0 - asrs r1, 16 - adds r0, r5, 0 - bl sub_8094740 - adds r1, r4, 0x4 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_80947B0 - adds r1, r4, 0x6 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_80947F8 - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094844 - b _080946C2 - .align 2, 0 -_08094658: .4byte 0x00000801 -_0809465C: - lsls r0, r5, 24 - lsrs r0, 24 - lsls r1, r4, 24 - lsrs r1, 24 - adds r2, r5, r6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r4, 0 - adds r3, 0x9 - lsls r3, 24 - lsrs r3, 24 - bl MenuDrawTextWindow - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r5, r0, 16 - asrs r0, 16 - lsls r1, r4, 16 - movs r2, 0x80 - lsls r2, 9 - adds r1, r2 - lsrs r4, r1, 16 - asrs r1, 16 - bl sub_8094778 - lsls r5, 16 - asrs r5, 16 - lsls r1, r4, 16 - asrs r4, r1, 16 - movs r0, 0x80 - lsls r0, 10 - adds r1, r0 - asrs r1, 16 - adds r0, r5, 0 - bl sub_8094740 - adds r1, r4, 0x4 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_80947B0 - adds r4, 0x6 - lsls r4, 16 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094844 -_080946C2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80945C0 - - thumb_func_start sub_80946C8 -sub_80946C8: @ 80946C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - lsls r1, 16 - lsrs r5, r1, 16 - mov r8, r5 - movs r6, 0xC - bl sub_809473C - lsls r0, 24 - cmp r0, 0 - beq _080946E8 - movs r6, 0xD -_080946E8: - ldr r0, _08094710 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08094714 - lsls r0, r4, 24 - lsrs r0, 24 - lsls r1, r5, 24 - lsrs r1, 24 - adds r2, r4, r6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r5, 0 - adds r3, 0xB - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - b _08094730 - .align 2, 0 -_08094710: .4byte 0x00000801 -_08094714: - lsls r0, r7, 24 - lsrs r0, 24 - mov r2, r8 - lsls r1, r2, 24 - lsrs r1, 24 - adds r2, r7, r6 - lsls r2, 24 - lsrs r2, 24 - mov r3, r8 - adds r3, 0x9 - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect -_08094730: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80946C8 - - thumb_func_start sub_809473C -sub_809473C: @ 809473C - movs r0, 0x1 - bx lr - thumb_func_end sub_809473C - - thumb_func_start sub_8094740 -sub_8094740: @ 8094740 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08094770 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r2, r5, 0 - bl MenuPrint - ldr r0, _08094774 - adds r4, 0xC - lsls r4, 24 - lsrs r4, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8072B4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094770: .4byte gOtherText_Player -_08094774: .4byte gSaveBlock2 - thumb_func_end sub_8094740 - - thumb_func_start sub_8094778 -sub_8094778: @ 8094778 - push {r4,r5,lr} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _080947AC - ldrb r1, [r0, 0x14] - mov r0, sp - bl sub_80FBFF8 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl MenuPrint - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080947AC: .4byte gMapHeader - thumb_func_end sub_8094778 - - thumb_func_start sub_80947B0 -sub_80947B0: @ 80947B0 - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080947F4 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r2, r5, 0 - bl MenuPrint - bl GetBadgeCount - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - bl ConvertIntToDecimalString - adds r4, 0xC - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8072B4C - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080947F4: .4byte gOtherText_Badges - thumb_func_end sub_80947B0 - - thumb_func_start sub_80947F8 -sub_80947F8: @ 80947F8 - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08094840 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r2, r5, 0 - bl MenuPrint - bl GetPokedexSeenCount - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, sp - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r4, 0xC - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8072B4C - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094840: .4byte gOtherText_Pokedex - thumb_func_end sub_80947F8 - - thumb_func_start sub_8094844 -sub_8094844: @ 8094844 - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08094888 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r2, r5, 0 - bl MenuPrint - ldr r0, _0809488C - ldrh r1, [r0, 0xE] - ldrb r2, [r0, 0x10] - mov r0, sp - movs r3, 0x1 - bl FormatPlayTime - adds r4, 0xC - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8072B4C - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094888: .4byte gOtherText_PlayTime -_0809488C: .4byte gSaveBlock2 - thumb_func_end sub_8094844 - - thumb_func_start GetBadgeCount -GetBadgeCount: @ 8094890 - push {r4,r5,lr} - movs r5, 0 - ldr r4, _080948BC -_08094896: - lsls r0, r4, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080948AA - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080948AA: - adds r4, 0x1 - ldr r0, _080948C0 - cmp r4, r0 - ble _08094896 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080948BC: .4byte 0x00000807 -_080948C0: .4byte 0x0000080e - thumb_func_end GetBadgeCount - - thumb_func_start GetPokedexSeenCount -GetPokedexSeenCount: @ 80948C4 - push {lr} - bl sub_806912C - cmp r0, 0 - beq _080948D6 - movs r0, 0x1 - bl pokedex_count - b _080948DC -_080948D6: - movs r0, 0x1 - bl sub_8090F68 -_080948DC: - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end GetPokedexSeenCount - - thumb_func_start FormatPlayTime -FormatPlayTime: @ 80948E4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r3, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r4, 16 - lsrs r4, 16 - bl ConvertIntToDecimalString - adds r5, r0, 0 - movs r0, 0 - strb r0, [r5] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0 - beq _0809490E - movs r0, 0xF0 - strb r0, [r5, 0x1] - b _08094910 -_0809490E: - strb r4, [r5, 0x1] -_08094910: - movs r0, 0 - strb r0, [r5, 0x2] - adds r5, 0x3 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end FormatPlayTime - - thumb_func_start unref_sub_8094928 -unref_sub_8094928: @ 8094928 - push {lr} - ldr r1, _08094938 - ldr r2, _0809493C - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_08094938: .4byte gPokemonStorage -_0809493C: .4byte 0x000083d0 - thumb_func_end unref_sub_8094928 - - thumb_func_start unref_sub_8094940 -unref_sub_8094940: @ 8094940 - push {lr} - adds r1, r0, 0 - ldr r0, _08094950 - ldr r2, _08094954 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_08094950: .4byte gPokemonStorage -_08094954: .4byte 0x000083d0 - thumb_func_end unref_sub_8094940 - - thumb_func_start sub_8094958 -sub_8094958: @ 8094958 - push {r4,lr} - ldr r4, _08094974 - bl sub_803FBBC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8094998 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094974: .4byte gUnknown_02038470 - thumb_func_end sub_8094958 - - thumb_func_start sub_8094978 -sub_8094978: @ 8094978 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r2, 1 - adds r0, r2 - ldr r3, _08094994 - adds r0, r3 - bl sub_8094A74 - pop {r0} - bx r0 - .align 2, 0 -_08094994: .4byte 0x0201606c - thumb_func_end sub_8094978 - - thumb_func_start sub_8094998 -sub_8094998: @ 8094998 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080949CE - cmp r4, 0 - beq _080949C0 - movs r0, 0x30 - strb r0, [r6] - movs r0, 0x45 - strb r0, [r6, 0x1] - movs r0, 0x12 - strb r0, [r6, 0x2] - b _08094A68 -_080949C0: - movs r0, 0x3 - strb r0, [r6] - movs r0, 0x12 - strb r0, [r6, 0x1] - movs r0, 0x45 - strb r0, [r6, 0x2] - b _08094A68 -_080949CE: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08094A0C - movs r5, 0x1 - movs r0, 0 - bl battle_get_side_with_given_state - mov r2, sp - ldr r1, _08094A08 - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, 0 - mov r1, sp -_080949F2: - ldrb r0, [r1] - cmp r4, r0 - beq _08094A00 - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, 0x1 -_08094A00: - adds r4, 0x1 - cmp r4, 0x5 - ble _080949F2 - b _08094A50 - .align 2, 0 -_08094A08: .4byte gUnknown_02024A6A -_08094A0C: - movs r5, 0x2 - movs r0, 0 - bl battle_get_side_with_given_state - mov r1, sp - ldr r4, _08094A70 - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1] - movs r0, 0x2 - bl battle_get_side_with_given_state - mov r1, sp - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1, 0x1] - movs r4, 0 -_08094A36: - ldrb r0, [r1] - cmp r4, r0 - beq _08094A4A - ldrb r0, [r1, 0x1] - cmp r4, r0 - beq _08094A4A - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, 0x1 -_08094A4A: - adds r4, 0x1 - cmp r4, 0x5 - ble _08094A36 -_08094A50: - movs r4, 0 - mov r3, sp -_08094A54: - adds r0, r6, r4 - ldrb r1, [r3] - lsls r1, 4 - ldrb r2, [r3, 0x1] - orrs r1, r2 - strb r1, [r0] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _08094A54 -_08094A68: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08094A70: .4byte gUnknown_02024A6A - thumb_func_end sub_8094998 - - thumb_func_start sub_8094A74 -sub_8094A74: @ 8094A74 - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r0, r2, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08094A9C - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - b _08094AA8 -_08094A9C: - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x3 -_08094AA8: - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094ADC - cmp r7, 0 - beq _08094ACE - movs r0, 0x30 - strb r0, [r5] - movs r0, 0x45 - strb r0, [r5, 0x1] - movs r0, 0x12 - strb r0, [r5, 0x2] - b _08094B5E -_08094ACE: - movs r0, 0x3 - strb r0, [r5] - movs r0, 0x12 - strb r0, [r5, 0x1] - movs r0, 0x45 - strb r0, [r5, 0x2] - b _08094B5E -_08094ADC: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08094B14 - movs r3, 0x1 - mov r2, sp - ldr r1, _08094B10 - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, 0 - mov r1, sp -_08094AF8: - ldrb r0, [r1] - cmp r4, r0 - beq _08094B06 - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, 0x1 -_08094B06: - adds r4, 0x1 - cmp r4, 0x5 - ble _08094AF8 - b _08094B46 - .align 2, 0 -_08094B10: .4byte gUnknown_02024A6A -_08094B14: - movs r3, 0x2 - mov r1, sp - ldr r2, _08094B68 - lsls r0, r4, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - lsls r0, r6, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x1] - movs r4, 0 -_08094B2C: - ldrb r0, [r1] - cmp r4, r0 - beq _08094B40 - ldrb r0, [r1, 0x1] - cmp r4, r0 - beq _08094B40 - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, 0x1 -_08094B40: - adds r4, 0x1 - cmp r4, 0x5 - ble _08094B2C -_08094B46: - movs r4, 0 - mov r3, sp -_08094B4A: - adds r0, r5, r4 - ldrb r1, [r3] - lsls r1, 4 - ldrb r2, [r3, 0x1] - orrs r1, r2 - strb r1, [r0] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _08094B4A -_08094B5E: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08094B68: .4byte gUnknown_02024A6A - thumb_func_end sub_8094A74 - - thumb_func_start sub_8094B6C -sub_8094B6C: @ 8094B6C - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r7, 0 - bl sub_806B528 - lsls r0, 24 - cmp r0, 0 - beq _08094C16 - lsls r0, r4, 1 - adds r0, r4 - ldr r1, _08094BCC - adds r4, r0, r1 - movs r2, 0 - add r6, sp - mov r12, r6 - movs r6, 0xF - mov r3, sp -_08094B9A: - adds r1, r4, r2 - ldrb r0, [r1] - lsrs r0, 4 - strb r0, [r3] - adds r3, 0x1 - ldrb r1, [r1] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _08094B9A - mov r0, r12 - ldrb r3, [r0] - movs r2, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, r5 - bne _08094BD0 - mov r0, sp - ldrb r7, [r0] - strb r3, [r0] - b _08094BE4 - .align 2, 0 -_08094BCC: .4byte 0x0201606c -_08094BD0: - adds r2, 0x1 - cmp r2, 0x5 - bgt _08094BE4 - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, r5 - bne _08094BD0 - adds r7, r0, 0 - strb r3, [r1] -_08094BE4: - cmp r2, 0x6 - beq _08094C16 - mov r0, r12 - strb r7, [r0] - mov r0, sp - ldrb r0, [r0] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x1] - orrs r0, r1 - strb r0, [r4] - mov r0, sp - ldrb r0, [r0, 0x2] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x3] - orrs r0, r1 - strb r0, [r4, 0x1] - mov r0, sp - ldrb r0, [r0, 0x4] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x5] - orrs r0, r1 - strb r0, [r4, 0x2] -_08094C16: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8094B6C - - thumb_func_start sub_8094C20 -sub_8094C20: @ 8094C20 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0x1 - ands r1, r2 - lsrs r2, r0, 25 - cmp r1, 0 - beq _08094C40 - ldr r0, _08094C3C - adds r0, r2, r0 - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - b _08094C48 - .align 2, 0 -_08094C3C: .4byte gUnknown_02038470 -_08094C40: - ldr r0, _08094C50 - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r1, r0, 4 -_08094C48: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_08094C50: .4byte gUnknown_02038470 - thumb_func_end sub_8094C20 - - thumb_func_start sub_8094C54 -sub_8094C54: @ 8094C54 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r1, 0x1 - ands r1, r3 - lsrs r3, r0, 25 - cmp r1, 0 - beq _08094C7C - ldr r0, _08094C78 - adds r0, r3, r0 - ldrb r2, [r0] - movs r1, 0xF0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - b _08094C8C - .align 2, 0 -_08094C78: .4byte gUnknown_02038470 -_08094C7C: - ldr r2, _08094C94 - adds r2, r3, r2 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - lsls r1, r4, 4 - orrs r0, r1 - strb r0, [r2] -_08094C8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094C94: .4byte gUnknown_02038470 - thumb_func_end sub_8094C54 - - thumb_func_start sub_8094C98 -sub_8094C98: @ 8094C98 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - bl sub_8094C20 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8094C20 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_8094C54 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8094C54 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8094C98 - - thumb_func_start pokemon_order_func -pokemon_order_func: @ 8094CD4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - movs r2, 0 - ldr r5, _08094CFC -_08094CE0: - adds r0, r3, r5 - ldrb r1, [r0] - lsrs r0, r1, 4 - cmp r0, r4 - beq _08094CF8 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xF - ands r0, r1 - cmp r0, r4 - bne _08094D00 -_08094CF8: - adds r0, r2, 0 - b _08094D12 - .align 2, 0 -_08094CFC: .4byte gUnknown_02038470 -_08094D00: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _08094CE0 - movs r0, 0 -_08094D12: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end pokemon_order_func - - thumb_func_start pokemon_change_order -pokemon_change_order: @ 8094D18 - push {r4,r5,lr} - ldr r0, _08094D58 - ldr r1, _08094D5C - movs r2, 0x96 - lsls r2, 2 - bl memcpy - movs r4, 0 - movs r5, 0x64 -_08094D2A: - adds r0, r4, 0 - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - ldr r1, _08094D5C - adds r0, r1 - adds r1, r4, 0 - muls r1, r5 - ldr r2, _08094D58 - adds r1, r2 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08094D2A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094D58: .4byte 0x0201b000 -_08094D5C: .4byte gPlayerParty - thumb_func_end pokemon_change_order - - thumb_func_start sub_8094D60 -sub_8094D60: @ 8094D60 - push {r4,r5,lr} - ldr r4, _08094DA8 - add sp, r4 - ldr r1, _08094DAC - movs r2, 0x96 - lsls r2, 2 - mov r0, sp - bl memcpy - movs r4, 0 - movs r5, 0x64 -_08094D76: - adds r0, r4, 0 - bl sub_8094C20 - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - ldr r1, _08094DAC - adds r0, r1 - adds r1, r4, 0 - muls r1, r5 - add r1, sp - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08094D76 - movs r3, 0x96 - lsls r3, 2 - add sp, r3 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094DA8: .4byte 0xfffffda8 -_08094DAC: .4byte gPlayerParty - thumb_func_end sub_8094D60 - - thumb_func_start unref_sub_8094DB0 -unref_sub_8094DB0: @ 8094DB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - movs r7, 0x64 - ldr r0, _08094E08 - mov r8, r0 -_08094DBE: - adds r0, r6, 0 - bl sub_8094C20 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08094E0C - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08094E0C - movs r0, 0 - bl sub_8094C20 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - adds r1, r6, 0 - bl sub_8094C98 - adds r0, r4, 0 - muls r0, r7 - add r0, r8 - adds r1, r5, 0 - bl sub_806E6F0 - b _08094E16 - .align 2, 0 -_08094E08: .4byte gPlayerParty -_08094E0C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _08094DBE -_08094E16: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8094DB0 - - thumb_func_start sub_8094E20 -sub_8094E20: @ 8094E20 - push {lr} - ldr r3, _08094E44 - ldrb r1, [r3, 0x8] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r3, 0x8] - ldr r1, _08094E48 - strb r0, [r1] - bl nullsub_14 - bl pokemon_change_order - movs r0, 0x1 - movs r1, 0xFF - bl sub_806AFAC - pop {r0} - bx r0 - .align 2, 0 -_08094E44: .4byte gPaletteFade -_08094E48: .4byte gUnknown_02038473 - thumb_func_end sub_8094E20 - - thumb_func_start sub_8094E4C -sub_8094E4C: @ 8094E4C - push {lr} - movs r0, 0x3 - bl sub_8094E20 - pop {r0} - bx r0 - thumb_func_end sub_8094E4C - - thumb_func_start sub_8094E58 -sub_8094E58: @ 8094E58 - push {r4,r5,lr} - ldr r1, _08094E78 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0xA - bls _08094E6E - b _08095048 -_08094E6E: - lsls r0, 2 - ldr r1, _08094E7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094E78: .4byte 0x0201b000 -_08094E7C: .4byte _08094E80 - .align 2, 0 -_08094E80: - .4byte _08094EAC - .4byte _08094F28 - .4byte _08094F3C - .4byte _08094F4A - .4byte _08094F6C - .4byte _08094F80 - .4byte _08094F94 - .4byte _08094FA8 - .4byte _08094FBC - .4byte _08094FD0 - .4byte _08095000 -_08094EAC: - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094EDC - ldr r1, _08094ED4 - ldr r0, _08094ED8 - adds r4, r1, r0 - ldrh r2, [r4] - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0x6 - bne _08094EEC - movs r0, 0 - strh r0, [r4] - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094ED4: .4byte 0x0201b000 -_08094ED8: .4byte 0x00000266 -_08094EDC: - ldr r1, _08094F10 - ldr r0, _08094F14 - adds r4, r1, r0 - ldrh r2, [r4] - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0x5 - bgt _08094F1C -_08094EEC: - movs r3, 0x98 - lsls r3, 2 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r1, r2, 24 - lsrs r1, 24 - movs r2, 0 - ldrsh r3, [r4, r2] - movs r2, 0x64 - muls r2, r3 - ldr r3, _08094F18 - adds r2, r3 - bl sub_806D90C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _08095048 - .align 2, 0 -_08094F10: .4byte 0x0201b000 -_08094F14: .4byte 0x00000266 -_08094F18: .4byte gPlayerParty -_08094F1C: - movs r0, 0 - strh r0, [r4] - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC -_08094F28: - bl sub_806DA98 - ldr r1, _08094F38 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094F38: .4byte 0x0201b000 -_08094F3C: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - b _08094FE6 -_08094F4A: - movs r3, 0x98 - lsls r3, 2 - adds r0, r4, r3 - ldrb r0, [r0] - ldr r1, _08094F68 - adds r5, r4, r1 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08094FE2 - b _08094FF8 - .align 2, 0 -_08094F68: .4byte 0x00000266 -_08094F6C: - bl sub_806E334 - ldr r1, _08094F7C - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094F7C: .4byte 0x0201b000 -_08094F80: - bl sub_806E0C4 - ldr r1, _08094F90 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094F90: .4byte 0x0201b000 -_08094F94: - bl sub_806E53C - ldr r1, _08094FA4 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 - b _08094FEC - .align 2, 0 -_08094FA4: .4byte 0x0201b000 -_08094FA8: - bl nullsub_13 - ldr r1, _08094FB8 - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094FB8: .4byte 0x0201b000 -_08094FBC: - bl sub_806E6C8 - ldr r1, _08094FCC - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094FCC: .4byte 0x0201b000 -_08094FD0: - ldr r1, _08094FF4 - adds r5, r4, r1 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094FF8 -_08094FE2: - movs r0, 0 - strh r0, [r5] -_08094FE6: - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 -_08094FEC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08095048 - .align 2, 0 -_08094FF4: .4byte 0x00000266 -_08094FF8: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _08095048 -_08095000: - ldr r0, _08095024 - ldrb r4, [r0] - cmp r4, 0x3 - bne _0809503C - ldr r0, _08095028 - ldrh r0, [r0] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08095034 - ldr r0, _0809502C - ldr r3, _08095030 - adds r0, r3 - movs r1, 0xFF - strb r1, [r0] - b _0809503C - .align 2, 0 -_08095024: .4byte gUnknown_02038473 -_08095028: .4byte word_203855E -_0809502C: .4byte 0x0201b000 -_08095030: .4byte 0x00000259 -_08095034: - ldr r0, _08095040 - ldr r1, _08095044 - adds r0, r1 - strb r4, [r0] -_0809503C: - movs r0, 0x1 - b _0809504A - .align 2, 0 -_08095040: .4byte 0x0201b000 -_08095044: .4byte 0x00000259 -_08095048: - movs r0, 0 -_0809504A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E58 - - thumb_func_start sub_8095050 -sub_8095050: @ 8095050 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809508C - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r5, r0, 0 - cmp r5, 0 - bne _080950C8 - ldr r0, _08095090 - ldrb r4, [r0] - cmp r4, 0x1 - bne _0809509C - ldr r3, _08095094 - ldr r2, _08095098 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - b _080950DE - .align 2, 0 -_0809508C: .4byte gPlayerParty -_08095090: .4byte gUnknown_02038473 -_08095094: .4byte gTasks -_08095098: .4byte 0x0201b000 -_0809509C: - ldr r3, _080950C0 - ldr r2, _080950C4 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0x10] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0x12] - b _080950EC - .align 2, 0 -_080950C0: .4byte gTasks -_080950C4: .4byte 0x0201b000 -_080950C8: - ldr r3, _08095108 - ldr r2, _0809510C - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r4, 0x2 -_080950DE: - strh r4, [r0, 0x10] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r4, [r0, 0x12] -_080950EC: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x10] - ldr r1, _08095110 - ldr r2, _08095114 - movs r3, 0 - bl sub_806E750 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08095108: .4byte gTasks -_0809510C: .4byte 0x0201b000 -_08095110: .4byte gUnknown_083B5FF4 -_08095114: .4byte gUnknown_083B5FCC - thumb_func_end sub_8095050 - - thumb_func_start sub_8095118 -sub_8095118: @ 8095118 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08095150 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809512C - b _08095268 -_0809512C: - ldr r0, _08095154 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08095164 - ldr r5, _08095158 - ldrh r0, [r5] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08095164 - ldr r0, _0809515C - ldrh r1, [r5] - ldr r2, _08095160 - ldr r3, [r0] - b _080951AA - .align 2, 0 -_08095150: .4byte gPaletteFade -_08095154: .4byte gUnknown_02038473 -_08095158: .4byte word_203855E -_0809515C: .4byte gUnknown_03004AE4 -_08095160: .4byte sub_80952E4 -_08095164: - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08095178 - cmp r0, 0x2 - beq _08095214 - b _08095268 -_08095178: - ldr r0, _080951B4 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080951C8 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080951B8 - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809521C - bl sub_806D5A4 - ldr r3, _080951BC - ldr r0, _080951C0 - ldrh r1, [r0] - ldr r2, _080951C4 - ldr r3, [r3] -_080951AA: - adds r0, r4, 0 - bl _call_via_r3 - b _08095268 - .align 2, 0 -_080951B4: .4byte gUnknown_02038473 -_080951B8: .4byte gPlayerParty -_080951BC: .4byte gUnknown_03004AE4 -_080951C0: .4byte word_203855E -_080951C4: .4byte sub_80952E4 -_080951C8: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08095204 - adds r0, r1 - ldr r1, _08095208 - bl GetMonNickname - adds r0, r4, 0 - bl sub_806CA38 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8095050 - ldr r1, _0809520C - ldr r2, _08095210 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - b _08095268 - .align 2, 0 -_08095204: .4byte gPlayerParty -_08095208: .4byte gStringVar1 -_0809520C: .4byte sub_8095408 -_08095210: .4byte sub_8095118 -_08095214: - ldr r5, _08095224 - ldrb r0, [r5] - cmp r0, 0x1 - bne _08095228 -_0809521C: - movs r0, 0x20 - bl PlaySE - b _08095268 - .align 2, 0 -_08095224: .4byte gUnknown_02038473 -_08095228: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5] - cmp r0, 0x3 - bne _08095254 - ldr r1, _08095248 - movs r0, 0 - strb r0, [r1] - ldr r1, _0809524C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095250 - b _08095266 - .align 2, 0 -_08095248: .4byte gUnknown_0202E8F4 -_0809524C: .4byte gTasks -_08095250: .4byte sub_80952E4 -_08095254: - ldr r1, _08095270 - movs r0, 0 - strb r0, [r1] - ldr r1, _08095274 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095278 -_08095266: - str r1, [r0] -_08095268: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08095270: .4byte gUnknown_0202E8F4 -_08095274: .4byte gTasks -_08095278: .4byte sub_809527C - thumb_func_end sub_8095118 - - thumb_func_start sub_809527C -sub_809527C: @ 809527C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080952AC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080952B0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080952AC: .4byte gTasks -_080952B0: .4byte sub_80952B4 - thumb_func_end sub_809527C - - thumb_func_start sub_80952B4 -sub_80952B4: @ 80952B4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080952DC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080952D6 - bl sub_8094D60 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _080952E0 - bl SetMainCallback2 -_080952D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080952DC: .4byte gPaletteFade -_080952E0: .4byte sub_802E414 - thumb_func_end sub_80952B4 - - thumb_func_start sub_80952E4 -sub_80952E4: @ 80952E4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080952FC - ldrb r1, [r0] - cmp r1, 0 - beq _08095300 - adds r0, r4, 0 - bl sub_809527C - b _0809531E - .align 2, 0 -_080952FC: .4byte gUnknown_0202E8F4 -_08095300: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08095328 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809532C - str r1, [r0] -_0809531E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08095328: .4byte gTasks -_0809532C: .4byte sub_8095330 - thumb_func_end sub_80952E4 - - thumb_func_start sub_8095330 -sub_8095330: @ 8095330 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08095358 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08095350 - bl sub_8094D60 - adds r0, r4, 0 - bl DestroyTask - bl sub_80A6DCC -_08095350: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08095358: .4byte gPaletteFade - thumb_func_end sub_8095330 - - thumb_func_start sub_809535C -sub_809535C: @ 809535C - push {lr} - ldr r2, _08095380 - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _08095384 - movs r0, 0x1 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _08095388 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08095380: .4byte gPaletteFade -_08095384: .4byte sub_8095118 -_08095388: .4byte sub_809538C - thumb_func_end sub_809535C - - thumb_func_start sub_809538C -sub_809538C: @ 809538C - push {r4,r5,lr} - ldr r4, _080953D8 - ldr r5, _080953DC -_08095392: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080953F4 - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080953E0 - adds r0, r1 - ldr r1, _080953E4 - bl GetMonNickname - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_8095050 - ldrb r0, [r4] - ldr r1, _080953E8 - ldr r2, _080953EC - bl SetTaskFuncWithFollowupFunc - ldr r0, _080953F0 - bl SetMainCallback2 - b _08095400 - .align 2, 0 -_080953D8: .4byte 0x0201b260 -_080953DC: .4byte gUnknown_020384F0 -_080953E0: .4byte gPlayerParty -_080953E4: .4byte gStringVar1 -_080953E8: .4byte sub_8095408 -_080953EC: .4byte sub_8095118 -_080953F0: .4byte sub_806AEDC -_080953F4: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08095392 -_08095400: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_809538C - - thumb_func_start sub_8095408 -sub_8095408: @ 8095408 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, r7, 0 - ldr r0, _0809543C - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080954B8 - ldr r2, _08095440 - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095444 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080954B8 - .align 2, 0 -_0809543C: .4byte gPaletteFade -_08095440: .4byte gMain -_08095444: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0809545A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080954B8 -_0809545A: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080954A4 - movs r0, 0x5 - bl PlaySE - ldr r1, _08095498 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0x10] - ldr r5, _0809549C - ldr r6, _080954A0 - bl GetMenuCursorPos - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r7, 0 - bl _call_via_r1 - b _080954B8 - .align 2, 0 -_08095498: .4byte gTasks -_0809549C: .4byte gUnknown_083B5FF4 -_080954A0: .4byte gUnknown_083B5FCC -_080954A4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080954B8 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80958C4 -_080954B8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095408 - - thumb_func_start sub_80954C0 -sub_80954C0: @ 80954C0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080954D8 - ldrb r0, [r0] - cmp r0, 0 - bne _080954D4 - adds r0, r1, 0 - bl sub_80958C4 -_080954D4: - pop {r0} - bx r0 - .align 2, 0 -_080954D8: .4byte gUnknown_0202E8F6 - thumb_func_end sub_80954C0 - - thumb_func_start sub_80954DC -sub_80954DC: @ 80954DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0809552C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08095522 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _08095530 - ldr r1, _08095534 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08095538 - ldr r1, _0809553C - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08095540 - movs r1, 0x4 - str r1, [sp] - adds r1, r5, 0 - bl sub_809D8BC -_08095522: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809552C: .4byte gPaletteFade -_08095530: .4byte 0x0201b000 -_08095534: .4byte 0x00000262 -_08095538: .4byte gPlayerParty -_0809553C: .4byte gPlayerPartyCount -_08095540: .4byte sub_809535C - thumb_func_end sub_80954DC - - thumb_func_start sub_8095544 -sub_8095544: @ 8095544 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _0809557C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095580 - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809557C: .4byte gTasks -_08095580: .4byte sub_80954DC - thumb_func_end sub_8095544 - - thumb_func_start sub_8095584 -sub_8095584: @ 8095584 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080955F8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x10] - ldr r1, _080955FC - bl sub_806E7D0 - adds r0, r6, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08095610 - cmp r5, 0x1 - beq _080955C6 - cmp r5, 0x4 - beq _080955C6 - cmp r5, 0x5 - bne _08095610 -_080955C6: - bl sub_806D5A4 - ldr r4, _08095600 - bl sub_8040D08 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _08095604 - ldr r1, _08095608 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _080955F8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809560C - b _0809589A - .align 2, 0 -_080955F8: .4byte gTasks -_080955FC: .4byte gUnknown_083B5FF4 -_08095600: .4byte gStringVar1 -_08095604: .4byte gStringVar4 -_08095608: .4byte gOtherText_CantSwitchPokeWithYours -_0809560C: .4byte sub_80954C0 -_08095610: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095654 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _0809566C - bl sub_806D5A4 - ldr r1, _08095658 - adds r0, r4, 0 - bl GetMonNickname - ldr r4, _0809565C - ldr r1, _08095660 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095664 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095668 - b _0809589A - .align 2, 0 -_08095654: .4byte gPlayerParty -_08095658: .4byte gStringVar1 -_0809565C: .4byte gStringVar4 -_08095660: .4byte gOtherText_NoEnergyLeft -_08095664: .4byte gTasks -_08095668: .4byte sub_80954C0 -_0809566C: - movs r4, 0 - ldr r0, _08095678 - lsls r1, r6, 2 - mov r8, r1 - b _080956A8 - .align 2, 0 -_08095678: .4byte gUnknown_02024A68 -_0809567C: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080956A0 - adds r0, r5, 0 - bl sub_8094C20 - lsls r0, 24 - ldr r2, _080956EC - lsls r1, r4, 1 - adds r1, r2 - lsrs r0, 24 - ldrh r1, [r1] - cmp r0, r1 - bne _080956A0 - b _08095808 -_080956A0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080956F0 -_080956A8: - ldrb r0, [r0] - cmp r4, r0 - bcc _0809567C - movs r2, 0x64 - mov r9, r2 - mov r0, r9 - muls r0, r5 - ldr r1, _080956F4 - mov r10, r1 - adds r7, r0, r1 - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08095708 - bl sub_806D5A4 - ldr r4, _080956F8 - ldr r1, _080956FC - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095700 - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095704 - b _0809589A - .align 2, 0 -_080956EC: .4byte gUnknown_02024A6A -_080956F0: .4byte gUnknown_02024A68 -_080956F4: .4byte gPlayerParty -_080956F8: .4byte gStringVar4 -_080956FC: .4byte gOtherText_EGGCantBattle -_08095700: .4byte gTasks -_08095704: .4byte sub_80954C0 -_08095708: - adds r0, r5, 0 - bl sub_8094C20 - ldr r1, _0809574C - ldr r2, _08095750 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08095768 - bl sub_806D5A4 - ldr r1, _08095754 - adds r0, r7, 0 - bl GetMonNickname - ldr r4, _08095758 - ldr r1, _0809575C - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095760 - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095764 - b _0809589A - .align 2, 0 -_0809574C: .4byte 0x02000000 -_08095750: .4byte 0x0001609d -_08095754: .4byte gStringVar1 -_08095758: .4byte gStringVar4 -_0809575C: .4byte gOtherText_AlreadySelected -_08095760: .4byte gTasks -_08095764: .4byte sub_80954C0 -_08095768: - ldr r0, _08095790 - ldrb r0, [r0] - cmp r0, 0x4 - bne _080957A0 - bl sub_806D5A4 - bl sub_8040B8C - ldr r0, _08095794 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095798 - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809579C - b _0809589A - .align 2, 0 -_08095790: .4byte gUnknown_02038473 -_08095794: .4byte gStringVar4 -_08095798: .4byte gTasks -_0809579C: .4byte sub_80954C0 -_080957A0: - cmp r0, 0x2 - bne _08095854 - ldr r0, _080957EC - ldrb r4, [r0] - bl sub_806D5A4 - ldr r0, _080957F0 - lsls r4, 1 - adds r4, r0 - ldrb r0, [r4] - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r10 - ldr r1, _080957F4 - bl GetMonNickname - ldr r4, _080957F8 - ldr r1, _080957FC - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095800 - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095804 - b _0809589A - .align 2, 0 -_080957EC: .4byte gUnknown_02024E6C -_080957F0: .4byte gUnknown_02024A6A -_080957F4: .4byte gStringVar1 -_080957F8: .4byte gStringVar4 -_080957FC: .4byte gOtherText_CantBeSwitched -_08095800: .4byte gTasks -_08095804: .4byte sub_80954C0 -_08095808: - bl sub_806D5A4 - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809583C - adds r0, r1 - ldr r1, _08095840 - bl GetMonNickname - ldr r4, _08095844 - ldr r1, _08095848 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _0809584C - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095850 - b _0809589A - .align 2, 0 -_0809583C: .4byte gPlayerParty -_08095840: .4byte gStringVar1 -_08095844: .4byte gStringVar4 -_08095848: .4byte gOtherText_AlreadyBattle -_0809584C: .4byte gTasks -_08095850: .4byte sub_80954C0 -_08095854: - adds r0, r5, 0 - bl sub_8094C20 - ldr r1, _080958AC - strb r0, [r1] - ldr r1, _080958B0 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080958B4 - ldr r0, _080958B8 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094C98 - mov r0, r9 - muls r0, r4 - add r0, r10 - adds r1, r7, 0 - bl sub_806E6F0 - ldr r1, _080958BC - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080958C0 -_0809589A: - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080958AC: .4byte gUnknown_0202E8F5 -_080958B0: .4byte gUnknown_0202E8F4 -_080958B4: .4byte gUnknown_02024A6A -_080958B8: .4byte gUnknown_02024E6C -_080958BC: .4byte gTasks -_080958C0: .4byte sub_809527C - thumb_func_end sub_8095584 - - thumb_func_start sub_80958C4 -sub_80958C4: @ 80958C4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8072DEC - ldr r0, _080958FC - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldr r1, _08095900 - bl sub_806E7D0 - ldrh r0, [r4, 0x12] - strh r0, [r4, 0x10] - movs r0, 0 - movs r1, 0 - bl sub_806D538 - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080958FC: .4byte gTasks -_08095900: .4byte gUnknown_083B5FF4 - thumb_func_end sub_80958C4 - - thumb_func_start sub_8095904 -sub_8095904: @ 8095904 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp] - adds r7, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x3C] - lsls r4, 24 - lsrs r4, 24 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x4] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldr r0, [sp] - bl StringLength - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r4, 0 - bne _08095988 - movs r5, 0 - cmp r5, r8 - bcs _08095A2E -_0809593E: - ldr r1, [sp] - adds r0, r1, r5 - ldrb r2, [r0] - ldr r0, _08095980 - ands r0, r2 - lsls r0, 6 - movs r1, 0xF - ands r2, r1 - lsls r2, 5 - adds r0, r2 - ldr r1, _08095984 - adds r4, r0, r1 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x10 - bl CpuSet - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, r2 - ldr r3, [sp, 0x4] - adds r1, r7, r3 - movs r2, 0x10 - bl CpuSet - adds r7, 0x20 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _0809593E - b _08095A2E - .align 2, 0 -_08095980: .4byte 0x0000fff0 -_08095984: .4byte gFont3LatinGlyphs -_08095988: - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x8] - lsls r0, r1, 28 - lsrs r0, 24 - str r0, [sp, 0xC] - mov r2, r8 - lsls r0, r2, 21 - movs r1, 0 - lsrs r0, 1 - str r0, [sp, 0x10] -_0809599E: - movs r5, 0 - ldr r3, [sp, 0x4] - adds r3, r7, r3 - str r3, [sp, 0x14] - adds r0, r1, 0x1 - str r0, [sp, 0x18] - cmp r5, r8 - bcs _08095A12 - movs r2, 0xF - mov r12, r2 - lsls r1, 9 - ldr r0, _08095A40 - adds r1, r0 - mov r10, r1 -_080959BA: - ldr r3, [sp] - adds r0, r3, r5 - ldrb r1, [r0] - ldr r0, _08095A44 - ands r0, r1 - lsls r0, 6 - mov r2, r12 - ands r1, r2 - lsls r1, 5 - adds r0, r1 - mov r3, r10 - adds r4, r0, r3 - movs r6, 0 - adds r5, 0x1 -_080959D6: - ldrb r0, [r4] - movs r3, 0xF0 - ands r3, r0 - mov r2, r12 - ands r2, r0 - cmp r3, 0 - bne _080959E6 - ldr r3, [sp, 0xC] -_080959E6: - cmp r2, 0 - bne _080959EC - ldr r2, [sp, 0x8] -_080959EC: - mov r0, r9 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r1, [sp, 0x40] - adds r0, r1, r0 - orrs r3, r2 - strb r3, [r0] - adds r4, 0x1 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bls _080959D6 - lsls r0, r5, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080959BA -_08095A12: - ldr r0, [sp, 0x40] - adds r1, r7, 0 - ldr r3, [sp, 0x10] - lsrs r2, r3, 16 - bl CpuSet - ldr r7, [sp, 0x14] - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x18] - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _0809599E -_08095A2E: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095A40: .4byte gFont3LatinGlyphs -_08095A44: .4byte 0x0000fff0 - thumb_func_end sub_8095904 - - thumb_func_start unref_sub_8095A48 -unref_sub_8095A48: @ 8095A48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - movs r6, 0 -_08095A60: - movs r3, 0 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - beq _08095ACE -_08095A6C: - mov r0, sp - adds r0, r3 - adds r0, 0x8 - strb r2, [r0] - adds r4, 0x1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bhi _08095AA8 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - bne _08095A6C - cmp r3, 0 - beq _08095ACE - movs r6, 0x1 - cmp r3, 0x3 - bhi _08095AA8 - movs r2, 0 -_08095A96: - adds r0, r3, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - add r0, sp - adds r0, 0x8 - strb r2, [r0] - cmp r3, 0x3 - bls _08095A96 -_08095AA8: - mov r1, sp - adds r1, r3 - adds r1, 0x8 - movs r0, 0xFF - strb r0, [r1] - str r7, [sp] - ldr r0, [sp, 0x28] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r5, 0 - mov r2, r8 - movs r3, 0x80 - bl sub_8095904 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - cmp r6, 0 - beq _08095A60 -_08095ACE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8095A48 - - thumb_func_start sub_8095ADC -sub_8095ADC: @ 8095ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - movs r5, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_08095AF0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B20 - adds r0, r1 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095B0C - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095B0C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095AF0 - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095B20: .4byte gUnknown_020300A4 - thumb_func_end sub_8095ADC - - thumb_func_start sub_8095B24 -sub_8095B24: @ 8095B24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r5, r0, 5 -_08095B36: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B54 - adds r0, r1 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095B58 - lsls r0, r4, 16 - asrs r0, 16 - b _08095B66 - .align 2, 0 -_08095B54: .4byte gUnknown_020300A4 -_08095B58: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095B36 - movs r0, 0x1 - negs r0, r0 -_08095B66: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095B24 - - thumb_func_start sub_8095B6C -sub_8095B6C: @ 8095B6C - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 -_08095B72: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095BB0 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095B9A - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095B9A - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095B9A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095B72 - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095BB0: .4byte gPlayerParty - thumb_func_end sub_8095B6C - - thumb_func_start sub_8095BB4 -sub_8095BB4: @ 8095BB4 - push {r4-r7,lr} - lsls r0, 24 - movs r5, 0 - movs r6, 0 - lsrs r7, r0, 24 -_08095BBE: - cmp r5, r7 - beq _08095BF6 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095C0C - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095BF6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095BF6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095BBE - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08095C0C: .4byte gPlayerParty - thumb_func_end sub_8095BB4 - - thumb_func_start sub_8095C10 -sub_8095C10: @ 8095C10 - push {lr} - ldr r0, _08095C24 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08095C24: .4byte gUnknown_0202E8CC - thumb_func_end sub_8095C10 - - thumb_func_start sub_8095C28 -sub_8095C28: @ 8095C28 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_08095C2E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08095C5C - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095C46 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095C46: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _08095C2E - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08095C5C: .4byte gPlayerParty - thumb_func_end sub_8095C28 - - thumb_func_start unref_sub_8095C60 -unref_sub_8095C60: @ 8095C60 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl StringCopy - adds r1, r0, 0 - adds r5, r4 - cmp r1, r5 - bcs _08095C7E - movs r0, 0 -_08095C76: - strb r0, [r1] - adds r1, 0x1 - cmp r1, r5 - bcc _08095C76 -_08095C7E: - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8095C60 - - thumb_func_start sub_8095C8C -sub_8095C8C: @ 8095C8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r7, r3, 0 - ldr r5, [sp, 0x1C] - ldr r4, [sp, 0x20] - ldr r0, [sp, 0x24] - mov r9, r0 - ldr r0, [sp, 0x28] - ldr r3, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r0, r9 - lsls r0, 17 - mov r9, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r6, r2 - adds r0, r4, 0 - muls r0, r3 - adds r0, r5 - lsls r0, 1 - adds r7, r0 - movs r4, 0 - cmp r4, r8 - bcs _08095CFC - mov r0, r9 - lsrs r0, 1 - mov r9, r0 - lsls r5, r3, 1 -_08095CE2: - adds r0, r7, 0 - adds r1, r6, 0 - mov r3, r9 - lsrs r2, r3, 16 - bl CpuSet - adds r6, 0x40 - adds r7, r5 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _08095CE2 -_08095CFC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095C8C - - thumb_func_start unref_sub_8095D08 -unref_sub_8095D08: @ 8095D08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r4, r2 - lsls r3, 17 - lsrs r0, r3, 16 - str r0, [sp, 0x4] - movs r0, 0 - cmp r0, r10 - bcs _08095DB2 - movs r6, 0x80 - lsls r6, 5 - mov r5, sp - ldr r7, _08095D74 - lsrs r3, 17 - mov r9, r3 - mov r1, r9 - movs r2, 0x81 - lsls r2, 24 - orrs r1, r2 - mov r9, r1 -_08095D4E: - adds r3, r4, 0 - ldr r2, [sp, 0x4] - movs r1, 0x40 - adds r1, r4 - mov r8, r1 - adds r0, 0x1 - mov r12, r0 - cmp r2, r6 - bhi _08095D78 - movs r0, 0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, 0x4] - mov r0, r9 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _08095DA6 - .align 2, 0 -_08095D74: .4byte 0x040000d4 -_08095D78: - movs r4, 0 - strh r4, [r5] - ldr r1, _08095DC4 - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - ldr r0, _08095DC8 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r6 - subs r2, r6 - cmp r2, r6 - bhi _08095D78 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - lsrs r0, r2, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_08095DA6: - mov r4, r8 - mov r1, r12 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r10 - bcc _08095D4E -_08095DB2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095DC4: .4byte 0x040000d4 -_08095DC8: .4byte 0x81000800 - thumb_func_end unref_sub_8095D08 - - thumb_func_start sub_8095DCC -sub_8095DCC: @ 8095DCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r0, r3, 24 - cmp r0, 0 - beq _08095DE8 - cmp r0, 0x2 - bne _08095DEC -_08095DE8: - movs r2, 0x1 - b _08095DEE -_08095DEC: - ldr r2, _08095E38 -_08095DEE: - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08095E44 - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E10: - asrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - add r0, r8 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095E3C - asrs r0, r6, 16 - adds r0, r4, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E10 - b _08095E90 - .align 2, 0 -_08095E38: .4byte 0x0000ffff -_08095E3C: - adds r0, r4, 0 - b _08095E94 -_08095E40: - adds r0, r5, 0 - b _08095E94 -_08095E44: - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E5C: - asrs r5, r0, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095E80 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - beq _08095E40 -_08095E80: - asrs r0, r6, 16 - adds r0, r5, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E5C -_08095E90: - movs r0, 0x1 - negs r0, r0 -_08095E94: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095DCC - - thumb_func_start sub_8095EA0 -sub_8095EA0: @ 8095EA0 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_8095EA0 - - thumb_func_start sub_8095EB4 -sub_8095EB4: @ 8095EB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08095ED8 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _08095ECE - b _080960F4 -_08095ECE: - lsls r0, 2 - ldr r1, _08095EDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095ED8: .4byte gTasks -_08095EDC: .4byte _08095EE0 - .align 2, 0 -_08095EE0: - .4byte _08095EF4 - .4byte _08095F1C - .4byte _08095F30 - .4byte _08096042 - .4byte _080960DC -_08095EF4: - ldrb r0, [r4, 0xA] - bl sub_8096168 - bl MenuDisplayMessageBox - ldr r1, _08095F18 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _08095F28 - .align 2, 0 -_08095F18: .4byte gUnknown_083B600C -_08095F1C: - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - bne _08095F28 - b _080960F4 -_08095F28: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080960F4 -_08095F30: - bl ProcessMenuInput - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0xC] - movs r3, 0xC - ldrsh r1, [r4, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08095FC8 - cmp r1, r0 - bgt _08095F52 - subs r0, 0x1 - cmp r1, r0 - beq _08095F58 - b _08095FE8 -_08095F52: - cmp r1, 0x3 - beq _08095FC8 - b _08095FE8 -_08095F58: - ldrh r3, [r4, 0xA] - strh r3, [r4, 0xE] - ldr r2, _08095FC0 - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095F76 - subs r0, r3, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - cmp r0, 0 - bge _08095F76 - movs r0, 0x3 - strh r0, [r4, 0xE] -_08095F76: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08095F92 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08095F92 - movs r0, 0 - strh r0, [r4, 0xE] -_08095F92: - lsls r0, r3, 16 - asrs r0, 16 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _08095FA2 - b _080960F4 -_08095FA2: - strh r2, [r4, 0xA] - bl sub_8095EA0 - ldr r0, _08095FC4 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _080960F4 - .align 2, 0 -_08095FC0: .4byte gMain -_08095FC4: .4byte gUnknown_083B600C -_08095FC8: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl ScriptContext2_Disable - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080960F4 -_08095FE8: - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _08096008 - bl sub_8095C28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08096008 - bl sub_8095EA0 - ldr r0, _08096004 - b _08096022 - .align 2, 0 -_08096004: .4byte gPCText_PartyFull2 -_08096008: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08096034 - bl sub_8095C28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08096034 - bl sub_8095EA0 - ldr r0, _08096030 -_08096022: - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_08096030: .4byte gPCText_OnlyOne -_08096034: - movs r0, 0x1 - movs r1, 0 - bl fade_screen - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080960F4 -_08096042: - ldr r0, _08096088 - ldrh r1, [r0, 0x2E] - movs r3, 0x3 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080960B8 - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08096090 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0809606A - strh r3, [r4, 0xA] -_0809606A: - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - bl sub_8095EA0 - ldr r1, _0809608C - movs r3, 0xA - ldrsh r0, [r4, r3] - b _080960C2 - .align 2, 0 -_08096088: .4byte gMain -_0809608C: .4byte gUnknown_083B600C -_08096090: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080960F4 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080960A8 - strh r2, [r4, 0xA] -_080960A8: - movs r0, 0x1 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] -_080960B8: - bl sub_8095EA0 - ldr r1, _080960D8 - movs r2, 0xA - ldrsh r0, [r4, r2] -_080960C2: - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_080960D8: .4byte gUnknown_083B600C -_080960DC: - ldr r0, _080960FC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080960F4 - ldrb r0, [r4, 0xC] - bl task_intro_29 - adds r0, r5, 0 - bl DestroyTask -_080960F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080960FC: .4byte gPaletteFade - thumb_func_end sub_8095EB4 - - thumb_func_start sub_8096100 -sub_8096100: @ 8096100 - push {lr} - ldr r0, _08096128 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0809612C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_08096128: .4byte sub_8095EB4 -_0809612C: .4byte gTasks - thumb_func_end sub_8096100 - - thumb_func_start sub_8096130 -sub_8096130: @ 8096130 - push {lr} - ldr r0, _0809615C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08096160 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _08096164 - ldrb r0, [r0] - strh r0, [r1, 0xA] - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0809615C: .4byte sub_8095EB4 -_08096160: .4byte gTasks -_08096164: .4byte gUnknown_02038474 - thumb_func_end sub_8096130 - - thumb_func_start sub_8096168 -sub_8096168: @ 8096168 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080961A4 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - str r4, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080961A4: .4byte gUnknown_083B600C - thumb_func_end sub_8096168 - - thumb_func_start sub_80961A8 -sub_80961A8: @ 80961A8 - push {lr} - ldr r1, _080961C4 - ldr r0, _080961C8 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - strb r0, [r1] - ldr r1, _080961CC - ldr r0, _080961D0 - str r0, [r1] - ldr r0, _080961D4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080961C4: .4byte gUnknown_02038474 -_080961C8: .4byte gUnknown_083B6DB4 -_080961CC: .4byte gUnknown_0300485C -_080961D0: .4byte sub_8096130 -_080961D4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80961A8 - - thumb_func_start sub_80961D8 -sub_80961D8: @ 80961D8 - push {r4-r7,lr} - ldr r1, _08096258 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - adds r7, r1, 0x4 -_080961E4: - movs r4, 0 - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_080961F0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r7 - adds r0, r6, r0 - bl ZeroBoxMonData - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080961F0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080961E4 - movs r5, 0 -_08096214: - lsls r0, r5, 3 - adds r0, r5 - ldr r6, _0809625C - adds r0, r6 - ldr r1, _08096260 - bl StringCopy - adds r4, r5, 0x1 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0xD - bls _08096214 - movs r5, 0 - adds r3, r6, 0 - adds r3, 0x7E - movs r2, 0x3 -_0809623E: - adds r0, r5, r3 - adds r1, r5, 0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0809623E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096258: .4byte gPokemonStorage -_0809625C: .4byte gUnknown_020383E4 -_08096260: .4byte gPCText_BOX - thumb_func_end sub_80961D8 - - thumb_func_start sub_8096264 -sub_8096264: @ 8096264 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x20 - mov r8, r0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r9, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080962F4 - str r0, [sp, 0x18] - ldr r1, _080962F8 - add r5, sp, 0x18 - ldr r0, [r5, 0x4] - ands r0, r1 - orrs r0, r6 - str r0, [r5, 0x4] - mov r1, sp - ldr r0, _080962FC - str r0, [sp] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x4] - strh r4, [r1, 0x6] - ldr r0, _08096300 - str r0, [sp, 0x8] - movs r0, 0xC0 - lsls r0, 1 - strh r0, [r1, 0xC] - adds r0, r4, 0x1 - strh r0, [r1, 0xE] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r5, 0 - bl LoadSpritePalette - mov r0, sp - bl LoadSpriteSheets - ldr r0, _08096304 - mov r1, r8 - str r1, [r0] - movs r0, 0x90 - lsls r0, 2 - add r0, r8 - strh r4, [r0] - ldr r0, _08096308 - add r0, r8 - strh r6, [r0] - ldr r0, _0809630C - add r8, r0 - mov r0, r9 - mov r1, r8 - strb r0, [r1] - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080962F4: .4byte gBoxSelectionPopupPalette -_080962F8: .4byte 0xffff0000 -_080962FC: .4byte gBoxSelectionPopupCenterTiles -_08096300: .4byte gBoxSelectionPopupSidesTiles -_08096304: .4byte gUnknown_02038478 -_08096308: .4byte 0x00000242 -_0809630C: .4byte 0x0000023e - thumb_func_end sub_8096264 - - thumb_func_start sub_8096310 -sub_8096310: @ 8096310 - push {r4,r5,lr} - ldr r4, _08096344 - ldr r0, [r4] - ldr r1, _08096348 - adds r0, r1 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - ldr r0, [r4] - movs r5, 0x90 - lsls r5, 2 - adds r0, r5 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, r5 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096344: .4byte gUnknown_02038478 -_08096348: .4byte 0x00000242 - thumb_func_end sub_8096310 - - thumb_func_start sub_809634C -sub_809634C: @ 809634C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80963D0 - pop {r0} - bx r0 - thumb_func_end sub_809634C - - thumb_func_start sub_809635C -sub_809635C: @ 809635C - push {lr} - bl sub_809658C - pop {r0} - bx r0 - thumb_func_end sub_809635C - - thumb_func_start sub_8096368 -sub_8096368: @ 8096368 - push {lr} - ldr r0, _08096380 - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08096384 - movs r0, 0x5 - bl PlaySE - movs r0, 0xC9 - b _080963CC - .align 2, 0 -_08096380: .4byte gMain -_08096384: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080963A4 - movs r0, 0x5 - bl PlaySE - ldr r0, _080963A0 - ldr r0, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - b _080963CC - .align 2, 0 -_080963A0: .4byte gUnknown_02038478 -_080963A4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080963B8 - movs r0, 0x5 - bl PlaySE - bl sub_809662C - b _080963CA -_080963B8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080963CA - movs r0, 0x5 - bl PlaySE - bl sub_80965F8 -_080963CA: - movs r0, 0xC8 -_080963CC: - pop {r1} - bx r1 - thumb_func_end sub_8096368 - - thumb_func_start sub_80963D0 -sub_80963D0: @ 80963D0 - push {r4-r6,lr} - sub sp, 0x3C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x34] - str r1, [sp, 0x38] - movs r1, 0xC0 - lsls r1, 24 - ldr r0, [sp, 0x34] - orrs r0, r1 - str r0, [sp, 0x34] - ldr r1, _08096564 - add r4, sp, 0x34 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r4, 0x4] - add r1, sp, 0x1C - movs r2, 0 - strh r2, [r1] - mov r0, sp - adds r0, 0x1E - strh r2, [r0] - str r4, [sp, 0x20] - ldr r0, _08096568 - str r0, [sp, 0x24] - str r2, [sp, 0x28] - ldr r0, _0809656C - str r0, [sp, 0x2C] - ldr r0, _08096570 - str r0, [sp, 0x30] - add r0, sp, 0x4 - movs r2, 0x18 - bl memcpy - ldr r6, _08096574 - ldr r0, [r6] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - strb r5, [r0] - add r2, sp, 0x4 - ldr r1, [r6] - movs r5, 0x90 - lsls r5, 2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _08096578 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r2, 0x2] - adds r0, r2, 0 - movs r1, 0xA0 - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C - adds r0, r1 - str r0, [r3] - ldrb r2, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4, 0x3] - add r1, sp, 0x4 - adds r3, r5 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _08096580 - str r0, [sp, 0xC] - movs r4, 0 -_08096488: - ldr r0, [r6] - ldr r1, _08096584 - adds r0, r1 - ldrb r3, [r0] - add r0, sp, 0x4 - movs r1, 0x7C - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [r6] - lsls r3, r4, 2 - adds r2, 0x4 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C - adds r1, r0, r1 - str r1, [r2] - movs r5, 0 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _080964C2 - movs r0, 0xC4 - strh r0, [r1, 0x20] - movs r5, 0x2 -_080964C2: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080964E6 - ldr r1, [r6] - adds r1, 0x4 - adds r1, r3 - ldr r2, [r1] - movs r0, 0x70 - strh r0, [r2, 0x22] - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080964E6: - ldr r0, [r6] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08096488 - movs r4, 0 - ldr r5, _08096574 -_08096504: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 19 - movs r3, 0xF8 - lsls r3, 15 - adds r0, r3 - lsrs r0, 16 - lsls r2, r4, 24 - lsrs r2, 24 - ldr r1, [r5] - ldr r3, _08096584 - adds r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x58 - movs r3, 0 - bl sub_809A9A0 - adds r2, r0, 0 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x20 - adds r0, r1 - str r2, [r0] - cmp r2, 0 - beq _0809654C - movs r1, 0x1 - cmp r4, 0 - bne _08096544 - movs r3, 0x1 - negs r3, r3 - adds r1, r3, 0 -_08096544: - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, _08096588 - str r0, [r1, 0x1C] -_0809654C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08096504 - bl sub_809665C - add sp, 0x3C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096564: .4byte 0xffff0fff -_08096568: .4byte gDummySpriteAnimTable -_0809656C: .4byte gDummySpriteAffineAnimTable -_08096570: .4byte SpriteCallbackDummy -_08096574: .4byte gUnknown_02038478 -_08096578: .4byte 0x00000242 -_0809657C: .4byte gSprites -_08096580: .4byte gSpriteAnimTable_83B604C -_08096584: .4byte 0x0000023e -_08096588: .4byte sub_8096784 - thumb_func_end sub_80963D0 - - thumb_func_start sub_809658C -sub_809658C: @ 809658C - push {r4-r6,lr} - ldr r4, _080965F4 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080965A2 - bl DestroySprite - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080965A2: - movs r5, 0 - adds r6, r4, 0 -_080965A6: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080965C2 - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080965C2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080965A6 - movs r5, 0 -_080965CE: - ldr r0, _080965F4 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x20 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080965E2 - bl DestroySprite -_080965E2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080965CE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080965F4: .4byte gUnknown_02038478 - thumb_func_end sub_809658C - - thumb_func_start sub_80965F8 -sub_80965F8: @ 80965F8 - push {lr} - ldr r2, _08096628 - ldr r1, [r2] - movs r0, 0x8F - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bls _0809661E - ldr r0, [r2] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0809661E: - bl sub_809665C - pop {r0} - bx r0 - .align 2, 0 -_08096628: .4byte gUnknown_02038478 - thumb_func_end sub_80965F8 - - thumb_func_start sub_809662C -sub_809662C: @ 809662C - push {lr} - ldr r0, _08096644 - ldr r2, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08096648 - subs r1, r0, 0x1 - b _0809664A - .align 2, 0 -_08096644: .4byte gUnknown_02038478 -_08096648: - movs r1, 0xD -_0809664A: - movs r3, 0x8F - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_809665C - pop {r0} - bx r0 - thumb_func_end sub_809662C - - thumb_func_start sub_809665C -sub_809665C: @ 809665C - push {r4-r7,lr} - ldr r5, _080966B4 - ldr r0, [r5] - movs r4, 0x8F - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl sub_8095ADC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080966B8 - movs r6, 0xFC - strb r6, [r2] - movs r0, 0x4 - strb r0, [r2, 0x1] - movs r0, 0xF - strb r0, [r2, 0x2] - movs r0, 0x1 - strb r0, [r2, 0x3] - movs r0, 0xE - strb r0, [r2, 0x4] - adds r2, 0x5 - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - ldr r0, _080966BC - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFE - strb r0, [r2] - strb r6, [r2, 0x1] - movs r0, 0x11 - strb r0, [r2, 0x2] - cmp r7, 0x9 - bhi _080966C0 - movs r0, 0x28 - b _080966C2 - .align 2, 0 -_080966B4: .4byte gUnknown_02038478 -_080966B8: .4byte gStringVar1 -_080966BC: .4byte gUnknown_020383E4 -_080966C0: - movs r0, 0x22 -_080966C2: - strb r0, [r2, 0x3] - adds r2, 0x4 - adds r0, r2, 0 - adds r1, r7, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - movs r0, 0xA4 - strb r0, [r2, 0x1] - movs r0, 0xA1 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080966F0 - movs r1, 0 - movs r2, 0x1 - bl sub_80966F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080966F0: .4byte gStringVar1 - thumb_func_end sub_809665C - - thumb_func_start sub_80966F4 -sub_80966F4: @ 80966F4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08096764 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 11 - lsls r4, 8 - ldr r2, _08096768 - adds r4, r2 - adds r6, r4 - lsls r5, 5 - adds r6, r5 - ldr r0, _0809676C - ldr r5, [r0] - mov r1, sp - ldr r2, _08096770 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _08096774 - str r1, [r4] - str r5, [r4, 0x4] - ldr r0, _08096778 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809677C - adds r1, r5, 0 - mov r2, r8 - bl sub_8004E3C - str r5, [r4] - str r6, [r4, 0x4] - ldr r0, _08096780 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096764: .4byte gUnknown_02038478 -_08096768: .4byte 0x06010000 -_0809676C: .4byte gUnknown_083B6DB8 -_08096770: .4byte 0x00001111 -_08096774: .4byte 0x040000d4 -_08096778: .4byte 0x81000200 -_0809677C: .4byte gWindowConfig_81E6D38 -_08096780: .4byte 0x80000200 - thumb_func_end sub_80966F4 - - thumb_func_start sub_8096784 -sub_8096784: @ 8096784 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080967B4 - strh r2, [r1, 0x30] - ldrh r0, [r1, 0x2E] - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080967B4 - strh r2, [r1, 0x32] - strh r2, [r1, 0x24] -_080967B4: - pop {r0} - bx r0 - thumb_func_end sub_8096784 - - thumb_func_start task_intro_29 -task_intro_29: @ 80967B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080967D0 - strb r0, [r1] - ldr r1, _080967D4 - strb r0, [r1, 0x5] - ldr r0, _080967D8 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080967D0: .4byte gUnknown_0203847D -_080967D4: .4byte 0x02000000 -_080967D8: .4byte sub_8096884 - thumb_func_end task_intro_29 - - thumb_func_start sub_80967DC -sub_80967DC: @ 80967DC - ldr r0, _08096800 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08096800: .4byte REG_BG0HOFS - thumb_func_end sub_80967DC - - thumb_func_start sub_8096804 -sub_8096804: @ 8096804 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ResetTasks - ldr r1, _0809683C - movs r2, 0xA0 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08096840 - adds r1, r0, 0 - adds r1, 0x8 - movs r2, 0x8 - bl sub_809CFDC - ldr r1, _08096844 - movs r0, 0x14 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809683C: .4byte gReservedSpriteTileCount -_08096840: .4byte 0x02000020 -_08096844: .4byte gKeyRepeatStartDelay - thumb_func_end sub_8096804 - - thumb_func_start sub_8096848 -sub_8096848: @ 8096848 - push {lr} - bl sub_809B0D4 - ldr r2, _08096868 - movs r1, 0 - ldr r0, _0809686C - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809685C - movs r1, 0x1 -_0809685C: - strb r1, [r2] - ldr r1, _08096870 - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08096868: .4byte gUnknown_0203847C -_0809686C: .4byte 0x02000000 -_08096870: .4byte gUnknown_0203847E - thumb_func_end sub_8096848 - - thumb_func_start sub_8096874 -sub_8096874: @ 8096874 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_8096874 - - thumb_func_start sub_8096884 -sub_8096884: @ 8096884 - push {lr} - ldr r0, _080968A0 - ldr r1, _080968A4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08096894 - b _08096986 -_08096894: - lsls r0, 2 - ldr r1, _080968A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080968A0: .4byte gMain -_080968A4: .4byte 0x0000043c -_080968A8: .4byte _080968AC - .align 2, 0 -_080968AC: - .4byte _080968D4 - .4byte _080968E8 - .4byte _080968F4 - .4byte _08096904 - .4byte _0809690E - .4byte _08096918 - .4byte _0809691E - .4byte _08096924 - .4byte _0809692A - .4byte _08096964 -_080968D4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - bl sub_8096804 - b _0809697A -_080968E8: - ldr r0, _080968F0 - bl SetUpWindowConfig - b _0809697A - .align 2, 0 -_080968F0: .4byte gWindowConfig_81E6D00 -_080968F4: - ldr r0, _08096900 - bl InitMenuWindow - bl MenuZeroFillScreen - b _0809697A - .align 2, 0 -_08096900: .4byte gWindowConfig_81E6D00 -_08096904: - bl sub_80967DC - bl sub_8096848 - b _0809697A -_0809690E: - bl sub_8098B48 - bl sub_809AA24 - b _0809697A -_08096918: - bl sub_8097DE0 - b _0809697A -_0809691E: - bl sub_8097E70 - b _0809697A -_08096924: - bl sub_8098400 - b _0809697A -_0809692A: - ldr r0, _08096950 - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096954 - ldr r1, _08096958 - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _0809695C - adds r2, r1 - ldr r1, _08096960 - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _0809697A - .align 2, 0 -_08096950: .4byte gPokemonStorage -_08096954: .4byte 0x02000000 -_08096958: .4byte 0x000012bc -_0809695C: .4byte 0x000012be -_08096960: .4byte 0x0000dacb -_08096964: - bl sub_8096874 - ldr r0, _0809698C - bl sub_8096BE0 - ldr r0, _08096990 - bl SetMainCallback2 - ldr r0, _08096994 - bl SetVBlankCallback -_0809697A: - ldr r1, _08096998 - ldr r0, _0809699C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096986: - pop {r0} - bx r0 - .align 2, 0 -_0809698C: .4byte sub_8096BF0 -_08096990: .4byte sub_8096B38 -_08096994: .4byte sub_8096AFC -_08096998: .4byte gMain -_0809699C: .4byte 0x0000043c - thumb_func_end sub_8096884 - - thumb_func_start sub_80969A0 -sub_80969A0: @ 80969A0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080969BC - ldr r1, _080969C0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _080969B2 - b _08096AE4 -_080969B2: - lsls r0, 2 - ldr r1, _080969C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080969BC: .4byte gMain -_080969C0: .4byte 0x0000043c -_080969C4: .4byte _080969C8 - .align 2, 0 -_080969C8: - .4byte _080969F4 - .4byte _08096A34 - .4byte _08096A40 - .4byte _08096A50 - .4byte _08096A56 - .4byte _08096A60 - .4byte _08096A66 - .4byte _08096A6C - .4byte _08096A72 - .4byte _08096AAC - .4byte _08096AC8 -_080969F4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _08096A28 - ldr r0, _08096A2C - ldrb r0, [r0] - strb r0, [r1, 0x5] - bl sub_8096804 - ldr r4, _08096A30 - ldrb r0, [r4] - cmp r0, 0x1 - bne _08096A1A - bl sub_809BBC0 -_08096A1A: - ldrb r0, [r4] - cmp r0, 0 - bne _08096AD8 - bl sub_809BD14 - b _08096AD8 - .align 2, 0 -_08096A28: .4byte 0x02000000 -_08096A2C: .4byte gUnknown_0203847D -_08096A30: .4byte gUnknown_0203847F -_08096A34: - ldr r0, _08096A3C - bl SetUpWindowConfig - b _08096AD8 - .align 2, 0 -_08096A3C: .4byte gWindowConfig_81E6D00 -_08096A40: - ldr r0, _08096A4C - bl InitMenuWindow - bl MenuZeroFillScreen - b _08096AD8 - .align 2, 0 -_08096A4C: .4byte gWindowConfig_81E6D00 -_08096A50: - bl sub_80967DC - b _08096AD8 -_08096A56: - bl sub_8098B48 - bl sub_809AA98 - b _08096AD8 -_08096A60: - bl sub_8097DE0 - b _08096AD8 -_08096A66: - bl sub_8097E70 - b _08096AD8 -_08096A6C: - bl sub_8098400 - b _08096AD8 -_08096A72: - ldr r0, _08096A98 - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096A9C - ldr r1, _08096AA0 - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _08096AA4 - adds r2, r1 - ldr r1, _08096AA8 - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _08096AD8 - .align 2, 0 -_08096A98: .4byte gPokemonStorage -_08096A9C: .4byte 0x02000000 -_08096AA0: .4byte 0x000012bc -_08096AA4: .4byte 0x000012be -_08096AA8: .4byte 0x0000dacb -_08096AAC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08096AC4 - bl SetVBlankCallback - b _08096AD8 - .align 2, 0 -_08096AC4: .4byte sub_8096AFC -_08096AC8: - bl sub_8096874 - ldr r0, _08096AEC - bl sub_8096BE0 - ldr r0, _08096AF0 - bl SetMainCallback2 -_08096AD8: - ldr r1, _08096AF4 - ldr r0, _08096AF8 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096AE4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096AEC: .4byte sub_8096C68 -_08096AF0: .4byte sub_8096B38 -_08096AF4: .4byte gMain -_08096AF8: .4byte 0x0000043c - thumb_func_end sub_80969A0 - - thumb_func_start sub_8096AFC -sub_8096AFC: @ 8096AFC - push {lr} - ldr r2, _08096B2C - ldr r1, _08096B30 - ldr r3, _08096B34 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x4 - ldrh r0, [r1, 0xA] - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r1, 0x8] - strh r0, [r2] - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_809CFF0 - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B2C: .4byte REG_BG2HOFS -_08096B30: .4byte 0x02000000 -_08096B34: .4byte 0x000008b4 - thumb_func_end sub_8096AFC - - thumb_func_start sub_8096B38 -sub_8096B38: @ 8096B38 - push {lr} - ldr r0, _08096B58 - ldr r0, [r0] - bl _call_via_r0 - bl sub_8097E44 - bl sub_8098734 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B58: .4byte 0x02000000 - thumb_func_end sub_8096B38 - - thumb_func_start sub_8096B5C -sub_8096B5C: @ 8096B5C - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _08096B70 - ldrb r0, [r4, 0x6] - cmp r0, 0 - beq _08096B74 - cmp r0, 0x1 - beq _08096BAC - b _08096BCC - .align 2, 0 -_08096B70: .4byte 0x02000000 -_08096B74: - ldr r1, _08096B98 - adds r0, r4, r1 - ldr r0, [r0] - ldr r2, _08096B9C - adds r1, r4, r2 - ldrb r1, [r1] - ldr r3, _08096BA0 - adds r2, r4, r3 - ldrb r2, [r2] - ldr r3, _08096BA4 - ldr r5, _08096BA8 - adds r4, r5 - ldrb r4, [r4] - str r4, [sp] - bl sub_809D8BC - b _08096BCC - .align 2, 0 -_08096B98: .4byte 0x00002690 -_08096B9C: .4byte 0x0000268d -_08096BA0: .4byte 0x0000268c -_08096BA4: .4byte sub_80969A0 -_08096BA8: .4byte 0x0000268e -_08096BAC: - ldr r0, _08096BD4 - ldrb r2, [r0] - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _08096BD8 - adds r0, r2 - adds r1, r0 - movs r0, 0 - str r0, [sp] - ldr r0, _08096BDC - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen -_08096BCC: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096BD4: .4byte gPokemonStorage -_08096BD8: .4byte 0x00008344 -_08096BDC: .4byte sub_80969A0 - thumb_func_end sub_8096B5C - - thumb_func_start sub_8096BE0 -sub_8096BE0: @ 8096BE0 - ldr r1, _08096BEC - str r0, [r1] - movs r0, 0 - strb r0, [r1, 0x4] - bx lr - .align 2, 0 -_08096BEC: .4byte 0x02000000 - thumb_func_end sub_8096BE0 - - thumb_func_start sub_8096BF0 -sub_8096BF0: @ 8096BF0 - push {r4,lr} - ldr r4, _08096C04 - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _08096C16 - cmp r0, 0x1 - bgt _08096C08 - cmp r0, 0 - beq _08096C0E - b _08096C5C - .align 2, 0 -_08096C04: .4byte 0x02000000 -_08096C08: - cmp r0, 0x2 - beq _08096C4C - b _08096C5C -_08096C0E: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - b _08096C38 -_08096C16: - movs r0, 0x2 - bl PlaySE - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08096C48 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5CD4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 -_08096C38: - movs r2, 0 - bl BlendPalettes - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096C5C - .align 2, 0 -_08096C48: .4byte 0x0000dad0 -_08096C4C: - bl sub_80C5DCC - lsls r0, 24 - cmp r0, 0 - beq _08096C5C - ldr r0, _08096C64 - bl sub_8096BE0 -_08096C5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096C64: .4byte sub_8096C84 - thumb_func_end sub_8096BF0 - - thumb_func_start sub_8096C68 -sub_8096C68: @ 8096C68 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08096C7A - ldr r0, _08096C80 - bl sub_8096BE0 -_08096C7A: - pop {r0} - bx r0 - .align 2, 0 -_08096C80: .4byte sub_8096C84 - thumb_func_end sub_8096C68 - - thumb_func_start sub_8096C84 -sub_8096C84: @ 8096C84 - push {r4,lr} - ldr r0, _08096C9C - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _08096C90 - b _08096FBA -_08096C90: - lsls r0, 2 - ldr r1, _08096CA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096C9C: .4byte 0x02000000 -_08096CA0: .4byte _08096CA4 - .align 2, 0 -_08096CA4: - .4byte _08096CC0 - .4byte _08096EE0 - .4byte _08096F1C - .4byte _08096F60 - .4byte _08096F80 - .4byte _08096F8A - .4byte _08096FA4 -_08096CC0: - bl sub_809CA40 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0xF - bls _08096CD0 - b _08096FBA -_08096CD0: - lsls r0, 2 - ldr r1, _08096CDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096CDC: .4byte _08096CE0 - .align 2, 0 -_08096CE0: - .4byte _08096D20 - .4byte _08096FBA - .4byte _08096FBA - .4byte _08096D94 - .4byte _08096D34 - .4byte _08096D5C - .4byte _08096DAC - .4byte _08096DC0 - .4byte _08096DD4 - .4byte _08096DFC - .4byte _08096E30 - .4byte _08096EB8 - .4byte _08096E70 - .4byte _08096E8C - .4byte _08096ECC - .4byte _08096DA0 -_08096D20: - movs r0, 0x5 - bl PlaySE - ldr r1, _08096D30 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096D30: .4byte 0x02000000 -_08096D34: - ldr r4, _08096D48 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D4C - movs r0, 0x10 - bl sub_8098898 - movs r0, 0x3 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096D48: .4byte 0x02000000 -_08096D4C: - bl sub_809B0D4 - ldr r0, _08096D58 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D58: .4byte sub_8096FC8 -_08096D5C: - ldr r4, _08096D88 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D66 - b _08096FBA -_08096D66: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08096D80 - ldr r1, _08096D8C - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - bne _08096E4C -_08096D80: - ldr r0, _08096D90 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D88: .4byte 0x02000000 -_08096D8C: .4byte 0x000011f2 -_08096D90: .4byte sub_8097004 -_08096D94: - ldr r0, _08096D9C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D9C: .4byte sub_8097BA0 -_08096DA0: - ldr r0, _08096DA8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DA8: .4byte sub_8097CC0 -_08096DAC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DBC - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DBC: .4byte sub_809789C -_08096DC0: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DD0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DD0: .4byte sub_8097078 -_08096DD4: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096DF0 - ldr r0, _08096DF4 - ldrb r0, [r0] - adds r0, 0x1 - ldr r2, _08096DF8 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0xD - ble _08096E18 - movs r0, 0 - b _08096E16 - .align 2, 0 -_08096DF0: .4byte 0x02000000 -_08096DF4: .4byte gPokemonStorage -_08096DF8: .4byte 0x000008b2 -_08096DFC: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096E24 - ldr r0, _08096E28 - ldrb r0, [r0] - subs r0, 0x1 - ldr r2, _08096E2C - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0 - bge _08096E18 - movs r0, 0xD -_08096E16: - strh r0, [r1] -_08096E18: - ldrb r0, [r1] - bl sub_8099C70 - movs r0, 0x2 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E24: .4byte 0x02000000 -_08096E28: .4byte gPokemonStorage -_08096E2C: .4byte 0x000008b2 -_08096E30: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - ldr r4, _08096E54 - ldr r1, _08096E58 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _08096E5C -_08096E4C: - movs r0, 0x5 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E54: .4byte 0x02000000 -_08096E58: .4byte 0x000011f2 -_08096E5C: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E6C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E6C: .4byte sub_809746C -_08096E70: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E88 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E88: .4byte sub_80972A8 -_08096E8C: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - bne _08096EA4 -_08096E96: - ldr r1, _08096EA0 - movs r0, 0x4 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096EA0: .4byte 0x02000000 -_08096EA4: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EB4 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EB4: .4byte c3_0808DC50 -_08096EB8: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EC8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EC8: .4byte sub_8097390 -_08096ECC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EDC - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EDC: .4byte sub_80972FC -_08096EE0: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - bl sub_809BF48 - lsls r0, 24 - cmp r0, 0 - beq _08096EFA - bl sub_80986E8 - b _08096EFE -_08096EFA: - bl sub_8098710 -_08096EFE: - ldr r4, _08096F14 - ldr r2, _08096F18 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08096F0E - bl BoxSetMosaic -_08096F0E: - movs r0, 0 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096F14: .4byte 0x02000000 -_08096F18: .4byte 0x000011f6 -_08096F1C: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - ldr r1, _08096F50 - ldr r0, _08096F54 - ldr r2, _08096F58 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08096F5C - ldrb r0, [r0] - cmp r0, 0 - bne _08096F70 - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - bne _08096F70 - bl sub_809B440 - bl BoxSetMosaic - b _08096F70 - .align 2, 0 -_08096F50: .4byte gPokemonStorage -_08096F54: .4byte 0x02000000 -_08096F58: .4byte 0x000008b2 -_08096F5C: .4byte gUnknown_0203847C -_08096F60: - ldr r0, _08096F78 - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C -_08096F70: - ldr r1, _08096F7C - movs r0, 0 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096F78: .4byte gMain -_08096F7C: .4byte 0x02000000 -_08096F80: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08096F92 -_08096F8A: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08096F92: - bl sub_8098898 - ldr r1, _08096FA0 - movs r0, 0x6 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096FA0: .4byte 0x02000000 -_08096FA4: - ldr r0, _08096FC0 - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C - ldr r0, _08096FC4 - bl sub_8096BE0 -_08096FBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096FC0: .4byte gMain -_08096FC4: .4byte sub_8096C84 - thumb_func_end sub_8096C84 - - thumb_func_start sub_8096FC8 -sub_8096FC8: @ 8096FC8 - push {r4,lr} - ldr r4, _08096FD8 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08096FDC - cmp r0, 0x1 - beq _08096FE8 - b _08096FF8 - .align 2, 0 -_08096FD8: .4byte 0x02000000 -_08096FDC: - bl sub_809880C - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096FF8 -_08096FE8: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08096FF8 - ldr r0, _08097000 - bl sub_8096BE0 -_08096FF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097000: .4byte sub_8096C84 - thumb_func_end sub_8096FC8 - - thumb_func_start sub_8097004 -sub_8097004: @ 8097004 - push {r4,lr} - ldr r4, _08097018 - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _0809702E - cmp r0, 0x1 - bgt _0809701C - cmp r0, 0 - beq _08097022 - b _0809706A - .align 2, 0 -_08097018: .4byte 0x02000000 -_0809701C: - cmp r0, 0x2 - beq _0809704C - b _0809706A -_08097022: - movs r0, 0x5 - bl PlaySE - bl add_to_c3_somehow - b _08097044 -_0809702E: - bl sub_80985CC - lsls r0, 24 - cmp r0, 0 - bne _0809706A - bl sub_809B0F4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809B0C0 -_08097044: - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809706A -_0809704C: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _0809706A - ldr r1, _08097070 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097064 - bl BoxSetMosaic -_08097064: - ldr r0, _08097074 - bl sub_8096BE0 -_0809706A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097070: .4byte 0x000011f6 -_08097074: .4byte sub_8096C84 - thumb_func_end sub_8097004 - - thumb_func_start sub_8097078 -sub_8097078: @ 8097078 - push {r4,lr} - ldr r0, _08097090 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bls _08097084 - b _0809729A -_08097084: - lsls r0, 2 - ldr r1, _08097094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097090: .4byte 0x02000000 -_08097094: .4byte _08097098 - .align 2, 0 -_08097098: - .4byte _080970B0 - .4byte _080970C8 - .4byte _08097258 - .4byte _0809726C - .4byte _08097262 - .4byte _08097284 -_080970B0: - movs r0, 0x4 - bl sub_8098898 - bl sub_809CE84 - ldr r1, _080970C4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080970C4: .4byte 0x02000000 -_080970C8: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bls _080970D8 - b _0809729A -_080970D8: - lsls r0, 2 - ldr r1, _080970E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080970E4: .4byte _080970E8 - .align 2, 0 -_080970E8: - .4byte _08097110 - .4byte _08097110 - .4byte _08097190 - .4byte _08097178 - .4byte _08097120 - .4byte _08097158 - .4byte _08097140 - .4byte _08097230 - .4byte _080971CC - .4byte _08097244 -_08097110: - bl sub_8098A5C - ldr r0, _0809711C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809711C: .4byte sub_8096C84 -_08097120: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809713C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809713C: .4byte sub_80972A8 -_08097140: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097154 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097154: .4byte sub_80972FC -_08097158: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - beq _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097174 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097174: .4byte c3_0808DC50 -_08097178: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809718C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809718C: .4byte sub_8097390 -_08097190: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - ldr r4, _080971C0 - ldr r1, _080971C4 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - bne _08097210 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _080971C8 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_080971C0: .4byte 0x02000000 -_080971C4: .4byte 0x000011f2 -_080971C8: .4byte sub_809746C -_080971CC: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - beq _080971E4 -_080971D6: - ldr r1, _080971E0 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080971E0: .4byte 0x02000000 -_080971E4: - ldr r4, _080971F8 - ldr r1, _080971FC - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097200 - movs r0, 0x4 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_080971F8: .4byte 0x02000000 -_080971FC: .4byte 0x000011f9 -_08097200: - ldr r1, _08097218 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0809721C -_08097210: - movs r0, 0x3 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_08097218: .4byte 0x000011f2 -_0809721C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809722C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809722C: .4byte sub_8097594 -_08097230: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097240 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097240: .4byte sub_8097788 -_08097244: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097254 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097254: .4byte sub_80977E4 -_08097258: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08097274 -_08097262: - movs r0, 0x20 - bl PlaySE - movs r0, 0x11 - b _08097274 -_0809726C: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08097274: - bl sub_8098898 - ldr r1, _08097280 - movs r0, 0x5 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_08097280: .4byte 0x02000000 -_08097284: - ldr r0, _080972A0 - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0809729A - bl sub_8098A5C - ldr r0, _080972A4 - bl sub_8096BE0 -_0809729A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972A0: .4byte gMain -_080972A4: .4byte sub_8096C84 - thumb_func_end sub_8097078 - - thumb_func_start sub_80972A8 -sub_80972A8: @ 80972A8 - push {r4,lr} - ldr r4, _080972B8 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080972BC - cmp r0, 0x1 - beq _080972CA - b _080972F2 - .align 2, 0 -_080972B8: .4byte 0x02000000 -_080972BC: - movs r0, 0 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080972F2 -_080972CA: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _080972F2 - ldr r0, _080972E4 - ldrb r0, [r0] - cmp r0, 0 - beq _080972EC - ldr r0, _080972E8 - bl sub_8096BE0 - b _080972F2 - .align 2, 0 -_080972E4: .4byte gUnknown_0203847C -_080972E8: .4byte sub_8097858 -_080972EC: - ldr r0, _080972F8 - bl sub_8096BE0 -_080972F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972F8: .4byte sub_8096C84 - thumb_func_end sub_80972A8 - - thumb_func_start sub_80972FC -sub_80972FC: @ 80972FC - push {r4,lr} - ldr r4, _0809730C - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097310 - cmp r0, 0x1 - beq _0809731E - b _08097346 - .align 2, 0 -_0809730C: .4byte 0x02000000 -_08097310: - movs r0, 0x1 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097346 -_0809731E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097346 - ldr r0, _08097338 - ldrb r0, [r0] - cmp r0, 0 - beq _08097340 - ldr r0, _0809733C - bl sub_8096BE0 - b _08097346 - .align 2, 0 -_08097338: .4byte gUnknown_0203847C -_0809733C: .4byte sub_8097858 -_08097340: - ldr r0, _0809734C - bl sub_8096BE0 -_08097346: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809734C: .4byte sub_8096C84 - thumb_func_end sub_80972FC - - thumb_func_start c3_0808DC50 -c3_0808DC50: @ 8097350 - push {r4,lr} - ldr r4, _08097360 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097364 - cmp r0, 0x1 - beq _08097372 - b _08097386 - .align 2, 0 -_08097360: .4byte 0x02000000 -_08097364: - movs r0, 0x2 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097386 -_08097372: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097386 - bl BoxSetMosaic - ldr r0, _0809738C - bl sub_8096BE0 -_08097386: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809738C: .4byte sub_8096C84 - thumb_func_end c3_0808DC50 - - thumb_func_start sub_8097390 -sub_8097390: @ 8097390 - push {lr} - ldr r0, _080973A4 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bhi _08097462 - lsls r0, 2 - ldr r1, _080973A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080973A4: .4byte 0x02000000 -_080973A8: .4byte _080973AC - .align 2, 0 -_080973AC: - .4byte _080973C4 - .4byte _080973FC - .4byte _0809741C - .4byte _0809742C - .4byte _0809743E - .4byte _0809745C -_080973C4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080973E4 - movs r0, 0xE - bl sub_8098898 - ldr r1, _080973E0 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973E0: .4byte 0x02000000 -_080973E4: - bl sub_809B0E0 - movs r0, 0 - bl sub_809B100 - ldr r1, _080973F8 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973F8: .4byte 0x02000000 -_080973FC: - ldr r0, _08097414 - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097462 - bl sub_8098A5C - ldr r0, _08097418 - bl sub_8096BE0 - b _08097462 - .align 2, 0 -_08097414: .4byte gMain -_08097418: .4byte sub_8096C84 -_0809741C: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_809880C - b _0809744C -_0809742C: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - movs r0, 0x1 - bl sub_809B100 - b _0809744C -_0809743E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_80987DC -_0809744C: - ldr r1, _08097458 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_08097458: .4byte 0x02000000 -_0809745C: - ldr r0, _08097468 - bl sub_8096BE0 -_08097462: - pop {r0} - bx r0 - .align 2, 0 -_08097468: .4byte sub_8097004 - thumb_func_end sub_8097390 - - thumb_func_start sub_809746C -sub_809746C: @ 809746C - push {r4,lr} - ldr r0, _08097484 - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bls _08097478 - b _08097584 -_08097478: - lsls r0, 2 - ldr r1, _08097488 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097484: .4byte 0x02000000 -_08097488: .4byte _0809748C - .align 2, 0 -_0809748C: - .4byte _080974A0 - .4byte _080974D8 - .4byte _08097534 - .4byte _08097548 - .4byte _0809756C -_080974A0: - movs r0, 0x6 - bl sub_8098898 - ldr r4, _080974C8 - ldr r2, _080974CC - adds r0, r4, 0 - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _080974D0 - ldrb r0, [r0] - bl sub_809634C - ldr r0, _080974D4 - adds r4, r0 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097584 - .align 2, 0 -_080974C8: .4byte 0x02002370 -_080974CC: .4byte 0x0000daca -_080974D0: .4byte gUnknown_0203847E -_080974D4: .4byte 0xffffdc90 -_080974D8: - bl sub_8096368 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC8 - beq _08097584 - cmp r4, 0xC9 - bne _080974F6 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - b _0809755E -_080974F6: - adds r0, r4, 0 - bl sub_809B62C - lsls r0, 24 - cmp r0, 0 - beq _08097518 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - ldr r1, _08097514 - movs r0, 0x2 - b _08097522 - .align 2, 0 -_08097514: .4byte 0x02000000 -_08097518: - movs r0, 0x8 - bl sub_8098898 - ldr r1, _0809752C - movs r0, 0x4 -_08097522: - strb r0, [r1, 0x4] - ldr r0, _08097530 - strb r4, [r0] - b _08097584 - .align 2, 0 -_0809752C: .4byte 0x02000000 -_08097530: .4byte gUnknown_0203847E -_08097534: - bl party_compaction - bl sub_8099310 - ldr r1, _08097544 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - b _08097582 - .align 2, 0 -_08097544: .4byte 0x02000000 -_08097548: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097584 - bl sub_809B6BC - bl BoxSetMosaic - bl sub_80987DC -_0809755E: - ldr r0, _08097568 - bl sub_8096BE0 - b _08097584 - .align 2, 0 -_08097568: .4byte sub_8096C84 -_0809756C: - ldr r0, _0809758C - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08097584 - movs r0, 0x6 - bl sub_8098898 - ldr r1, _08097590 - movs r0, 0x1 -_08097582: - strb r0, [r1, 0x4] -_08097584: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809758C: .4byte gMain -_08097590: .4byte 0x02000000 - thumb_func_end sub_809746C - - thumb_func_start sub_8097594 -sub_8097594: @ 8097594 - push {r4,lr} - ldr r0, _080975AC - ldrb r0, [r0, 0x4] - cmp r0, 0xD - bls _080975A0 - b _0809777A -_080975A0: - lsls r0, 2 - ldr r1, _080975B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080975AC: .4byte 0x02000000 -_080975B0: .4byte _080975B4 - .align 2, 0 -_080975B4: - .4byte _080975EC - .4byte _08097600 - .4byte _0809763A - .4byte _0809766E - .4byte _0809767A - .4byte _08097690 - .4byte _080976C8 - .4byte _080976E0 - .4byte _080976EC - .4byte _080976F0 - .4byte _08097704 - .4byte _08097720 - .4byte _08097732 - .4byte _08097764 -_080975EC: - movs r0, 0x9 - bl sub_8098898 - movs r0, 0x1 - bl sub_8098A38 - ldr r1, _0809761C - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] -_08097600: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0809762C - cmp r1, 0 - bgt _08097620 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097626 - b _0809777A - .align 2, 0 -_0809761C: .4byte 0x02000000 -_08097620: - cmp r1, 0x1 - beq _08097626 - b _0809777A -_08097626: - bl sub_8098A5C - b _080976E0 -_0809762C: - bl sub_8098A5C - bl sub_809B7D4 - bl sub_809B6DC - b _08097744 -_0809763A: - bl sub_809B960 - bl sub_809B734 - lsls r0, 24 - cmp r0, 0 - beq _0809764A - b _0809777A -_0809764A: - ldr r4, _08097650 - b _0809765A - .align 2, 0 -_08097650: .4byte 0x02000000 -_08097654: - cmp r0, 0 - bne _0809765A - b _08097758 -_0809765A: - bl sub_809B960 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08097654 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809777A -_0809766E: - bl sub_809B760 - bl sub_809801C - movs r0, 0xA - b _08097740 -_0809767A: - ldr r0, _0809768C - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08097688 - b _0809777A -_08097688: - movs r0, 0xB - b _08097740 - .align 2, 0 -_0809768C: .4byte gMain -_08097690: - ldr r0, _080976B4 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _080976B8 - ldrb r0, [r0] - cmp r0, 0 - beq _080976BC - bl party_compaction - bl sub_8099310 - b _08097744 - .align 2, 0 -_080976B4: .4byte gMain -_080976B8: .4byte gUnknown_0203847C -_080976BC: - ldr r1, _080976C4 - movs r0, 0x7 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_080976C4: .4byte 0x02000000 -_080976C8: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B440 - bl BoxSetMosaic - bl sub_80987DC - b _08097744 -_080976E0: - ldr r0, _080976E8 - bl sub_8096BE0 - b _0809777A - .align 2, 0 -_080976E8: .4byte sub_8096C84 -_080976EC: - movs r0, 0xA - b _08097740 -_080976F0: - ldr r0, _08097700 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x15 - b _08097740 - .align 2, 0 -_08097700: .4byte gMain -_08097704: - ldr r0, _0809771C - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - bl sub_8099958 - b _08097744 - .align 2, 0 -_0809771C: .4byte gMain -_08097720: - bl sub_8099990 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B7AC - movs r0, 0x13 - b _08097740 -_08097732: - ldr r0, _08097750 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x14 -_08097740: - bl sub_8098898 -_08097744: - ldr r1, _08097754 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097750: .4byte gMain -_08097754: .4byte 0x02000000 -_08097758: - ldr r1, _08097760 - movs r0, 0x8 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097760: .4byte 0x02000000 -_08097764: - ldr r0, _08097780 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _08097784 - bl sub_8096BE0 -_0809777A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097780: .4byte gMain -_08097784: .4byte sub_8096C84 - thumb_func_end sub_8097594 - - thumb_func_start sub_8097788 -sub_8097788: @ 8097788 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0809779C - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _080977A0 - cmp r4, 0x1 - beq _080977BC - b _080977D4 - .align 2, 0 -_0809779C: .4byte 0x02000000 -_080977A0: - bl sub_809BC18 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _080977D4 -_080977BC: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080977D4 - ldr r0, _080977DC - strb r1, [r0] - strb r1, [r5, 0x6] - ldr r0, _080977E0 - bl SetMainCallback2 -_080977D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080977DC: .4byte gUnknown_0203847F -_080977E0: .4byte sub_8096B5C - thumb_func_end sub_8097788 - - thumb_func_start sub_80977E4 -sub_80977E4: @ 80977E4 - push {r4,lr} - ldr r4, _080977F4 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080977F8 - cmp r0, 0x1 - beq _08097824 - b _0809784C - .align 2, 0 -_080977F4: .4byte 0x02000000 -_080977F8: - movs r0, 0xC - bl sub_8098898 - ldr r0, _08097820 - adds r2, r4, r0 - ldrb r1, [r2] - movs r3, 0x96 - lsls r3, 5 - adds r0, r4, r3 - strb r1, [r0] - ldrb r0, [r2] - movs r1, 0xB0 - movs r2, 0x10 - bl sub_80F7418 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809784C - .align 2, 0 -_08097820: .4byte 0x000011f7 -_08097824: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _0809784C - bl sub_80F7470 - bl sub_8098A5C - movs r1, 0x96 - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_809BDD8 - bl sub_809801C - ldr r0, _08097854 - bl sub_8096BE0 -_0809784C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097854: .4byte sub_8096C84 - thumb_func_end sub_80977E4 - - thumb_func_start sub_8097858 -sub_8097858: @ 8097858 - push {r4,lr} - ldr r4, _08097868 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _0809786C - cmp r0, 0x1 - beq _0809787C - b _08097890 - .align 2, 0 -_08097868: .4byte 0x02000000 -_0809786C: - bl party_compaction - bl sub_8099310 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097890 -_0809787C: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097890 - bl sub_80987DC - ldr r0, _08097898 - bl sub_8096BE0 -_08097890: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097898: .4byte sub_8096C84 - thumb_func_end sub_8097858 - - thumb_func_start sub_809789C -sub_809789C: @ 809789C - push {r4,lr} - ldr r4, _080978AC - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080978B0 - cmp r0, 0x1 - beq _080978C2 - b _08097968 - .align 2, 0 -_080978AC: .4byte 0x02000000 -_080978B0: - movs r0, 0x1 - bl sub_8098898 - bl sub_809CE84 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097968 -_080978C2: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _08097968 - lsls r0, 2 - ldr r1, _080978DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080978DC: .4byte _080978E0 - .align 2, 0 -_080978E0: - .4byte _08097914 - .4byte _08097914 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097958 - .4byte _08097940 - .4byte _0809792C -_08097914: - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _08097928 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097928: .4byte sub_8096C84 -_0809792C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809793C - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_0809793C: .4byte sub_8097B44 -_08097940: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097954 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097954: .4byte sub_8097974 -_08097958: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097970 - bl sub_8096BE0 -_08097968: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097970: .4byte sub_8097A64 - thumb_func_end sub_809789C - - thumb_func_start sub_8097974 -sub_8097974: @ 8097974 - push {r4,r5,lr} - ldr r5, _08097988 - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _080979A2 - cmp r0, 0x1 - bgt _0809798C - cmp r0, 0 - beq _08097996 - b _08097A5A - .align 2, 0 -_08097988: .4byte 0x02000000 -_0809798C: - cmp r0, 0x2 - beq _080979FC - cmp r0, 0x3 - beq _08097A44 - b _08097A5A -_08097996: - bl sub_8098A80 - movs r0, 0x2 - bl sub_8098898 - b _08097A3C -_080979A2: - bl sub_809CF30 - ldr r1, _080979CC - adds r4, r5, r1 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080979D4 - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _080979D0 - bl sub_8096BE0 - b _08097A5A - .align 2, 0 -_080979CC: .4byte 0x00000d5e -_080979D0: .4byte sub_8096C84 -_080979D4: - cmp r0, r1 - blt _08097A5A - cmp r0, 0xF - bgt _08097A5A - cmp r0, 0xC - blt _08097A5A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - subs r0, 0xC - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8098AA8 - movs r0, 0x3 - bl sub_8098898 - b _08097A3C -_080979FC: - bl sub_809CF30 - movs r1, 0xD6 - lsls r1, 4 - adds r4, r5, r1 - strh r0, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08097A5A - adds r0, 0x1 - cmp r1, r0 - bne _08097A24 - bl sub_8098A5C - movs r0, 0 - strb r0, [r5, 0x4] - b _08097A5A -_08097A24: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldrh r0, [r4] - subs r0, 0x10 - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8099DCC -_08097A3C: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097A5A -_08097A44: - bl sub_8099E08 - lsls r0, 24 - cmp r0, 0 - bne _08097A5A - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097A60 - bl sub_8096BE0 -_08097A5A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097A60: .4byte sub_8096C84 - thumb_func_end sub_8097974 - - thumb_func_start sub_8097A64 -sub_8097A64: @ 8097A64 - push {r4,r5,lr} - ldr r5, _08097A78 - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _08097AB0 - cmp r0, 0x1 - bgt _08097A7C - cmp r0, 0 - beq _08097A86 - b _08097B32 - .align 2, 0 -_08097A78: .4byte 0x02000000 -_08097A7C: - cmp r0, 0x2 - beq _08097B00 - cmp r0, 0x3 - beq _08097B18 - b _08097B32 -_08097A86: - movs r0, 0x5 - bl sub_8098898 - ldr r1, _08097AA4 - adds r0, r5, r1 - ldr r2, _08097AA8 - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _08097AAC - ldrb r0, [r0] - bl sub_809634C - b _08097B0A - .align 2, 0 -_08097AA4: .4byte 0x00002370 -_08097AA8: .4byte 0x0000daca -_08097AAC: .4byte gPokemonStorage -_08097AB0: - bl sub_8096368 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08097AF4 - adds r4, r5, r2 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - beq _08097B32 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0xC9 - beq _08097AE4 - adds r1, r0, 0 - ldr r0, _08097AF8 - ldrb r0, [r0] - cmp r1, r0 - bne _08097B0A -_08097AE4: - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097AFC - bl sub_8096BE0 - b _08097B32 - .align 2, 0 -_08097AF4: .4byte 0x000008b2 -_08097AF8: .4byte gPokemonStorage -_08097AFC: .4byte sub_8096C84 -_08097B00: - ldr r1, _08097B14 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_8099C70 -_08097B0A: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B32 - .align 2, 0 -_08097B14: .4byte 0x000008b2 -_08097B18: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08097B32 - ldr r1, _08097B38 - ldr r2, _08097B3C - adds r0, r5, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08097B40 - bl sub_8096BE0 -_08097B32: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B38: .4byte gPokemonStorage -_08097B3C: .4byte 0x000008b2 -_08097B40: .4byte sub_8096C84 - thumb_func_end sub_8097A64 - - thumb_func_start sub_8097B44 -sub_8097B44: @ 8097B44 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08097B58 - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _08097B5C - cmp r4, 0x1 - beq _08097B78 - b _08097B8E - .align 2, 0 -_08097B58: .4byte 0x02000000 -_08097B5C: - bl sub_809BB90 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B8E -_08097B78: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08097B8E - ldr r0, _08097B98 - strb r4, [r0] - strb r4, [r5, 0x6] - ldr r0, _08097B9C - bl SetMainCallback2 -_08097B8E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B98: .4byte gUnknown_0203847F -_08097B9C: .4byte sub_8096B5C - thumb_func_end sub_8097B44 - - thumb_func_start sub_8097BA0 -sub_8097BA0: @ 8097BA0 - push {r4,lr} - ldr r0, _08097BB8 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097BAE - b _08097CB0 -_08097BAE: - lsls r0, r1, 2 - ldr r1, _08097BBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097BB8: .4byte 0x02000000 -_08097BBC: .4byte _08097BC0 - .align 2, 0 -_08097BC0: - .4byte _08097BD4 - .4byte _08097C18 - .4byte _08097C2C - .4byte _08097C74 - .4byte _08097C98 -_08097BD4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097BF8 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097BF4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097BF4: .4byte 0x02000000 -_08097BF8: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097C14 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C14: .4byte 0x02000000 -_08097C18: - ldr r0, _08097C28 - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097CB0 - b _08097C4A - .align 2, 0 -_08097C28: .4byte gMain -_08097C2C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097C5C - cmp r1, 0 - bgt _08097C46 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097C4A - b _08097CB0 -_08097C46: - cmp r1, 0x1 - bne _08097CB0 -_08097C4A: - bl sub_8098A5C - ldr r0, _08097C58 - bl sub_8096BE0 - b _08097CB0 - .align 2, 0 -_08097C58: .4byte sub_8096C84 -_08097C5C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097C70 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C70: .4byte 0x02000000 -_08097C74: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097C94 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097CB0 - .align 2, 0 -_08097C94: .4byte 0x0000dad0 -_08097C98: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097CB0 - bl CalculatePlayerPartyCount - ldr r1, _08097CB8 - strb r0, [r1] - ldr r0, _08097CBC - bl SetMainCallback2 -_08097CB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097CB8: .4byte gPlayerPartyCount -_08097CBC: .4byte sub_80961A8 - thumb_func_end sub_8097BA0 - - thumb_func_start sub_8097CC0 -sub_8097CC0: @ 8097CC0 - push {r4,lr} - ldr r0, _08097CD8 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097CCE - b _08097DD0 -_08097CCE: - lsls r0, r1, 2 - ldr r1, _08097CDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097CD8: .4byte 0x02000000 -_08097CDC: .4byte _08097CE0 - .align 2, 0 -_08097CE0: - .4byte _08097CF4 - .4byte _08097D38 - .4byte _08097D4C - .4byte _08097D94 - .4byte _08097DB8 -_08097CF4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097D18 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097D14 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D14: .4byte 0x02000000 -_08097D18: - movs r0, 0x5 - bl PlaySE - movs r0, 0x12 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097D34 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D34: .4byte 0x02000000 -_08097D38: - ldr r0, _08097D48 - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097DD0 - b _08097D6C - .align 2, 0 -_08097D48: .4byte gMain -_08097D4C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097D6C - cmp r1, 0 - bgt _08097D66 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097D7C - b _08097DD0 -_08097D66: - cmp r1, 0x1 - beq _08097D7C - b _08097DD0 -_08097D6C: - bl sub_8098A5C - ldr r0, _08097D78 - bl sub_8096BE0 - b _08097DD0 - .align 2, 0 -_08097D78: .4byte sub_8096C84 -_08097D7C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097D90 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D90: .4byte 0x02000000 -_08097D94: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097DB4 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097DD0 - .align 2, 0 -_08097DB4: .4byte 0x0000dad0 -_08097DB8: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097DD0 - bl CalculatePlayerPartyCount - ldr r1, _08097DD8 - strb r0, [r1] - ldr r0, _08097DDC - bl SetMainCallback2 -_08097DD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097DD8: .4byte gPlayerPartyCount -_08097DDC: .4byte sub_80961A8 - thumb_func_end sub_8097CC0 - - thumb_func_start sub_8097DE0 -sub_8097DE0: @ 8097DE0 - push {lr} - ldr r1, _08097E1C - movs r0, 0 - strb r0, [r1, 0x7] - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - ldr r1, _08097E20 - ldr r2, _08097E24 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08097E28 - ldr r2, _08097E2C - ldr r0, _08097E30 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08097E34 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _08097E38 - ldr r1, _08097E3C - bl LZ77UnCompVram - ldr r0, _08097E40 - movs r1, 0xD0 - movs r2, 0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08097E1C: .4byte 0x02000000 -_08097E20: .4byte REG_BG3CNT -_08097E24: .4byte 0x00001e0f -_08097E28: .4byte gPokemonStorageScrollingBGTile -_08097E2C: .4byte 0x0600e000 -_08097E30: .4byte 0x040000d4 -_08097E34: .4byte 0x80000010 -_08097E38: .4byte gPokemonStorageScrollingBGTilemap -_08097E3C: .4byte 0x0600f000 -_08097E40: .4byte gPokemonStorageScrollingBGPalette - thumb_func_end sub_8097DE0 - - thumb_func_start sub_8097E44 -sub_8097E44: @ 8097E44 - push {lr} - ldr r1, _08097E6C - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08097E66 - movs r0, 0 - strb r0, [r1, 0x7] - ldrh r0, [r1, 0x8] - subs r0, 0x1 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08097E66: - pop {r0} - bx r0 - .align 2, 0 -_08097E6C: .4byte 0x02000000 - thumb_func_end sub_8097E44 - - thumb_func_start sub_8097E70 -sub_8097E70: @ 8097E70 - push {r4,lr} - sub sp, 0x10 - ldr r0, _08097F2C - ldr r1, _08097F30 - bl LZ77UnCompVram - ldr r0, _08097F34 - ldr r4, _08097F38 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r0, _08097F3C - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - movs r1, 0x14 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_809D034 - ldr r0, _08097F40 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F44 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F48 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F4C - movs r1, 0xC0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _08097F50 - adds r0, r4, 0 - movs r1, 0xF1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xF2 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x8 - movs r1, 0xF3 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x16 - movs r1, 0xF4 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x12 - movs r1, 0xF6 - movs r2, 0x4 - bl LoadPalette - adds r4, 0x2 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x2 - bl LoadPalette - ldr r0, _08097F54 - bl LoadSpritePalette - bl sub_80980D4 - bl sub_8097F58 - bl sub_8097FB8 - bl sub_809801C - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097F2C: .4byte gPSSMenuHeader_Gfx -_08097F30: .4byte 0x06005000 -_08097F34: .4byte gPSSMenuHeader_Tilemap -_08097F38: .4byte gUnknown_02039760 -_08097F3C: .4byte 0x06007800 -_08097F40: .4byte gPSSMenu1_Pal -_08097F44: .4byte gPSSMenu2_Pal -_08097F48: .4byte gUnknown_083B6D74 -_08097F4C: .4byte gUnknown_083B6D94 -_08097F50: .4byte gUnknownPalette_81E6692+0x2 -_08097F54: .4byte gWaveformSpritePalette - thumb_func_end sub_8097E70 - - thumb_func_start sub_8097F58 -sub_8097F58: @ 8097F58 - push {r4,lr} - ldr r1, _08097FA4 - movs r0, 0xD - movs r2, 0 - bl sub_80F7940 - ldr r4, _08097FA8 - ldr r1, _08097FAC - adds r3, r4, r1 - str r0, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r3] - movs r0, 0x28 - strh r0, [r1, 0x20] - ldr r1, [r3] - movs r0, 0x95 - strh r0, [r1, 0x22] - movs r0, 0xD - bl GetSpriteTileStartByTag - ldr r1, _08097FB0 - adds r4, r1 - lsls r0, 16 - lsrs r0, 11 - ldr r1, _08097FB4 - adds r0, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097FA4: .4byte 0x0000dace -_08097FA8: .4byte 0x02000000 -_08097FAC: .4byte 0x000012ac -_08097FB0: .4byte 0x000012b8 -_08097FB4: .4byte 0x06010000 - thumb_func_end sub_8097F58 - - thumb_func_start sub_8097FB8 -sub_8097FB8: @ 8097FB8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _0809800C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - movs r4, 0 - ldr r5, _08098010 -_08097FD0: - lsls r1, r4, 6 - subs r1, r4 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08098014 - movs r2, 0x9 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r4, 2 - adds r2, r5 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08098018 - adds r1, r0 - str r1, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08097FD0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809800C: .4byte gWaveformSpriteSheet -_08098010: .4byte 0x020012b0 -_08098014: .4byte gSpriteTemplate_83B6EFC -_08098018: .4byte gSprites - thumb_func_end sub_8097FB8 - - thumb_func_start sub_809801C -sub_809801C: @ 809801C - push {lr} - ldr r1, _0809803C - ldr r2, _08098040 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl sub_80981F0 - bl sub_80982B4 - bl sub_8098350 - pop {r0} - bx r0 - .align 2, 0 -_0809803C: .4byte 0x02000000 -_08098040: .4byte 0x000011f0 - thumb_func_end sub_809801C - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 8098044 - push {lr} - bl sub_809801C - ldr r0, _08098084 - movs r1, 0x9C - lsls r1, 6 - adds r3, r0, r1 - ldr r2, [r3] - cmp r2, 0 - beq _08098080 - ldrb r0, [r2, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r3] - movs r0, 0xA - strh r0, [r1, 0x2E] - ldr r1, [r3] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, [r3] - ldr r0, _08098088 - str r0, [r1, 0x1C] - ldr r2, _0809808C - ldr r0, [r3] - ldrh r0, [r0, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] -_08098080: - pop {r0} - bx r0 - .align 2, 0 -_08098084: .4byte 0x02000000 -_08098088: .4byte sub_8098090 -_0809808C: .4byte REG_MOSAIC - thumb_func_end BoxSetMosaic - - thumb_func_start sub_8098090 -sub_8098090: @ 8098090 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bge _080980A6 - movs r0, 0 - strh r0, [r3, 0x2E] -_080980A6: - ldr r2, _080980CC - ldrh r0, [r3, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080980C8 - ldrb r0, [r3, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x1] - ldr r0, _080980D0 - str r0, [r3, 0x1C] -_080980C8: - pop {r0} - bx r0 - .align 2, 0 -_080980CC: .4byte REG_MOSAIC -_080980D0: .4byte SpriteCallbackDummy - thumb_func_end sub_8098090 - - thumb_func_start sub_80980D4 -sub_80980D4: @ 80980D4 - push {r4,r5,lr} - sub sp, 0x28 - ldr r0, _08098150 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _08098154 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _08098158 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r1, 0 - add r5, sp, 0x18 - ldr r4, _0809815C - movs r3, 0 - ldr r2, _08098160 -_08098102: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08098102 - movs r1, 0 - ldr r3, _08098164 - movs r2, 0 -_08098116: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _08098116 - ldr r0, _08098168 - movs r1, 0x9C - lsls r1, 6 - adds r0, r1 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080981C4 - add r0, sp, 0x20 - bl LoadSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080981C4 - b _080981B0 - .align 2, 0 -_08098150: .4byte gUnknown_083B6DCC -_08098154: .4byte gUnknown_083B6DD4 -_08098158: .4byte gSpriteTemplate_83B6DDC -_0809815C: .4byte 0x02002784 -_08098160: .4byte 0x000007ff -_08098164: .4byte 0x02002704 -_08098168: .4byte 0x02000000 -_0809816C: - ldr r2, _0809819C - movs r0, 0x9C - lsls r0, 6 - adds r3, r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080981A0 - adds r0, r1 - str r0, [r3] - lsls r0, r4, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldr r3, _080981A4 - adds r1, r2, r3 - strh r0, [r1] - ldr r4, _080981A8 - adds r2, r4 - lsls r0, r5, 5 - ldr r1, _080981AC - adds r0, r1 - str r0, [r2] - b _080981C4 - .align 2, 0 -_0809819C: .4byte 0x02000000 -_080981A0: .4byte gSprites -_080981A4: .4byte 0x000026fa -_080981A8: .4byte 0x000026fc -_080981AC: .4byte 0x06010000 -_080981B0: - mov r0, sp - movs r1, 0x28 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _0809816C -_080981C4: - ldr r0, _080981E8 - movs r2, 0x9C - lsls r2, 6 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0 - bne _080981DE - movs r0, 0x2 - bl FreeSpriteTilesByTag - ldr r0, _080981EC - bl FreeSpritePaletteByTag -_080981DE: - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080981E8: .4byte 0x02000000 -_080981EC: .4byte 0x0000dac7 - thumb_func_end sub_80980D4 - - thumb_func_start sub_80981F0 -sub_80981F0: @ 80981F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r6, _08098274 - movs r0, 0x9C - lsls r0, 6 - adds r0, r6 - mov r8, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080982A6 - cmp r4, 0 - beq _0809829C - lsls r0, r4, 3 - ldr r1, _08098278 - adds r0, r1 - ldr r2, _0809827C - lsls r1, r4, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _08098280 - adds r3, r6, r2 - ldr r2, _08098284 - adds r5, r6, r2 - str r5, [sp] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - movs r2, 0x1 - bl sub_800D334 - ldr r1, _08098288 - adds r0, r6, r1 - ldr r0, [r0] - ldr r2, _0809828C - adds r4, r6, r2 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r1, _08098290 - adds r0, r6, r1 - ldr r1, [r0] - ldr r2, _08098294 - adds r0, r5, 0 - bl CpuSet - ldr r2, _08098298 - adds r0, r6, r2 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - mov r0, r8 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _080982A6 - .align 2, 0 -_08098274: .4byte 0x02000000 -_08098278: .4byte gMonFrontPicTable -_0809827C: .4byte gMonFrontPicCoords -_08098280: .4byte 0x00004784 -_08098284: .4byte 0x00002784 -_08098288: .4byte 0x000011e8 -_0809828C: .4byte 0x00002704 -_08098290: .4byte 0x000026fc -_08098294: .4byte 0x04000200 -_08098298: .4byte 0x000026fa -_0809829C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080982A6: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80981F0 - - thumb_func_start sub_80982B4 -sub_80982B4: @ 80982B4 - push {r4,lr} - ldr r4, _080982E4 - ldr r1, _080982E8 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080982F4 - ldr r2, _080982EC - adds r0, r4, r2 - ldrb r0, [r0] - adds r2, 0xC1 - adds r1, r4, r2 - ldr r1, [r1] - bl sub_80F7A10 - ldr r1, _080982F0 - adds r0, r4, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _08098302 - .align 2, 0 -_080982E4: .4byte 0x02000000 -_080982E8: .4byte 0x000011f0 -_080982EC: .4byte 0x000011f7 -_080982F0: .4byte 0x000012ac -_080982F4: - ldr r2, _08098348 - adds r0, r4, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_08098302: - strb r0, [r1] - movs r0, 0 - movs r1, 0xB - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - ldr r4, _0809834C - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x10 - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x6B - movs r1, 0x1 - movs r2, 0xB - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x46 - movs r1, 0 - movs r2, 0xD - bl MenuPrint - subs r4, 0x21 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098348: .4byte 0x000012ac -_0809834C: .4byte 0x0200127a - thumb_func_end sub_80982B4 - - thumb_func_start sub_8098350 -sub_8098350: @ 8098350 - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, _080983A0 - ldr r1, _080983A4 - adds r0, r5, r1 - ldrh r2, [r0] - cmp r2, 0 - beq _080983B4 - ldr r0, _080983A8 - ldr r3, _080983AC - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r0, _080983B0 - adds r5, r0 -_08098382: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r1, r4, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08098382 - b _080983EC - .align 2, 0 -_080983A0: .4byte 0x02000000 -_080983A4: .4byte 0x000011f0 -_080983A8: .4byte 0x06007800 -_080983AC: .4byte gUnknown_02039760 -_080983B0: .4byte 0x000012b0 -_080983B4: - ldr r0, _080983F4 - ldr r3, _080983F8 - movs r1, 0xA - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r1, _080983FC - adds r5, r1 -_080983D4: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r1, r4, 25 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080983D4 -_080983EC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080983F4: .4byte 0x06007800 -_080983F8: .4byte gUnknown_02039760 -_080983FC: .4byte 0x000012b0 - thumb_func_end sub_8098350 - - thumb_func_start sub_8098400 -sub_8098400: @ 8098400 - push {r4,r5,lr} - sub sp, 0x14 - ldr r1, _0809847C - ldr r2, _08098480 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08098484 - ldr r1, _08098488 - bl LZ77UnCompVram - ldr r0, _0809848C - ldr r5, _08098490 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08098494 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08098498 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r4, _0809849C - add r1, sp, 0x10 - movs r0, 0 - strh r0, [r1] - ldr r0, _080984A0 - str r1, [r0] - str r4, [r0, 0x4] - ldr r1, _080984A4 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8098780 - ldr r0, _080984A8 - ldrb r0, [r0] - cmp r0, 0 - beq _080984AC - movs r0, 0x1 - bl sub_8098690 - movs r0, 0x1 - bl sub_8099200 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x16 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - b _080984CC - .align 2, 0 -_0809847C: .4byte REG_BG1CNT -_08098480: .4byte 0x00000f01 -_08098484: .4byte gPSSMenuMisc_Gfx -_08098488: .4byte 0x06006800 -_0809848C: .4byte gPSSMenuMisc_Tilemap -_08098490: .4byte 0x020000a8 -_08098494: .4byte gPSSMenu3_Pal -_08098498: .4byte gPSSMenu4_Pal -_0809849C: .4byte 0x06007800 -_080984A0: .4byte 0x040000d4 -_080984A4: .4byte 0x81000400 -_080984A8: .4byte gUnknown_0203847C -_080984AC: - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - movs r0, 0x1 - bl sub_8098690 -_080984CC: - ldr r0, _080984E0 - ldr r1, _080984E4 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080984E0: .4byte 0x02000000 -_080984E4: .4byte 0x000008af - thumb_func_end sub_8098400 - - thumb_func_start sub_80984E8 -sub_80984E8: @ 80984E8 - push {lr} - ldr r1, _08098510 - ldr r0, _08098514 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x14 - strh r0, [r2] - ldr r0, _08098518 - adds r2, r1, r0 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _0809851C - adds r1, r0 - strb r3, [r1] - movs r0, 0 - bl sub_8099200 - pop {r0} - bx r0 - .align 2, 0 -_08098510: .4byte 0x02000000 -_08098514: .4byte 0x000008a8 -_08098518: .4byte 0x000008aa -_0809851C: .4byte 0x000008ad - thumb_func_end sub_80984E8 - - thumb_func_start sub_8098520 -sub_8098520: @ 8098520 - push {r4,r5,lr} - sub sp, 0x10 - ldr r3, _08098578 - ldr r0, _0809857C - adds r5, r3, r0 - ldrb r0, [r5] - cmp r0, 0x14 - beq _08098592 - ldr r0, _08098580 - adds r1, r3, r0 - ldrh r0, [r1] - subs r0, 0x1 - movs r4, 0 - strh r0, [r1] - ldr r0, _08098584 - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r0, _08098588 - adds r3, 0xA8 - str r4, [sp] - ldrh r1, [r1] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - ldrh r1, [r2] - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - movs r0, 0x8 - bl sub_80994A8 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0809858C - movs r0, 0x1 - b _08098594 - .align 2, 0 -_08098578: .4byte 0x02000000 -_0809857C: .4byte 0x000008ad -_08098580: .4byte 0x000008a8 -_08098584: .4byte 0x000008aa -_08098588: .4byte 0x06007800 -_0809858C: - ldr r1, _0809859C - movs r0, 0x1 - strb r0, [r1] -_08098592: - movs r0, 0 -_08098594: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809859C: .4byte gUnknown_0203847C - thumb_func_end sub_8098520 - - thumb_func_start add_to_c3_somehow -add_to_c3_somehow: @ 80985A0 - ldr r1, _080985BC - ldr r0, _080985C0 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - ldr r0, _080985C4 - adds r2, r1, r0 - movs r0, 0x16 - strh r0, [r2] - ldr r0, _080985C8 - adds r1, r0 - strb r3, [r1] - bx lr - .align 2, 0 -_080985BC: .4byte 0x02000000 -_080985C0: .4byte 0x000008a8 -_080985C4: .4byte 0x000008aa -_080985C8: .4byte 0x000008ad - thumb_func_end add_to_c3_somehow - - thumb_func_start sub_80985CC -sub_80985CC: @ 80985CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r3, _08098640 - ldr r0, _08098644 - adds r6, r3, r0 - ldrb r0, [r6] - cmp r0, 0x14 - beq _0809867A - ldr r2, _08098648 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - movs r2, 0 - mov r9, r2 - strh r0, [r1] - ldr r0, _0809864C - adds r4, r3, r0 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldr r5, _08098650 - adds r3, 0xA8 - mov r8, r3 - str r2, [sp] - ldrh r0, [r1] - str r0, [sp, 0x4] - movs r7, 0xC - str r7, [sp, 0x8] - ldrh r0, [r4] - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - bl sub_809D034 - ldrh r2, [r4] - movs r4, 0x1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0xA - movs r3, 0xC - bl sub_809D16C - movs r0, 0x8 - negs r0, r0 - bl sub_80994A8 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _08098654 - movs r0, 0x1 - b _0809867C - .align 2, 0 -_08098640: .4byte 0x02000000 -_08098644: .4byte 0x000008ad -_08098648: .4byte 0x000008a8 -_0809864C: .4byte 0x000008aa -_08098650: .4byte 0x06007800 -_08098654: - ldr r0, _0809868C - movs r1, 0 - strb r1, [r0] - bl sub_809954C - bl party_compaction - str r7, [sp] - mov r2, r9 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x15 - movs r2, 0 - mov r3, r8 - bl sub_809D034 -_0809867A: - movs r0, 0 -_0809867C: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809868C: .4byte gUnknown_0203847C - thumb_func_end sub_80985CC - - thumb_func_start sub_8098690 -sub_8098690: @ 8098690 - push {lr} - sub sp, 0x10 - lsls r0, 24 - cmp r0, 0 - beq _080986C0 - ldr r0, _080986B8 - ldr r3, _080986BC - movs r1, 0xC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 - b _080986DA - .align 2, 0 -_080986B8: .4byte 0x06007800 -_080986BC: .4byte 0x020000a8 -_080986C0: - ldr r0, _080986E0 - ldr r3, _080986E4 - movs r1, 0xC - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 -_080986DA: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080986E0: .4byte 0x06007800 -_080986E4: .4byte 0x020000a8 - thumb_func_end sub_8098690 - - thumb_func_start sub_80986E8 -sub_80986E8: @ 80986E8 - ldr r1, _08098704 - ldr r2, _08098708 - adds r0, r1, r2 - movs r3, 0x1 - strb r3, [r0] - movs r0, 0x8B - lsls r0, 4 - adds r2, r1, r0 - movs r0, 0x1E - strb r0, [r2] - ldr r2, _0809870C - adds r1, r2 - strb r3, [r1] - bx lr - .align 2, 0 -_08098704: .4byte 0x02000000 -_08098708: .4byte 0x000008af -_0809870C: .4byte 0x000008b1 - thumb_func_end sub_80986E8 - - thumb_func_start sub_8098710 -sub_8098710: @ 8098710 - push {lr} - ldr r0, _0809872C - ldr r2, _08098730 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08098728 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_8098690 -_08098728: - pop {r0} - bx r0 - .align 2, 0 -_0809872C: .4byte 0x02000000 -_08098730: .4byte 0x000008af - thumb_func_end sub_8098710 - - thumb_func_start sub_8098734 -sub_8098734: @ 8098734 - push {lr} - ldr r2, _08098774 - ldr r1, _08098778 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08098770 - movs r0, 0x8B - lsls r0, 4 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bls _08098770 - movs r0, 0 - strb r0, [r1] - movs r3, 0 - ldr r0, _0809877C - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08098768 - movs r3, 0x1 -_08098768: - strb r3, [r1] - ldrb r0, [r1] - bl sub_8098690 -_08098770: - pop {r0} - bx r0 - .align 2, 0 -_08098774: .4byte 0x02000000 -_08098778: .4byte 0x000008af -_0809877C: .4byte 0x000008b1 - thumb_func_end sub_8098734 - - thumb_func_start sub_8098780 -sub_8098780: @ 8098780 - push {r4-r6,lr} - sub sp, 0x10 - movs r4, 0x1 - ldr r6, _080987D4 - movs r5, 0x80 - lsls r5, 9 -_0809878C: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080987D8 - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080987A0 - movs r0, 0x1 -_080987A0: - movs r1, 0x10 - cmp r0, 0 - beq _080987A8 - movs r1, 0xC -_080987A8: - lsrs r2, r5, 16 - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x7 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0xC0 - lsls r0, 10 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x5 - ble _0809878C - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080987D4: .4byte 0x020000a8 -_080987D8: .4byte gPlayerParty - thumb_func_end sub_8098780 - - thumb_func_start sub_80987DC -sub_80987DC: @ 80987DC - push {lr} - sub sp, 0x10 - bl sub_8098780 - ldr r0, _08098804 - ldr r3, _08098808 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - movs r1, 0x16 - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_08098804: .4byte 0x06007800 -_08098808: .4byte 0x020000a8 - thumb_func_end sub_80987DC - - thumb_func_start sub_809880C -sub_809880C: @ 809880C - push {lr} - ldr r0, _08098828 - ldr r1, _0809882C - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x6 - bl PlaySE - bl sub_80984E8 - pop {r0} - bx r0 - .align 2, 0 -_08098828: .4byte 0x02000000 -_0809882C: .4byte 0x000008ae - thumb_func_end sub_809880C - - thumb_func_start sub_8098830 -sub_8098830: @ 8098830 - push {r4,r5,lr} - ldr r5, _08098848 - ldr r0, _0809884C - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08098866 - cmp r0, 0x1 - bgt _08098850 - cmp r0, 0 - beq _08098856 - b _08098890 - .align 2, 0 -_08098848: .4byte 0x02000000 -_0809884C: .4byte 0x000008ae -_08098850: - cmp r0, 0x2 - beq _0809888C - b _08098890 -_08098856: - bl sub_8098520 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - bl sub_809B068 - b _0809887E -_08098866: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - ldr r1, _08098888 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0809887E - bl BoxSetMosaic -_0809887E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08098890 - .align 2, 0 -_08098888: .4byte 0x000011f6 -_0809888C: - movs r0, 0 - b _08098892 -_08098890: - movs r0, 0x1 -_08098892: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8098830 - - thumb_func_start sub_8098898 -sub_8098898: @ 8098898 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _080988C4 - lsls r0, r5, 3 - adds r0, r1 - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _080988B8 - b _080989F4 -_080988B8: - lsls r0, 2 - ldr r1, _080988C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080988C4: .4byte gUnknown_083B6DF4 -_080988C8: .4byte _080988CC - .align 2, 0 -_080988CC: - .4byte _080989F4 - .4byte _08098930 - .4byte _080988E8 - .4byte _08098974 - .4byte _08098954 - .4byte _08098910 - .4byte _080989B8 -_080988E8: - ldr r4, _08098904 - ldr r1, _08098908 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _0809890C - adds r4, r0 - adds r0, r2, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_08098904: .4byte 0x02002694 -_08098908: .4byte gUnknown_083B6DF4 -_0809890C: .4byte 0xffffeb66 -_08098910: - ldr r4, _08098928 - ldr r1, _0809892C - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r4, 0x50 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_08098928: .4byte 0x02002694 -_0809892C: .4byte gUnknown_083B6DF4 -_08098930: - ldr r0, _08098948 - ldr r2, _0809894C - adds r1, r0, r2 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08098950 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - b _080989FE - .align 2, 0 -_08098948: .4byte 0x02002694 -_0809894C: .4byte 0xffffeb66 -_08098950: .4byte gUnknown_083B6DF4 -_08098954: - ldr r0, _0809896C - adds r1, r0, 0 - adds r1, 0x50 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08098970 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - b _080989FE - .align 2, 0 -_0809896C: .4byte 0x02002694 -_08098970: .4byte gUnknown_083B6DF4 -_08098974: - ldr r1, _080989AC - lsls r0, r5, 3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r4, r6, r4 - adds r4, 0x1 - ldr r5, _080989B0 - adds r0, r5, 0 - adds r1, r6, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _080989B4 - adds r5, r0 - adds r0, r2, 0 - adds r1, r5, 0 - bl StringCopy - adds r2, r0, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_080989AC: .4byte gUnknown_083B6DF4 -_080989B0: .4byte 0x02002694 -_080989B4: .4byte 0xffffeb66 -_080989B8: - ldr r1, _080989EC - lsls r0, r5, 3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r4, r6, r4 - subs r4, 0x1 - ldr r5, _080989F0 - adds r0, r5, 0 - adds r1, r6, 0 - bl StringCopy - adds r2, r0, 0 - subs r0, r2, 0x1 - adds r5, 0x50 - adds r1, r5, 0 - bl StringCopy - adds r2, r0, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_080989EC: .4byte gUnknown_083B6DF4 -_080989F0: .4byte 0x02002694 -_080989F4: - ldr r0, _08098A2C - ldr r2, _08098A30 - lsls r1, r5, 3 - adds r1, r2 - ldr r1, [r1] -_080989FE: - bl StringCopy - adds r2, r0, 0 - ldr r0, _08098A34 - adds r3, r0, 0 - subs r3, 0x12 - cmp r2, r0 - bcs _08098A18 - movs r1, 0 -_08098A10: - strb r1, [r2] - adds r2, 0x1 - cmp r2, r0 - bcc _08098A10 -_08098A18: - movs r0, 0xFF - strb r0, [r2] - adds r0, r3, 0 - movs r1, 0xB - movs r2, 0x11 - bl MenuPrint - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098A2C: .4byte 0x02002694 -_08098A30: .4byte gUnknown_083B6DF4 -_08098A34: .4byte 0x020026a6 - thumb_func_end sub_8098898 - - thumb_func_start sub_8098A38 -sub_8098A38: @ 8098A38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x17 - movs r1, 0xA - movs r2, 0 - bl DisplayYesNoMenu - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl MoveMenuCursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8098A38 - - thumb_func_start sub_8098A5C -sub_8098A5C: @ 8098A5C - push {lr} - bl sub_8072DEC - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x17 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_8098A5C - - thumb_func_start sub_8098A80 -sub_8098A80: @ 8098A80 - push {lr} - bl sub_809CDCC - movs r0, 0xC - bl sub_809CDEC - movs r0, 0xD - bl sub_809CDEC - movs r0, 0xE - bl sub_809CDEC - movs r0, 0xF - bl sub_809CDEC - bl sub_809CE84 - pop {r0} - bx r0 - thumb_func_end sub_8098A80 - - thumb_func_start sub_8098AA8 -sub_8098AA8: @ 8098AA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_809CDCC - cmp r4, 0x1 - beq _08098AE6 - cmp r4, 0x1 - bgt _08098AC2 - cmp r4, 0 - beq _08098ACC - b _08098B32 -_08098AC2: - cmp r5, 0x2 - beq _08098B00 - cmp r5, 0x3 - beq _08098B1A - b _08098B32 -_08098ACC: - movs r0, 0x10 - bl sub_809CDEC - movs r0, 0x11 - bl sub_809CDEC - movs r0, 0x12 - bl sub_809CDEC - movs r0, 0x13 - bl sub_809CDEC - b _08098B32 -_08098AE6: - movs r0, 0x14 - bl sub_809CDEC - movs r0, 0x15 - bl sub_809CDEC - movs r0, 0x16 - bl sub_809CDEC - movs r0, 0x17 - bl sub_809CDEC - b _08098B32 -_08098B00: - movs r0, 0x18 - bl sub_809CDEC - movs r0, 0x19 - bl sub_809CDEC - movs r0, 0x1A - bl sub_809CDEC - movs r0, 0x1B - bl sub_809CDEC - b _08098B32 -_08098B1A: - movs r0, 0x1C - bl sub_809CDEC - movs r0, 0x1D - bl sub_809CDEC - movs r0, 0x1E - bl sub_809CDEC - movs r0, 0x1F - bl sub_809CDEC -_08098B32: - bl sub_809CE84 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8098AA8 - - thumb_func_start get_preferred_box -get_preferred_box: @ 8098B3C - ldr r0, _08098B44 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08098B44: .4byte gPokemonStorage - thumb_func_end get_preferred_box - - thumb_func_start sub_8098B48 -sub_8098B48: @ 8098B48 - push {r4,r5,lr} - bl sub_809D51C - movs r2, 0 - ldr r1, _08098BD8 - ldr r0, [r1] - ldr r4, _08098BDC - adds r3, r0, r4 - movs r4, 0 - adds r5, r1, 0 -_08098B5C: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B5C - movs r2, 0 - ldr r0, _08098BD8 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r3, r0, r1 - movs r1, 0 -_08098B7A: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B7A - movs r2, 0 - ldr r0, _08098BD8 - ldr r0, [r0] - ldr r4, _08098BE0 - adds r3, r0, r4 - movs r1, 0 -_08098B96: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _08098B96 - movs r2, 0 - ldr r0, _08098BD8 - ldr r0, [r0] - ldr r1, _08098BE4 - adds r3, r0, r1 - movs r1, 0 -_08098BB2: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098BB2 - ldr r0, [r5] - ldr r2, _08098BE8 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r4, _08098BEC - adds r0, r4 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098BD8: .4byte gUnknown_083B6DB4 -_08098BDC: .4byte 0x000010d0 -_08098BE0: .4byte 0x00001038 -_08098BE4: .4byte 0x00001050 -_08098BE8: .4byte 0x00001034 -_08098BEC: .4byte 0x00000d5c - thumb_func_end sub_8098B48 - - thumb_func_start sub_8098BF0 -sub_8098BF0: @ 8098BF0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, _08098C38 - ldr r5, [r0] - ldr r0, _08098C3C - adds r4, r5, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x7 - str r1, [sp, 0x4] - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_8099AFC - ldr r1, _08098C40 - adds r5, r1 - str r0, [r5] - ldr r1, _08098C44 - str r1, [r0, 0x1C] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098C38: .4byte gUnknown_083B6DB4 -_08098C3C: .4byte 0x000025b4 -_08098C40: .4byte 0x00001034 -_08098C44: .4byte sub_80999C4 - thumb_func_end sub_8098BF0 - - thumb_func_start sub_8098C48 -sub_8098C48: @ 8098C48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _08098CCC - adds r6, r0, r1 - movs r0, 0 - mov r8, r0 - movs r7, 0 -_08098C6A: - movs r5, 0 - adds r1, r7, 0x1 - mov r9, r1 -_08098C70: - adds r0, r6, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08098CD8 - adds r0, r6, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - lsls r2, r5, 1 - adds r2, r5 - lsls r2, 19 - movs r3, 0xC8 - lsls r3, 15 - adds r2, r3 - asrs r2, 16 - lsls r3, r7, 1 - adds r3, r7 - lsls r3, 19 - movs r0, 0xB0 - lsls r0, 14 - adds r3, r0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - subs r0, r5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - asrs r3, 16 - bl sub_8099AFC - ldr r1, _08098CD0 - ldr r1, [r1] - mov r3, r8 - lsls r2, r3, 2 - ldr r3, _08098CD4 - adds r1, r3 - adds r1, r2 - str r0, [r1] - b _08098CE8 - .align 2, 0 -_08098CCC: .4byte gUnknown_020300A4 -_08098CD0: .4byte gUnknown_083B6DB4 -_08098CD4: .4byte 0x00001050 -_08098CD8: - ldr r0, _08098D18 - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08098D1C - adds r0, r3 - adds r0, r1 - str r4, [r0] -_08098CE8: - adds r6, 0x50 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08098C70 - mov r1, r9 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _08098C6A - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098D18: .4byte gUnknown_083B6DB4 -_08098D1C: .4byte 0x00001050 - thumb_func_end sub_8098C48 - - thumb_func_start sub_8098D20 -sub_8098D20: @ 8098D20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r2, r1, 4 - subs r2, r1 - lsls r2, 5 - lsls r0, r4, 2 - mov r9, r0 - adds r0, r4 - lsls r0, 4 - ldr r1, _08098DD4 - adds r0, r1 - adds r7, r2, r0 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _08098DC4 - adds r0, r4, 0 - movs r1, 0x6 - bl __umodsi3 - adds r6, r0, 0 - lsls r0, r6, 24 - lsrs r0, 24 - lsls r5, r0, 1 - adds r5, r0 - lsls r5, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r5, r1 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 19 - movs r2, 0xB0 - lsls r2, 14 - adds r4, r2 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r8 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_8099AFC - ldr r1, _08098DD8 - ldr r1, [r1] - ldr r2, _08098DDC - adds r1, r2 - add r1, r9 - str r0, [r1] -_08098DC4: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098DD4: .4byte gUnknown_020300A4 -_08098DD8: .4byte gUnknown_083B6DB4 -_08098DDC: .4byte 0x00001050 - thumb_func_end sub_8098D20 - - thumb_func_start sub_8098DE0 -sub_8098DE0: @ 8098DE0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _08098E18 - ldr r0, [r0] - ldr r1, _08098E1C - adds r3, r0, r1 - movs r6, 0x1 - ldr r5, _08098E20 -_08098DF4: - lsls r0, r2, 2 - adds r1, r3, r0 - ldr r0, [r1] - cmp r0, 0 - beq _08098E08 - strh r4, [r0, 0x32] - ldr r0, [r1] - strh r6, [r0, 0x36] - ldr r0, [r1] - str r5, [r0, 0x1C] -_08098E08: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098DF4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098E18: .4byte gUnknown_083B6DB4 -_08098E1C: .4byte 0x00001050 -_08098E20: .4byte sub_8098E68 - thumb_func_end sub_8098DE0 - - thumb_func_start sub_8098E24 -sub_8098E24: @ 8098E24 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E40 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - b _08098E56 -_08098E40: - ldr r0, _08098E5C - ldr r1, [r0] - ldr r3, _08098E60 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, _08098E64 - str r0, [r2, 0x1C] -_08098E56: - pop {r0} - bx r0 - .align 2, 0 -_08098E5C: .4byte gUnknown_083B6DB4 -_08098E60: .4byte 0x00001178 -_08098E64: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E24 - - thumb_func_start sub_8098E68 -sub_8098E68: @ 8098E68 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x36] - movs r3, 0x36 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E7C - subs r0, r1, 0x1 - strh r0, [r2, 0x36] - b _08098E98 -_08098E7C: - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x38] - subs r0, 0x45 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB6 - bls _08098E98 - ldr r0, _08098E9C - str r0, [r2, 0x1C] -_08098E98: - pop {r0} - bx r0 - .align 2, 0 -_08098E9C: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E68 - - thumb_func_start sub_8098EA0 -sub_8098EA0: @ 8098EA0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r0, _08098ED8 - ldr r0, [r0] - ldr r1, _08098EDC - adds r7, r0, r1 -_08098EB0: - lsls r0, r5, 2 - adds r4, r7, r0 - ldr r0, [r4] - cmp r0, 0 - beq _08098EC2 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08098EC2: - adds r0, r5, 0x6 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _08098EB0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098ED8: .4byte gUnknown_083B6DB4 -_08098EDC: .4byte 0x00001050 - thumb_func_end sub_8098EA0 - - thumb_func_start sub_8098EE0 -sub_8098EE0: @ 8098EE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 16 - movs r0, 0x2C - str r0, [sp, 0x10] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - mov r10, r0 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsrs r3, r2, 16 - str r3, [sp, 0xC] - asrs r2, 16 - adds r1, r0, 0 - muls r1, r2 - mov r4, r10 - subs r1, r4, r1 - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x14] - mov r9, r0 - ldr r0, _08098FF8 - ldr r0, [r0] - ldr r2, _08098FFC - adds r2, r0 - mov r8, r2 - ldr r3, _08099000 - adds r3, r0, r3 - str r3, [sp, 0x20] - lsls r1, 16 - str r1, [sp, 0x1C] -_08098F42: - mov r4, r8 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r7, r6, 2 - adds r1, r7, r6 - lsls r1, 4 - ldr r2, _08099004 - adds r4, r1, r2 - adds r0, r4 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08098FC8 - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r0, r4 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldr r2, [sp, 0x10] - lsls r3, r2, 16 - asrs r3, 16 - movs r0, 0x2 - str r0, [sp] - ldr r4, [sp, 0x18] - str r4, [sp, 0x4] - adds r0, r5, 0 - ldr r4, [sp, 0x1C] - asrs r2, r4, 16 - bl sub_8099AFC - ldr r2, [sp, 0x20] - adds r1, r2, r7 - str r0, [r1] - cmp r0, 0 - beq _08098FC8 - mov r3, sp - ldrh r3, [r3, 0x8] - strh r3, [r0, 0x30] - ldr r0, [r1] - mov r4, sp - ldrh r4, [r4, 0xC] - strh r4, [r0, 0x32] - ldr r0, [r1] - mov r2, r10 - strh r2, [r0, 0x34] - ldr r1, [r1] - ldr r0, _08099008 - str r0, [r1, 0x1C] - ldr r0, [sp, 0x14] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] -_08098FC8: - adds r0, r6, 0x6 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x10] - adds r0, 0x18 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _08098F42 - ldr r0, [sp, 0x14] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08098FF8: .4byte gUnknown_083B6DB4 -_08098FFC: .4byte 0x0000117d -_08099000: .4byte 0x00001050 -_08099004: .4byte gUnknown_020300A4 -_08099008: .4byte sub_8098E24 - thumb_func_end sub_8098EE0 - - thumb_func_start sub_809900C -sub_809900C: @ 809900C - push {r4-r6,lr} - lsls r1, 24 - lsrs r1, 24 - ldr r4, _08099058 - ldr r5, [r4] - ldr r3, _0809905C - adds r2, r5, r3 - movs r3, 0 - strb r3, [r2] - ldr r6, _08099060 - adds r2, r5, r6 - strb r0, [r2] - ldr r2, _08099064 - adds r0, r5, r2 - strb r1, [r0] - subs r6, 0xB - adds r2, r5, r6 - movs r0, 0x20 - strh r0, [r2] - lsls r1, 24 - asrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - negs r0, r0 - adds r6, 0x4 - adds r2, r5, r6 - strh r0, [r2] - ldr r2, _08099068 - adds r0, r5, r2 - strh r3, [r0] - cmp r1, 0 - ble _08099070 - ldr r3, _0809906C - adds r1, r5, r3 - movs r0, 0 - b _08099076 - .align 2, 0 -_08099058: .4byte gUnknown_083B6DB4 -_0809905C: .4byte 0x0000117c -_08099060: .4byte 0x0000117d -_08099064: .4byte 0x0000117b -_08099068: .4byte 0x00001178 -_0809906C: .4byte 0x0000117a -_08099070: - ldr r6, _080990A0 - adds r1, r5, r6 - movs r0, 0x5 -_08099076: - strb r0, [r1] - ldr r2, [r4] - ldr r1, _080990A0 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x64 - ldr r3, _080990A4 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _080990A8 - adds r2, r6 - movs r1, 0 - ldrsh r0, [r2, r1] - bl sub_8098DE0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080990A0: .4byte 0x0000117a -_080990A4: .4byte 0x00001174 -_080990A8: .4byte 0x00001176 - thumb_func_end sub_809900C - - thumb_func_start sub_80990AC -sub_80990AC: @ 80990AC - push {r4-r6,lr} - ldr r0, _080990D4 - ldr r4, [r0] - ldr r0, _080990D8 - adds r3, r4, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _080990C0 - subs r0, 0x1 - strh r0, [r3] -_080990C0: - ldr r1, _080990DC - adds r6, r4, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08099138 - cmp r0, 0x1 - bgt _080990E0 - cmp r0, 0 - beq _080990E8 - b _080991F0 - .align 2, 0 -_080990D4: .4byte gUnknown_083B6DB4 -_080990D8: .4byte 0x00001172 -_080990DC: .4byte 0x0000117c -_080990E0: - cmp r0, 0x2 - bne _080990E6 - b _080991E0 -_080990E6: - b _080991F0 -_080990E8: - ldr r2, _0809912C - adds r5, r4, r2 - ldr r3, _08099130 - adds r0, r4, r3 - ldrh r0, [r0] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBA - bhi _08099104 - b _080991F8 -_08099104: - adds r2, 0x6 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_8098EA0 - ldr r3, _08099134 - adds r0, r4, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _080991F8 - .align 2, 0 -_0809912C: .4byte 0x00001174 -_08099130: .4byte 0x00001176 -_08099134: .4byte 0x0000117b -_08099138: - ldr r2, _08099194 - adds r1, r4, r2 - ldr r5, _08099198 - adds r2, r4, r5 - ldrh r0, [r2] - ldrh r5, [r1] - adds r0, r5 - strh r0, [r1] - ldr r0, _0809919C - adds r5, r4, r0 - ldrb r0, [r5] - ldrh r1, [r3] - movs r3, 0 - ldrsh r2, [r2, r3] - bl sub_8098EE0 - ldr r2, _080991A0 - adds r1, r4, r2 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldr r1, _080991A4 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r1, 0 - ble _08099178 - ldrb r0, [r5] - cmp r0, 0x5 - beq _08099182 -_08099178: - cmp r1, 0 - bge _080991B0 - ldrb r0, [r5] - cmp r0, 0 - bne _080991B0 -_08099182: - ldr r0, _080991A8 - ldr r1, [r0] - ldr r2, _080991AC - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080991F8 - .align 2, 0 -_08099194: .4byte 0x00001174 -_08099198: .4byte 0x00001176 -_0809919C: .4byte 0x0000117a -_080991A0: .4byte 0x00001178 -_080991A4: .4byte 0x0000117b -_080991A8: .4byte gUnknown_083B6DB4 -_080991AC: .4byte 0x0000117c -_080991B0: - ldr r0, _080991D0 - ldr r1, [r0] - ldr r5, _080991D4 - adds r3, r1, r5 - ldr r2, _080991D8 - adds r0, r1, r2 - ldrb r0, [r0] - ldrb r5, [r3] - adds r0, r5 - movs r2, 0 - strb r0, [r3] - ldr r0, _080991DC - adds r1, r0 - strb r2, [r1] - b _080991F8 - .align 2, 0 -_080991D0: .4byte gUnknown_083B6DB4 -_080991D4: .4byte 0x0000117a -_080991D8: .4byte 0x0000117b -_080991DC: .4byte 0x0000117c -_080991E0: - ldr r1, _080991F4 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080991F8 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080991F0: - movs r0, 0 - b _080991FA - .align 2, 0 -_080991F4: .4byte 0x00001178 -_080991F8: - movs r0, 0x1 -_080991FA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80990AC - - thumb_func_start sub_8099200 -sub_8099200: @ 8099200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080992A0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x68 - movs r3, 0x40 - bl sub_8099AFC - ldr r1, _080992A4 - ldr r1, [r1] - ldr r2, _080992A8 - adds r1, r2 - str r0, [r1] - movs r7, 0x1 - movs r6, 0x1 -_08099246: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _080992A0 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080992AC - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - subs r0, r6, 0x1 - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 19 - movs r0, 0x80 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x98 - bl sub_8099AFC - ldr r1, _080992A4 - ldr r1, [r1] - lsls r2, r6, 2 - ldr r3, _080992A8 - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _080992BA - .align 2, 0 -_080992A0: .4byte gPlayerParty -_080992A4: .4byte gUnknown_083B6DB4 -_080992A8: .4byte 0x00001038 -_080992AC: - ldr r0, _08099308 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0809930C - adds r0, r2 - adds r0, r1 - str r5, [r0] -_080992BA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _08099246 - mov r3, r8 - cmp r3, 0 - bne _080992FA - movs r6, 0 - cmp r6, r7 - bcs _080992FA - ldr r0, _08099308 - ldr r0, [r0] - ldr r1, _0809930C - adds r3, r0, r1 - movs r4, 0x4 -_080992DA: - lsls r1, r6, 2 - adds r1, r3, r1 - ldr r2, [r1] - ldrh r0, [r2, 0x22] - subs r0, 0xA0 - strh r0, [r2, 0x22] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080992DA -_080992FA: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099308: .4byte gUnknown_083B6DB4 -_0809930C: .4byte 0x00001038 - thumb_func_end sub_8099200 - - thumb_func_start sub_8099310 -sub_8099310: @ 8099310 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08099368 - ldr r2, [r0] - ldr r0, _0809936C - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - movs r6, 0 - mov r8, r2 - ldr r7, _0809936C - add r7, r8 -_0809932C: - lsls r1, r5, 2 - ldr r0, _08099370 - add r0, r8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099354 - cmp r5, r6 - beq _0809934E - adds r1, r6, 0 - bl sub_8099388 - movs r0, 0 - str r0, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] -_0809934E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08099354: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809932C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099368: .4byte gUnknown_083B6DB4 -_0809936C: .4byte 0x00001171 -_08099370: .4byte 0x00001038 - thumb_func_end sub_8099310 - - thumb_func_start sub_8099374 -sub_8099374: @ 8099374 - ldr r0, _08099380 - ldr r0, [r0] - ldr r1, _08099384 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08099380: .4byte gUnknown_083B6DB4 -_08099384: .4byte 0x00001171 - thumb_func_end sub_8099374 - - thumb_func_start sub_8099388 -sub_8099388: @ 8099388 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - strh r1, [r2, 0x30] - cmp r1, 0 - bne _0809939C - movs r3, 0x68 - movs r4, 0x40 - b _080993AE -_0809939C: - movs r3, 0x98 - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 19 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 -_080993AE: - ldrh r0, [r2, 0x20] - lsls r0, 3 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x22] - lsls r0, 3 - strh r0, [r2, 0x34] - lsls r1, r3, 3 - movs r3, 0x32 - ldrsh r0, [r2, r3] - subs r0, r1, r0 - cmp r0, 0 - bge _080993C8 - adds r0, 0x7 -_080993C8: - asrs r0, 3 - strh r0, [r2, 0x36] - lsls r0, r4, 16 - asrs r0, 13 - movs r3, 0x34 - ldrsh r1, [r2, r3] - subs r0, r1 - cmp r0, 0 - bge _080993DC - adds r0, 0x7 -_080993DC: - asrs r0, 3 - strh r0, [r2, 0x38] - movs r0, 0x8 - strh r0, [r2, 0x3A] - ldr r0, _080993F0 - str r0, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080993F0: .4byte sub_80993F4 - thumb_func_end sub_8099388 - - thumb_func_start sub_80993F4 -sub_80993F4: @ 80993F4 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08099424 - ldrh r0, [r3, 0x36] - ldrh r4, [r3, 0x32] - adds r0, r4 - strh r0, [r3, 0x32] - ldrh r1, [r3, 0x38] - ldrh r4, [r3, 0x34] - adds r1, r4 - strh r1, [r3, 0x34] - lsls r0, 16 - asrs r0, 19 - strh r0, [r3, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r3, 0x22] - subs r0, r2, 0x1 - strh r0, [r3, 0x3A] - b _08099468 -_08099424: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08099434 - movs r0, 0x68 - strh r0, [r3, 0x20] - movs r0, 0x40 - b _08099446 -_08099434: - movs r0, 0x98 - strh r0, [r3, 0x20] - movs r4, 0x30 - ldrsh r1, [r3, r4] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x10 -_08099446: - strh r0, [r3, 0x22] - ldr r0, _08099470 - str r0, [r3, 0x1C] - ldr r0, _08099474 - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 2 - ldr r4, _08099478 - adds r0, r2, r4 - adds r0, r1 - str r3, [r0] - ldr r0, _0809947C - adds r2, r0 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] -_08099468: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099470: .4byte SpriteCallbackDummy -_08099474: .4byte gUnknown_083B6DB4 -_08099478: .4byte 0x00001038 -_0809947C: .4byte 0x00001171 - thumb_func_end sub_80993F4 - - thumb_func_start sub_8099480 -sub_8099480: @ 8099480 - push {r4,lr} - ldr r0, _080994A0 - ldr r0, [r0] - ldr r1, _080994A4 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099498 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08099498: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080994A0: .4byte gUnknown_083B6DB4 -_080994A4: .4byte 0x00001034 - thumb_func_end sub_8099480 - - thumb_func_start sub_80994A8 -sub_80994A8: @ 80994A8 - push {r4-r6,lr} - movs r3, 0 - ldr r1, _080994FC - ldr r1, [r1] - ldr r2, _08099500 - adds r5, r1, r2 - lsls r0, 16 - asrs r4, r0, 16 - movs r6, 0x5 - negs r6, r6 -_080994BC: - lsls r0, r3, 2 - adds r2, r5, r0 - ldr r1, [r2] - cmp r1, 0 - beq _0809950E - ldrh r0, [r1, 0x22] - adds r0, r4, r0 - strh r0, [r1, 0x22] - ldr r2, [r2] - ldrh r1, [r2, 0x26] - ldrh r0, [r2, 0x22] - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0xC0 - bls _08099504 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809950E - .align 2, 0 -_080994FC: .4byte gUnknown_083B6DB4 -_08099500: .4byte 0x00001038 -_08099504: - adds r2, 0x3E - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r2] -_0809950E: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080994BC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80994A8 - - thumb_func_start sub_8099520 -sub_8099520: @ 8099520 - push {r4,lr} - lsls r0, 24 - ldr r1, _08099544 - ldr r1, [r1] - lsrs r0, 22 - ldr r2, _08099548 - adds r1, r2 - adds r4, r1, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809953E - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809953E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099544: .4byte gUnknown_083B6DB4 -_08099548: .4byte 0x00001038 - thumb_func_end sub_8099520 - - thumb_func_start sub_809954C -sub_809954C: @ 809954C - push {r4-r6,lr} - movs r5, 0 - ldr r0, _0809957C - ldr r0, [r0] - ldr r1, _08099580 - adds r6, r0, r1 -_08099558: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809956A - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809956A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08099558 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809957C: .4byte gUnknown_083B6DB4 -_08099580: .4byte 0x00001038 - thumb_func_end sub_809954C - - thumb_func_start sub_8099584 -sub_8099584: @ 8099584 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - cmp r4, 0 - bne _080995B4 - ldr r3, _080995AC - ldr r0, [r3] - ldr r5, _080995B0 - adds r2, r0, r5 - lsls r1, 2 - adds r5, 0x4 - adds r0, r5 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - str r4, [r0] - b _080995D0 - .align 2, 0 -_080995AC: .4byte gUnknown_083B6DB4 -_080995B0: .4byte 0x00001034 -_080995B4: - cmp r4, 0x1 - bne _080995F4 - ldr r3, _080995FC - ldr r0, [r3] - ldr r1, _08099600 - adds r2, r0, r1 - lsls r1, r5, 2 - ldr r4, _08099604 - adds r0, r4 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - movs r1, 0 - str r1, [r0] -_080995D0: - ldr r2, [r3] - ldr r5, _08099600 - adds r2, r5 - ldr r1, [r2] - ldr r0, _08099608 - str r0, [r1, 0x1C] - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080995F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080995FC: .4byte gUnknown_083B6DB4 -_08099600: .4byte 0x00001034 -_08099604: .4byte 0x00001050 -_08099608: .4byte sub_80999C4 - thumb_func_end sub_8099584 - - thumb_func_start sub_809960C -sub_809960C: @ 809960C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r0, 0xE - bne _08099654 - ldr r4, _08099648 - ldr r0, [r4] - lsls r1, r6, 2 - ldr r2, _0809964C - adds r3, r0, r2 - adds r3, r1 - ldr r1, _08099650 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0xB - strb r1, [r0] - b _0809968A - .align 2, 0 -_08099648: .4byte gUnknown_083B6DB4 -_0809964C: .4byte 0x00001038 -_08099650: .4byte 0x00001034 -_08099654: - ldr r5, _080996A0 - ldr r0, [r5] - lsls r1, r6, 2 - ldr r2, _080996A4 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _080996A8 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r4, [r3] - adds r0, r6, 0 - movs r1, 0x6 - bl __umodsi3 - movs r1, 0x12 - subs r1, r0 - adds r4, 0x43 - strb r1, [r4] - adds r4, r5, 0 -_0809968A: - ldr r1, [r4] - ldr r2, _080996A8 - adds r1, r2 - ldr r2, [r1] - ldr r0, _080996AC - str r0, [r2, 0x1C] - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080996A0: .4byte gUnknown_083B6DB4 -_080996A4: .4byte 0x00001050 -_080996A8: .4byte 0x00001034 -_080996AC: .4byte SpriteCallbackDummy - thumb_func_end sub_809960C - - thumb_func_start sub_80996B0 -sub_80996B0: @ 80996B0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0xE - bne _080996D8 - ldr r3, _080996CC - ldr r1, [r3] - ldr r0, _080996D0 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _080996D4 - b _080996E4 - .align 2, 0 -_080996CC: .4byte gUnknown_083B6DB4 -_080996D0: .4byte 0x000010c8 -_080996D4: .4byte 0x00001038 -_080996D8: - ldr r3, _08099704 - ldr r1, [r3] - ldr r0, _08099708 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _0809970C -_080996E4: - adds r0, r4 - adds r1, r0 - str r1, [r2] - ldr r1, [r3] - ldr r2, _08099710 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08099714 - str r0, [r2, 0x1C] - ldr r4, _08099718 - adds r1, r4 - movs r0, 0 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099704: .4byte gUnknown_083B6DB4 -_08099708: .4byte 0x000010c8 -_0809970C: .4byte 0x00001050 -_08099710: .4byte 0x00001034 -_08099714: .4byte SpriteCallbackDummy -_08099718: .4byte 0x00001170 - thumb_func_end sub_80996B0 - - thumb_func_start sub_809971C -sub_809971C: @ 809971C - push {r4-r7,lr} - ldr r0, _08099730 - ldr r2, [r0] - ldr r0, _08099734 - adds r7, r2, r0 - ldrb r0, [r7] - cmp r0, 0x10 - bne _08099738 - movs r0, 0 - b _08099800 - .align 2, 0 -_08099730: .4byte gUnknown_083B6DB4 -_08099734: .4byte 0x00001170 -_08099738: - adds r0, 0x1 - strb r0, [r7] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809975E - ldr r1, _08099808 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, 0x22] - subs r0, 0x1 - strh r0, [r1, 0x22] - ldr r4, _0809980C - adds r0, r2, r4 - ldr r1, [r0] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] -_0809975E: - ldr r0, _08099808 - adds r5, r2, r0 - ldr r0, [r5] - ldr r1, [r0] - ldr r3, _08099810 - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _08099778 - adds r0, 0xF -_08099778: - asrs r0, 4 - strh r0, [r1, 0x24] - ldr r0, _0809980C - adds r6, r2, r0 - ldr r1, [r6] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _08099792 - adds r0, 0xF -_08099792: - asrs r0, 4 - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r7] - cmp r0, 0x8 - bne _080997DE - ldr r4, [r6] - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x5] - movs r2, 0xC - ands r2, r0 - ldrb r3, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, 0x5] - ldr r2, [r6] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - ldrb r0, [r0] - adds r2, 0x43 - strb r0, [r2] - ldr r0, [r5] - ldr r2, [r0] - ldrb r0, [r2, 0x5] - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x5] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080997DE: - ldrb r0, [r7] - cmp r0, 0x10 - bne _080997FE - ldr r1, [r6] - ldr r0, [r5] - ldr r0, [r0] - str r0, [r6] - ldr r0, [r5] - str r1, [r0] - ldr r1, [r6] - ldr r0, _08099814 - str r0, [r1, 0x1C] - ldr r0, [r5] - ldr r1, [r0] - ldr r0, _08099818 - str r0, [r1, 0x1C] -_080997FE: - movs r0, 0x1 -_08099800: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08099808: .4byte 0x000010c8 -_0809980C: .4byte 0x00001034 -_08099810: .4byte gSineTable -_08099814: .4byte sub_80999C4 -_08099818: .4byte SpriteCallbackDummy - thumb_func_end sub_809971C - - thumb_func_start sub_809981C -sub_809981C: @ 809981C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0x1 - beq _08099858 - cmp r0, 0x1 - bgt _08099836 - cmp r0, 0 - beq _0809983C - b _080998C0 -_08099836: - cmp r2, 0x2 - beq _0809987C - b _080998C0 -_0809983C: - ldr r3, _0809984C - ldr r1, [r3] - ldr r0, _08099850 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099854 - b _08099864 - .align 2, 0 -_0809984C: .4byte gUnknown_083B6DB4 -_08099850: .4byte 0x000010cc -_08099854: .4byte 0x00001038 -_08099858: - ldr r3, _08099870 - ldr r1, [r3] - ldr r0, _08099874 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099878 -_08099864: - adds r0, r4 - adds r1, r0 - str r1, [r2] - adds r0, r3, 0 - b _0809988A - .align 2, 0 -_08099870: .4byte gUnknown_083B6DB4 -_08099874: .4byte 0x000010cc -_08099878: .4byte 0x00001050 -_0809987C: - ldr r0, _080998C8 - ldr r1, [r0] - ldr r3, _080998CC - adds r2, r1, r3 - ldr r4, _080998D0 - adds r1, r4 - str r1, [r2] -_0809988A: - ldr r0, [r0] - ldr r1, _080998CC - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080998C0 - bl InitSpriteAffineAnim - ldr r0, [r4] - ldr r2, [r0] - ldrb r1, [r2, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r0, [r4] - ldr r1, [r0] - ldr r0, _080998D4 - str r0, [r1, 0x10] - ldr r0, [r4] - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAffineAnim -_080998C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080998C8: .4byte gUnknown_083B6DB4 -_080998CC: .4byte 0x000010cc -_080998D0: .4byte 0x00001034 -_080998D4: .4byte gUnknown_083B6F5C - thumb_func_end sub_809981C - - thumb_func_start sub_80998D8 -sub_80998D8: @ 80998D8 - push {lr} - ldr r0, _080998FC - ldr r0, [r0] - ldr r1, _08099900 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - cmp r1, 0 - beq _080998F8 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _08099904 -_080998F8: - movs r0, 0 - b _0809991A - .align 2, 0 -_080998FC: .4byte gUnknown_083B6DB4 -_08099900: .4byte 0x000010cc -_08099904: - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08099918 - movs r0, 0x4 - orrs r0, r2 - strb r0, [r3] -_08099918: - movs r0, 0x1 -_0809991A: - pop {r1} - bx r1 - thumb_func_end sub_80998D8 - - thumb_func_start sub_8099920 -sub_8099920: @ 8099920 - push {r4,lr} - ldr r0, _08099950 - ldr r0, [r0] - ldr r1, _08099954 - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _0809994A - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - ldr r0, [r0] - bl sub_8099BE0 - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_0809994A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099950: .4byte gUnknown_083B6DB4 -_08099954: .4byte 0x000010cc - thumb_func_end sub_8099920 - - thumb_func_start sub_8099958 -sub_8099958: @ 8099958 - push {lr} - ldr r0, _08099988 - ldr r0, [r0] - ldr r1, _0809998C - adds r3, r0, r1 - ldr r0, [r3] - ldr r0, [r0] - cmp r0, 0 - beq _08099982 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAffineAnim -_08099982: - pop {r0} - bx r0 - .align 2, 0 -_08099988: .4byte gUnknown_083B6DB4 -_0809998C: .4byte 0x000010cc - thumb_func_end sub_8099958 - - thumb_func_start sub_8099990 -sub_8099990: @ 8099990 - push {lr} - ldr r0, _080999A4 - ldr r0, [r0] - ldr r1, _080999A8 - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, 0 - bne _080999AC - movs r0, 0 - b _080999C0 - .align 2, 0 -_080999A4: .4byte gUnknown_083B6DB4 -_080999A8: .4byte 0x000010cc -_080999AC: - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080999BE - movs r0, 0 - str r0, [r2] -_080999BE: - movs r0, 0x1 -_080999C0: - pop {r1} - bx r1 - thumb_func_end sub_8099990 - - thumb_func_start sub_80999C4 -sub_80999C4: @ 80999C4 - ldr r1, _080999E4 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r2, [r1] - ldrh r1, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r1, r2 - adds r1, 0x4 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080999E4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_80999C4 - - thumb_func_start sub_80999E8 -sub_80999E8: @ 80999E8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, _08099A58 - ldr r0, [r1] - movs r2, 0x89 - lsls r2, 5 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, r3 - beq _08099A20 - adds r6, r2, 0 - movs r5, 0x89 - lsls r5, 5 -_08099A08: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A20 - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08099A08 -_08099A20: - cmp r4, 0x28 - bne _08099A60 - movs r4, 0 - ldr r0, [r2] - movs r5, 0x89 - lsls r5, 5 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08099A4E - adds r6, r2, 0 -_08099A36: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A4E - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08099A36 -_08099A4E: - cmp r4, 0x28 - bne _08099A60 - ldr r0, _08099A5C - b _08099A94 - .align 2, 0 -_08099A58: .4byte gUnknown_083B6DB4 -_08099A5C: .4byte 0x0000ffff -_08099A60: - ldr r1, [r2] - lsls r2, r4, 1 - movs r5, 0x89 - lsls r5, 5 - adds r0, r1, r5 - adds r0, r2 - strh r3, [r0] - ldr r0, _08099A9C - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r4, 20 - lsrs r4, 16 - ldr r1, _08099AA0 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 5 - ldr r2, _08099AA4 - adds r1, r2 - ldr r2, _08099AA8 - bl CpuSet - adds r0, r4, 0 -_08099A94: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08099A9C: .4byte 0x000010d0 -_08099AA0: .4byte gMonIconTable -_08099AA4: .4byte 0x06010000 -_08099AA8: .4byte 0x04000080 - thumb_func_end sub_80999E8 - - thumb_func_start sub_8099AAC -sub_8099AAC: @ 8099AAC - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0 - ldr r0, _08099AE4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r5, r0, r1 - subs r1, 0x50 - adds r4, r0, r1 - ldr r0, _08099AE8 - adds r7, r0, 0 -_08099AC6: - lsls r1, r3, 1 - adds r2, r5, r1 - ldrh r0, [r2] - cmp r0, r6 - bne _08099AEC - adds r1, r4, r1 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ands r0, r7 - cmp r0, 0 - bne _08099AF6 - strh r0, [r2] - b _08099AF6 - .align 2, 0 -_08099AE4: .4byte gUnknown_083B6DB4 -_08099AE8: .4byte 0x0000ffff -_08099AEC: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x27 - bls _08099AC6 -_08099AF6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099AAC - - thumb_func_start sub_8099AFC -sub_8099AFC: @ 8099AFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x18] - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r9, r5 - mov r2, sp - ldr r0, _08099BAC - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - adds r0, r6, 0 - bl mon_icon_convert_unown_species_id - mov r10, r0 - mov r6, r10 - mov r2, sp - ldr r1, _08099BB0 - adds r1, r6, r1 - ldr r3, _08099BB4 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2, 0x2] - adds r0, r6, 0 - bl sub_80999E8 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - ldr r0, _08099BB8 - cmp r5, r0 - beq _08099BCE - ldr r7, [sp, 0x18] - lsls r1, r7, 16 - asrs r1, 16 - mov r0, r8 - lsls r2, r0, 16 - asrs r2, 16 - mov r0, sp - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08099BC8 - ldr r1, _08099BBC - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldr r2, _08099BC0 - ands r2, r5 - ldrh r3, [r0, 0x4] - ldr r1, _08099BC4 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - movs r1, 0x3 - ands r4, r1 - lsls r3, r4, 2 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, 0x5] - mov r1, r10 - strh r1, [r0, 0x2E] - b _08099BD0 - .align 2, 0 -_08099BAC: .4byte gSpriteTemplate_83B6F14 -_08099BB0: .4byte gMonIconPaletteIndices -_08099BB4: .4byte 0x0000dac0 -_08099BB8: .4byte 0x0000ffff -_08099BBC: .4byte gSprites -_08099BC0: .4byte 0x000003ff -_08099BC4: .4byte 0xfffffc00 -_08099BC8: - adds r0, r6, 0 - bl sub_8099AAC -_08099BCE: - movs r0, 0 -_08099BD0: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8099AFC - - thumb_func_start sub_8099BE0 -sub_8099BE0: @ 8099BE0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - bl sub_8099AAC - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8099BE0 - - thumb_func_start sub_8099BF8 -sub_8099BF8: @ 8099BF8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08099C50 - ldr r0, [r0] - ldr r1, _08099C54 - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r2, _08099C58 - adds r0, r2 - strh r1, [r0] - str r1, [sp] - ldr r1, _08099C5C - mov r0, sp - str r0, [r1] - ldr r0, _08099C60 - str r0, [r1, 0x4] - ldr r0, _08099C64 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0 - bl sub_8099EB0 - adds r0, r4, 0 - bl sub_809A23C - bl sub_809A6DC - adds r0, r4, 0 - bl sub_8098C48 - ldr r1, _08099C68 - ldr r2, _08099C6C - adds r0, r2, 0 - strh r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099C50: .4byte gUnknown_083B6DB4 -_08099C54: .4byte 0x000008ba -_08099C58: .4byte 0x000008b4 -_08099C5C: .4byte 0x040000d4 -_08099C60: .4byte 0x0600d000 -_08099C64: .4byte 0x85000400 -_08099C68: .4byte REG_BG2CNT -_08099C6C: .4byte 0x00005a0a - thumb_func_end sub_8099BF8 - - thumb_func_start sub_8099C70 -sub_8099C70: @ 8099C70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - bl sub_8099D90 - lsls r0, 24 - asrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099EB0 - ldr r0, _08099D10 - ldr r2, [r0] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - ldr r3, _08099D14 - adds r1, r2, r3 - strh r0, [r1] - ldr r0, _08099D18 - adds r1, r2, r0 - movs r0, 0x20 - strh r0, [r1] - ldr r1, _08099D1C - adds r0, r2, r1 - strb r5, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CAE - movs r1, 0x5 -_08099CAE: - ldr r3, _08099D20 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D24 - adds r0, r2, r1 - strh r4, [r0] - movs r1, 0x38 - cmp r4, 0 - ble _08099CC6 - movs r3, 0x84 - lsls r3, 1 - adds r1, r3, 0 -_08099CC6: - movs r3, 0x8C - lsls r3, 4 - adds r0, r2, r3 - strh r1, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CD6 - movs r1, 0x5 -_08099CD6: - ldr r3, _08099D28 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D2C - adds r0, r2, r1 - strh r4, [r0] - adds r3, 0x4 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - ldr r0, _08099D30 - adds r1, r2, r0 - movs r0, 0x2 - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809900C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809A3D0 - adds r0, r4, 0 - bl sub_809A774 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099D10: .4byte gUnknown_083B6DB4 -_08099D14: .4byte 0x000008b6 -_08099D18: .4byte 0x000008b8 -_08099D1C: .4byte 0x000008bb -_08099D20: .4byte 0x000008bc -_08099D24: .4byte 0x000008be -_08099D28: .4byte 0x000008c2 -_08099D2C: .4byte 0x000008c4 -_08099D30: .4byte 0x000008c8 - thumb_func_end sub_8099C70 - - thumb_func_start sub_8099D34 -sub_8099D34: @ 8099D34 - push {r4,lr} - bl sub_80990AC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08099D78 - ldr r1, [r0] - ldr r0, _08099D7C - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _08099D88 - ldr r4, _08099D80 - adds r2, r1, r4 - adds r4, 0x2 - adds r0, r1, r4 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r1 - ldr r1, _08099D84 - ands r0, r1 - strh r0, [r2] - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - lsls r0, 16 - cmp r0, 0 - bne _08099D74 - bl sub_809A598 - bl sub_809A810 -_08099D74: - movs r0, 0x1 - b _08099D8A - .align 2, 0 -_08099D78: .4byte gUnknown_083B6DB4 -_08099D7C: .4byte 0x000008b8 -_08099D80: .4byte 0x000008b4 -_08099D84: .4byte 0x000001ff -_08099D88: - adds r0, r2, 0 -_08099D8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D34 - - thumb_func_start sub_8099D90 -sub_8099D90: @ 8099D90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - cmp r1, r4 - beq _08099DBA -_08099DA4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bls _08099DB0 - movs r1, 0 -_08099DB0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r1, r4 - bne _08099DA4 -_08099DBA: - movs r0, 0x1 - negs r0, r0 - cmp r2, 0x6 - bhi _08099DC4 - movs r0, 0x1 -_08099DC4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D90 - - thumb_func_start sub_8099DCC -sub_8099DCC: @ 8099DCC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08099DF8 - ldr r2, _08099DFC - adds r1, r2 - adds r0, r1 - movs r1, 0 - strb r4, [r0] - ldr r0, _08099E00 - ldr r0, [r0] - ldr r2, _08099E04 - adds r0, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099DF8: .4byte gPokemonStorage -_08099DFC: .4byte 0x000083c2 -_08099E00: .4byte gUnknown_083B6DB4 -_08099E04: .4byte 0x00001032 - thumb_func_end sub_8099DCC - - thumb_func_start sub_8099E08 -sub_8099E08: @ 8099E08 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _08099E24 - ldr r5, [r0] - ldr r0, _08099E28 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08099E54 - cmp r0, 0x1 - bgt _08099E2C - cmp r0, 0 - beq _08099E36 - b _08099EA6 - .align 2, 0 -_08099E24: .4byte gUnknown_083B6DB4 -_08099E28: .4byte 0x00001032 -_08099E2C: - cmp r0, 0x2 - beq _08099E90 - cmp r0, 0x3 - beq _08099EA2 - b _08099EA6 -_08099E36: - ldr r1, _08099E4C - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E50 - str r1, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E4C: .4byte 0x00000d08 -_08099E50: .4byte 0x0000ffff -_08099E54: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8099EB0 - bl sub_809A654 - ldr r1, _08099E88 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E8C - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E88: .4byte 0x00000d08 -_08099E8C: .4byte 0x0000ffff -_08099E90: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 -_08099E9A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08099EA6 -_08099EA2: - movs r0, 0 - b _08099EA8 -_08099EA6: - movs r0, 0x1 -_08099EA8: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8099E08 - - thumb_func_start sub_8099EB0 -sub_8099EB0: @ 8099EB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r1, 0 - beq _08099ED8 - ldr r0, _08099F38 - ldr r0, [r0] - movs r2, 0 - ldr r3, _08099F3C - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _08099ED0 - movs r2, 0x1 -_08099ED0: - strb r2, [r1] - ldr r0, _08099F40 - bl sub_809A14C -_08099ED8: - ldr r0, _08099F44 - ldr r1, _08099F48 - adds r0, r1 - adds r0, r4, r0 - ldrb r4, [r0] - lsls r4, 4 - ldr r0, _08099F4C - adds r4, r0 - ldr r0, [r4, 0xC] - ldr r1, _08099F38 - ldr r5, [r1] - ldr r2, _08099F3C - adds r6, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 20 - movs r3, 0x80 - lsls r3, 15 - adds r1, r3 - lsrs r1, 16 - movs r2, 0x60 - bl LoadPalette - ldr r0, [r4, 0x8] - ldr r1, _08099F50 - adds r5, r1 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08099F40 - lsls r2, r7, 24 - asrs r2, 24 - ldrb r3, [r6] - adds r1, r5, 0 - bl sub_8099F58 - ldr r0, [r4] - ldrb r1, [r6] - lsls r1, 13 - ldr r2, _08099F54 - adds r1, r2 - bl LZ77UnCompVram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099F38: .4byte gUnknown_083B6DB4 -_08099F3C: .4byte 0x000008ba -_08099F40: .4byte 0x0600d000 -_08099F44: .4byte gPokemonStorage -_08099F48: .4byte 0x000083c2 -_08099F4C: .4byte gWallpaperTable -_08099F50: .4byte 0x00000d62 -_08099F54: .4byte 0x06008000 - thumb_func_end sub_8099EB0 - - thumb_func_start sub_8099F58 -sub_8099F58: @ 8099F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r9, r0 - adds r5, r1, 0 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, r3, 8 - str r0, [sp] - lsls r0, r3, 1 - adds r0, r3 - adds r0, 0x4 - lsls r0, 28 - lsrs r0, 16 - str r0, [sp, 0x4] - ldr r0, _08099FB8 - ldr r0, [r0] - ldr r1, _08099FBC - adds r0, r1 - ldrh r1, [r0] - lsrs r1, 3 - adds r1, 0xA - lsrs r0, r2, 24 - mov r8, r0 - asrs r2, 24 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - movs r0, 0x3F - ands r1, r0 - str r1, [sp, 0x8] - adds r2, r1, 0 - cmp r2, 0xC - bgt _08099FC0 - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - adds r0, 0x80 - mov r1, r9 - adds r4, r1, r0 - movs r7, 0 - b _0809A020 - .align 2, 0 -_08099FB8: .4byte gUnknown_083B6DB4 -_08099FBC: .4byte 0x000008b4 -_08099FC0: - cmp r2, 0x1F - bgt _08099FE6 - movs r0, 0x20 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - adds r0, 0x80 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0x88 - lsls r7, 4 - add r7, r9 - b _0809A020 -_08099FE6: - cmp r2, 0x2C - bgt _08099FFE - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0 - b _0809A020 -_08099FFE: - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - mov r7, r9 - adds r7, 0x80 -_0809A020: - movs r1, 0 - mov r0, r8 - lsls r0, 24 - str r0, [sp, 0x14] - lsls r0, r6, 16 - asrs r0, 16 - mov r8, r0 - lsls r3, 16 - str r3, [sp, 0xC] - asrs r2, r3, 16 - str r2, [sp, 0x10] -_0809A036: - movs r3, 0 - adds r0, r4, 0 - adds r0, 0x40 - str r0, [sp, 0x18] - adds r2, r7, 0 - adds r2, 0x40 - str r2, [sp, 0x1C] - adds r1, 0x1 - mov r10, r1 - cmp r3, r8 - bge _0809A07A - ldr r0, _0809A0D4 - mov r12, r0 - movs r6, 0xF0 - lsls r6, 8 -_0809A054: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r4 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - blt _0809A054 -_0809A07A: - movs r3, 0 - ldr r0, [sp, 0x10] - cmp r3, r0 - bge _0809A0B4 - ldr r1, _0809A0D4 - mov r12, r1 - movs r6, 0xF0 - lsls r6, 8 - ldr r2, [sp, 0xC] - asrs r4, r2, 16 -_0809A08E: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r7 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _0809A08E -_0809A0B4: - ldr r4, [sp, 0x18] - ldr r7, [sp, 0x1C] - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A036 - ldr r0, [sp, 0x14] - asrs r2, r0, 24 - cmp r2, 0 - beq _0809A13A - cmp r2, 0 - ble _0809A0D8 - ldr r1, [sp, 0x8] - adds r1, 0x14 - b _0809A0DC - .align 2, 0 -_0809A0D4: .4byte 0x00000fff -_0809A0D8: - ldr r1, [sp, 0x8] - subs r1, 0x4 -_0809A0DC: - movs r0, 0x3F - ands r1, r0 - adds r4, r1, 0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A0EE - lsls r0, 1 - adds r0, 0x80 - b _0809A0F6 -_0809A0EE: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A0F6: - mov r1, r9 - adds r2, r1, r0 - movs r3, 0 - movs r6, 0 -_0809A0FE: - movs r1, 0 - adds r5, r3, 0x1 - lsls r3, r4, 16 -_0809A104: - strh r6, [r2] - adds r2, 0x40 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A104 - asrs r0, r3, 16 - adds r4, r0, 0x1 - movs r0, 0x3F - ands r4, r0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A126 - lsls r0, 1 - adds r0, 0x80 - b _0809A12E -_0809A126: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A12E: - mov r1, r9 - adds r2, r1, r0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _0809A0FE -_0809A13A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099F58 - - thumb_func_start sub_809A14C -sub_809A14C: @ 809A14C - push {r4-r6,lr} - adds r2, r0, 0 - ldr r0, _0809A174 - ldr r0, [r0] - ldr r1, _0809A178 - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 3 - adds r3, r0, 0 - adds r3, 0x1E - movs r0, 0x3F - ands r3, r0 - adds r0, r3, 0 - cmp r0, 0x1F - bgt _0809A17C - lsls r0, 1 - movs r6, 0x98 - lsls r6, 3 - adds r0, r6 - b _0809A184 - .align 2, 0 -_0809A174: .4byte gUnknown_083B6DB4 -_0809A178: .4byte 0x000008b4 -_0809A17C: - lsls r0, 1 - movs r1, 0xC8 - lsls r1, 4 - adds r0, r1 -_0809A184: - adds r2, r0 - movs r0, 0 - movs r5, 0 - movs r4, 0x3F -_0809A18C: - strh r5, [r2] - adds r2, 0x2 - adds r3, 0x1 - ands r3, r4 - adds r1, r3, 0 - cmp r1, 0 - bne _0809A19E - ldr r6, _0809A1B8 - adds r2, r6 -_0809A19E: - cmp r1, 0x20 - bne _0809A1A8 - movs r1, 0xF8 - lsls r1, 3 - adds r2, r1 -_0809A1A8: - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2B - bls _0809A18C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A1B8: .4byte 0xfffff7c0 - thumb_func_end sub_809A14C - - thumb_func_start sub_809A1BC -sub_809A1BC: @ 809A1BC - push {r4-r6,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _0809A228 - ldr r5, [r0] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r4, _0809A22C - str r1, [r4] - str r5, [r4, 0x4] - movs r6, 0x80 - lsls r6, 1 - ldr r0, _0809A230 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809A234 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_8004E3C - str r5, [r4] - ldr r3, [sp, 0x4] - str r3, [r4, 0x4] - ldr r1, _0809A238 - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, r6 - str r0, [r4] - adds r0, r3, 0 - adds r0, 0x80 - str r0, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, 0 - adds r0, 0x80 - str r0, [r4] - adds r6, r3, r6 - str r6, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - adds r5, r0 - str r5, [r4] - adds r3, r0 - str r3, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A228: .4byte gUnknown_083B6DB8 -_0809A22C: .4byte 0x040000d4 -_0809A230: .4byte 0x81000100 -_0809A234: .4byte gWindowConfig_81E6D38 -_0809A238: .4byte 0x80000040 - thumb_func_end sub_809A1BC - - thumb_func_start sub_809A23C -sub_809A23C: @ 809A23C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0809A384 - ldr r5, [r0] - ldr r1, _0809A388 - adds r7, r5, r1 - str r7, [sp, 0x18] - mov r2, sp - adds r2, 0x18 - str r2, [sp, 0x20] - ldr r0, _0809A38C - str r0, [r2, 0x4] - mov r1, sp - ldr r3, _0809A390 - adds r0, r5, r3 - str r0, [sp] - ldr r4, _0809A394 - strh r4, [r1, 0x4] - str r0, [sp, 0x8] - ldr r6, _0809A398 - strh r6, [r1, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, _0809A39C - mov r9, r0 - ldr r0, _0809A3A0 - add r0, r9 - add r0, r8 - ldrb r1, [r0] - ldr r2, _0809A3A4 - lsls r1, 2 - adds r0, r1, r2 - ldrh r3, [r0] - ldr r6, _0809A3A8 - adds r0, r5, r6 - strh r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrh r1, [r1] - ldr r2, _0809A3AC - adds r0, r5, r2 - strh r1, [r0] - mov r0, sp - bl LoadSpritePalettes - ldr r3, _0809A3B0 - adds r6, r5, r3 - movs r0, 0xFC - lsls r0, 2 - str r0, [r6] - adds r0, r4, 0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - movs r2, 0x87 - lsls r2, 1 - mov r10, r2 - add r1, r10 - ldr r3, _0809A3B4 - adds r2, r5, r3 - strh r1, [r2] - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - ldr r0, [r6] - orrs r0, r1 - str r0, [r6] - ldr r0, _0809A3B8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - add r1, r10 - ldr r2, _0809A3BC - adds r5, r2 - strh r1, [r5] - lsls r4, r0 - ldr r0, [r6] - orrs r0, r4 - str r0, [r6] - mov r3, r8 - lsls r4, r3, 3 - add r4, r8 - ldr r6, _0809A3C0 - add r9, r6 - add r4, r9 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_809A1BC - ldr r0, [sp, 0x20] - bl LoadSpriteSheet - adds r0, r4, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - movs r4, 0 - lsls r0, 16 - asrs r6, r0, 16 -_0809A328: - lsls r1, r4, 5 - adds r1, r6, r1 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0809A3C4 - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0809A384 - ldr r5, [r0] - lsls r0, r4, 2 - movs r3, 0xCF - lsls r3, 4 - adds r2, r5, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A3C8 - adds r0, r1 - str r0, [r2] - lsls r1, r4, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0809A328 - ldr r6, _0809A3CC - adds r1, r5, r6 - movs r0, 0 - strb r0, [r1] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A384: .4byte gUnknown_083B6DB4 -_0809A388: .4byte 0x000008ca -_0809A38C: .4byte 0x00030200 -_0809A390: .4byte 0x00000ccc -_0809A394: .4byte 0x0000dac8 -_0809A398: .4byte 0xffffdac9 -_0809A39C: .4byte gPokemonStorage -_0809A3A0: .4byte 0x000083c2 -_0809A3A4: .4byte gUnknown_083BB0A8 -_0809A3A8: .4byte 0x00000ce8 -_0809A3AC: .4byte 0x00000cea -_0809A3B0: .4byte 0x00000d08 -_0809A3B4: .4byte 0x00000cec -_0809A3B8: .4byte 0x0000dac9 -_0809A3BC: .4byte 0x00000cee -_0809A3C0: .4byte 0x00008344 -_0809A3C4: .4byte gSpriteTemplate_83BB2B8 -_0809A3C8: .4byte gSprites -_0809A3CC: .4byte 0x00000cca - thumb_func_end sub_809A23C - - thumb_func_start sub_809A3D0 -sub_809A3D0: @ 809A3D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r3, _0809A43C - ldr r5, [r3] - ldr r1, _0809A440 - adds r0, r5, r1 - str r0, [sp, 0x18] - add r2, sp, 0x18 - ldr r4, _0809A444 - mov r9, r4 - movs r6, 0xC0 - lsls r6, 10 - mov r8, r6 - ldr r0, _0809A448 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _0809A44C - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - movs r1, 0 - ldr r7, _0809A450 - adds r4, r5, r7 - ldrb r0, [r4] - adds r6, r2, 0 - cmp r0, 0 - bne _0809A41E - movs r1, 0x1 -_0809A41E: - strb r1, [r4] - cmp r1, 0 - bne _0809A458 - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - mov r4, r8 - orrs r0, r4 - str r0, [r6, 0x4] - ldr r7, _0809A454 - adds r0, r5, r7 - ldrh r0, [r0] - mov r8, r0 - b _0809A478 - .align 2, 0 -_0809A43C: .4byte gUnknown_083B6DB4 -_0809A440: .4byte 0x000008ca -_0809A444: .4byte 0x0000ffff -_0809A448: .4byte 0x00030200 -_0809A44C: .4byte gSpriteTemplate_83BB2B8 -_0809A450: .4byte 0x00000cca -_0809A454: .4byte 0x00000cec -_0809A458: - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - orrs r0, r1 - str r0, [r6, 0x4] - ldr r4, _0809A570 - adds r0, r5, r4 - ldrh r0, [r0] - mov r8, r0 - mov r1, sp - movs r0, 0x4 - strh r0, [r1] - ldr r0, _0809A574 - strh r0, [r1, 0x2] -_0809A478: - ldr r0, [r3] - ldr r7, _0809A578 - adds r0, r7 - ldr r1, [sp, 0x28] - lsls r5, r1, 3 - adds r5, r1 - ldr r4, _0809A57C - adds r5, r4 - adds r1, r5, 0 - bl sub_809A1BC - adds r0, r6, 0 - bl LoadSpriteSheet - adds r4, 0x7E - ldr r3, [sp, 0x28] - adds r4, r3, r4 - ldrb r0, [r4] - lsls r0, 2 - ldr r1, _0809A580 - adds r0, r1 - mov r1, r8 - movs r2, 0x4 - bl LoadPalette - adds r0, r5, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - lsls r0, 16 - mov r4, r10 - lsls r2, r4, 24 - asrs r2, 24 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 6 - lsrs r6, r0, 16 - str r6, [sp, 0x20] - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x24] - movs r7, 0 - negs r2, r2 - mov r9, r2 - movs r0, 0x1 - mov r10, r0 -_0809A4DE: - lsls r1, r7, 5 - mov r8, r1 - ldr r3, [sp, 0x24] - lsls r1, r3, 16 - asrs r1, 16 - add r1, r8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A584 - ldr r4, [r1] - lsls r6, r7, 2 - ldr r1, _0809A588 - adds r2, r4, r1 - adds r2, r6 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0809A58C - adds r1, r0 - str r1, [r2] - mov r3, r9 - lsls r5, r3, 1 - add r5, r9 - lsls r5, 1 - strh r5, [r1, 0x2E] - ldr r1, [r2] - ldr r3, [sp, 0x20] - lsls r0, r3, 16 - asrs r0, 16 - add r0, r8 - strh r0, [r1, 0x30] - ldr r0, [r2] - mov r1, r10 - strh r1, [r0, 0x32] - ldr r0, [r2] - ldr r1, _0809A590 - str r1, [r0, 0x1C] - lsls r1, r7, 24 - lsrs r1, 24 - bl StartSpriteAnim - movs r3, 0xCF - lsls r3, 4 - adds r4, r3 - adds r4, r6 - ldr r0, [r4] - strh r5, [r0, 0x2E] - ldr r0, [r4] - mov r6, r10 - strh r6, [r0, 0x30] - ldr r1, [r4] - ldr r0, _0809A594 - str r0, [r1, 0x1C] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _0809A4DE - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A570: .4byte 0x00000cec -_0809A574: .4byte 0x0000dac9 -_0809A578: .4byte 0x000008ca -_0809A57C: .4byte gUnknown_020383E4 -_0809A580: .4byte gUnknown_083BB0A8 -_0809A584: .4byte gUnknown_083B6DB4 -_0809A588: .4byte 0x00000cf8 -_0809A58C: .4byte gSprites -_0809A590: .4byte sub_809A5E8 -_0809A594: .4byte sub_809A61C - thumb_func_end sub_809A3D0 - - thumb_func_start sub_809A598 -sub_809A598: @ 809A598 - push {lr} - ldr r0, _0809A5B0 - ldr r0, [r0] - ldr r1, _0809A5B4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A5B8 - movs r0, 0x4 - bl FreeSpriteTilesByTag - b _0809A5BE - .align 2, 0 -_0809A5B0: .4byte gUnknown_083B6DB4 -_0809A5B4: .4byte 0x00000cca -_0809A5B8: - movs r0, 0x3 - bl FreeSpriteTilesByTag -_0809A5BE: - ldr r0, _0809A5E0 - ldr r0, [r0] - movs r3, 0xCF - lsls r3, 4 - adds r2, r0, r3 - adds r3, 0x8 - adds r1, r0, r3 - ldr r1, [r1] - str r1, [r2] - ldr r2, _0809A5E4 - adds r1, r0, r2 - adds r3, 0x4 - adds r0, r3 - ldr r0, [r0] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809A5E0: .4byte gUnknown_083B6DB4 -_0809A5E4: .4byte 0x00000cf4 - thumb_func_end sub_809A598 - - thumb_func_start sub_809A5E8 -sub_809A5E8: @ 809A5E8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A5FC - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - b _0809A614 -_0809A5FC: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _0809A614 - ldr r0, _0809A618 - str r0, [r2, 0x1C] -_0809A614: - pop {r0} - bx r0 - .align 2, 0 -_0809A618: .4byte SpriteCallbackDummy - thumb_func_end sub_809A5E8 - - thumb_func_start sub_809A61C -sub_809A61C: @ 809A61C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A630 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - b _0809A64E -_0809A630: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x32] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC0 - bls _0809A64E - adds r0, r2, 0 - bl DestroySprite -_0809A64E: - pop {r0} - bx r0 - thumb_func_end sub_809A61C - - thumb_func_start sub_809A654 -sub_809A654: @ 809A654 - push {lr} - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A690 - ldr r2, _0809A694 - adds r1, r2 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _0809A698 - ldr r2, [r0] - ldr r3, _0809A69C - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A6A8 - lsls r0, r1, 2 - ldr r1, _0809A6A0 - adds r0, r1 - adds r3, 0x22 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6A4 - adds r1, r2 - movs r2, 0x2 - bl CpuSet - b _0809A6C0 - .align 2, 0 -_0809A690: .4byte gPokemonStorage -_0809A694: .4byte 0x000083c2 -_0809A698: .4byte gUnknown_083B6DB4 -_0809A69C: .4byte 0x00000cca -_0809A6A0: .4byte gUnknown_083BB0A8 -_0809A6A4: .4byte gPlttBufferUnfaded -_0809A6A8: - lsls r0, r1, 2 - ldr r1, _0809A6C4 - adds r0, r1 - ldr r3, _0809A6C8 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6CC - adds r1, r2 - movs r2, 0x2 - bl CpuSet -_0809A6C0: - pop {r0} - bx r0 - .align 2, 0 -_0809A6C4: .4byte gUnknown_083BB0A8 -_0809A6C8: .4byte 0x00000cee -_0809A6CC: .4byte gPlttBufferUnfaded - thumb_func_end sub_809A654 - - thumb_func_start sub_809A6D0 -sub_809A6D0: @ 809A6D0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - movs r0, 0xB0 - subs r0, r1 - bx lr - thumb_func_end sub_809A6D0 - - thumb_func_start sub_809A6DC -sub_809A6DC: @ 809A6DC - push {r4,r5,lr} - ldr r0, _0809A760 - bl LoadSpriteSheet - ldr r0, _0809A764 - bl LoadSpritePalette - movs r5, 0 -_0809A6EC: - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 19 - movs r0, 0xB8 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _0809A768 - movs r2, 0x1C - movs r3, 0x15 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0809A73E - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A76C - adds r4, r0, r1 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0x1 - cmp r5, 0 - bne _0809A72C - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_0809A72C: - strh r0, [r4, 0x34] - ldr r0, _0809A770 - ldr r0, [r0] - lsls r1, r5, 2 - movs r2, 0xD0 - lsls r2, 4 - adds r0, r2 - adds r0, r1 - str r4, [r0] -_0809A73E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0809A6EC - bl sub_809BF2C - lsls r0, 24 - cmp r0, 0 - beq _0809A758 - movs r0, 0x1 - bl sub_809A860 -_0809A758: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A760: .4byte gUnknown_083BB288 -_0809A764: .4byte gUnknown_083BB290 -_0809A768: .4byte gSpriteTemplate_83BB2F0 -_0809A76C: .4byte gSprites -_0809A770: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A6DC - - thumb_func_start sub_809A774 -sub_809A774: @ 809A774 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0 - ldr r7, _0809A7C4 - ldr r0, [r7] - movs r1, 0xD0 - lsls r1, 4 - adds r3, r0, r1 - movs r5, 0 - movs r4, 0x2 -_0809A78A: - lsls r1, r2, 2 - adds r1, r3, r1 - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r0, [r1] - strh r4, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A78A - lsls r0, r6, 24 - cmp r0, 0 - bge _0809A7CC - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, _0809A7C8 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0x48 - b _0809A7E8 - .align 2, 0 -_0809A7C4: .4byte gUnknown_083B6DB4 -_0809A7C8: .4byte 0x00000d04 -_0809A7CC: - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, _0809A80C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0xF8 -_0809A7E8: - strh r2, [r0, 0x32] - ldr r0, [r1] - strh r2, [r0, 0x32] - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r0, r1, r2 - ldr r2, [r0] - movs r0, 0 - strh r0, [r2, 0x3C] - ldr r0, _0809A80C - adds r1, r0 - ldr r1, [r1] - movs r0, 0x1 - strh r0, [r1, 0x3C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A80C: .4byte 0x00000d04 - thumb_func_end sub_809A774 - - thumb_func_start sub_809A810 -sub_809A810: @ 809A810 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _0809A85C - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r5, 0 - movs r6, 0x5 - negs r6, r6 -_0809A824: - lsls r1, r3, 2 - adds r1, r4, r1 - ldr r2, [r1] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 3 - adds r0, 0x5C - strh r0, [r2, 0x20] - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _0809A824 - movs r0, 0x1 - bl sub_809A860 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A85C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A810 - - thumb_func_start sub_809A860 -sub_809A860: @ 809A860 - push {r4,r5,lr} - lsls r0, 24 - cmp r0, 0 - beq _0809A89C - movs r2, 0 - ldr r0, _0809A898 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r3, 0 - movs r5, 0x1 -_0809A878: - lsls r1, r2, 2 - adds r1, r4, r1 - ldr r0, [r1] - strh r5, [r0, 0x2E] - ldr r0, [r1] - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x32] - ldr r0, [r1] - strh r3, [r0, 0x36] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A878 - b _0809A8BC - .align 2, 0 -_0809A898: .4byte gUnknown_083B6DB4 -_0809A89C: - movs r2, 0 - ldr r0, _0809A8C4 - ldr r0, [r0] - movs r3, 0xD0 - lsls r3, 4 - adds r1, r0, r3 - movs r3, 0 -_0809A8AA: - lsls r0, r2, 2 - adds r0, r1, r0 - ldr r0, [r0] - strh r3, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A8AA -_0809A8BC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A8C4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A860 - - thumb_func_start sub_809A8C8 -sub_809A8C8: @ 809A8C8 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _0809A994 - lsls r0, 2 - ldr r1, _0809A8E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809A8E0: .4byte _0809A8E4 - .align 2, 0 -_0809A8E4: - .4byte _0809A8F8 - .4byte _0809A8FE - .4byte _0809A92C - .4byte _0809A932 - .4byte _0809A984 -_0809A8F8: - movs r0, 0 - strh r0, [r2, 0x24] - b _0809A994 -_0809A8FE: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0809A994 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x24] - adds r0, r3 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _0809A994 - strh r1, [r2, 0x32] - strh r1, [r2, 0x24] - b _0809A994 -_0809A92C: - movs r0, 0x3 - strh r0, [r2, 0x2E] - b _0809A994 -_0809A932: - ldr r0, _0809A97C - ldr r1, [r0] - ldr r0, _0809A980 - adds r1, r0 - ldrh r0, [r2, 0x20] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r2, 0x20] - subs r0, 0x49 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAE - bls _0809A958 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_0809A958: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _0809A994 - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - movs r0, 0x4 - strh r0, [r2, 0x2E] - b _0809A994 - .align 2, 0 -_0809A97C: .4byte gUnknown_083B6DB4 -_0809A980: .4byte 0x000008b6 -_0809A984: - ldr r0, _0809A998 - ldr r0, [r0] - ldr r1, _0809A99C - adds r0, r1 - ldrh r1, [r2, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x20] -_0809A994: - pop {r0} - bx r0 - .align 2, 0 -_0809A998: .4byte gUnknown_083B6DB4 -_0809A99C: .4byte 0x000008b6 - thumb_func_end sub_809A8C8 - - thumb_func_start sub_809A9A0 -sub_809A9A0: @ 809A9A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0809AA0C - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0809AA18 - movs r1, 0x1 - ands r1, r7 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _0809AA10 - adds r6, r4, r5 - adds r0, r6, 0 - bl StartSpriteAnim - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r5, 0x1C - adds r4, r5 - ldr r0, _0809AA14 - str r0, [r4] - adds r0, r6, 0 - b _0809AA1A - .align 2, 0 -_0809AA0C: .4byte gSpriteTemplate_83BB2F0 -_0809AA10: .4byte gSprites -_0809AA14: .4byte SpriteCallbackDummy -_0809AA18: - movs r0, 0 -_0809AA1A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A9A0 - - thumb_func_start sub_809AA24 -sub_809AA24: @ 809AA24 - push {lr} - ldr r0, _0809AA38 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - cmp r1, 0x1 - beq _0809AA40 - ldr r1, _0809AA3C - movs r0, 0 - strb r0, [r1] - b _0809AA44 - .align 2, 0 -_0809AA38: .4byte gUnknown_083B6DB4 -_0809AA3C: .4byte gUnknown_020384E4 -_0809AA40: - ldr r0, _0809AA78 - strb r1, [r0] -_0809AA44: - ldr r0, _0809AA7C - movs r1, 0 - strb r1, [r0] - ldr r0, _0809AA80 - strb r1, [r0] - ldr r0, _0809AA84 - strb r1, [r0] - ldr r0, _0809AA88 - strb r1, [r0] - ldr r0, _0809AA8C - strb r1, [r0] - bl sub_809B0D4 - bl sub_809CC04 - ldr r0, _0809AA90 - ldr r0, [r0] - ldr r1, _0809AA94 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809AA78: .4byte gUnknown_020384E4 -_0809AA7C: .4byte gUnknown_020384E5 -_0809AA80: .4byte gUnknown_020384E6 -_0809AA84: .4byte gUnknown_020384E7 -_0809AA88: .4byte gUnknown_020384E8 -_0809AA8C: .4byte gUnknown_020384E9 -_0809AA90: .4byte gUnknown_083B6DB4 -_0809AA94: .4byte 0x000011e2 - thumb_func_end sub_809AA24 - - thumb_func_start sub_809AA98 -sub_809AA98: @ 809AA98 - push {lr} - bl sub_809CC04 - bl sub_809C028 - ldr r0, _0809AAC0 - ldr r0, [r0] - ldr r1, _0809AAC4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _0809AAC8 - ldrb r0, [r0] - cmp r0, 0 - beq _0809AABA - bl sub_8098BF0 -_0809AABA: - pop {r0} - bx r0 - .align 2, 0 -_0809AAC0: .4byte gUnknown_083B6DB4 -_0809AAC4: .4byte 0x000011e2 -_0809AAC8: .4byte gUnknown_020384E6 - thumb_func_end sub_809AA98 - - thumb_func_start sub_809AACC -sub_809AACC: @ 809AACC - push {r4-r6,lr} - adds r4, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r0, 0x4 - bhi _0809AB84 - lsls r0, 2 - ldr r1, _0809AAE8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809AAE8: .4byte _0809AAEC - .align 2, 0 -_0809AAEC: - .4byte _0809AB00 - .4byte _0809AB2E - .4byte _0809AB56 - .4byte _0809AB5E - .4byte _0809AB7C -_0809AB00: - adds r0, r5, 0 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x64 - strh r1, [r4] - adds r0, r5, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x20 - strh r1, [r6] - b _0809AB84 -_0809AB2E: - cmp r5, 0 - bne _0809AB3A - movs r0, 0x68 - strh r0, [r4] - movs r0, 0x34 - b _0809AB82 -_0809AB3A: - cmp r5, 0x6 - bne _0809AB46 - movs r0, 0x98 - strh r0, [r4] - movs r0, 0x84 - b _0809AB82 -_0809AB46: - movs r0, 0x98 - strh r0, [r4] - subs r1, r5, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - b _0809AB82 -_0809AB56: - movs r0, 0xA2 - strh r0, [r4] - movs r0, 0xC - b _0809AB82 -_0809AB5E: - ldr r0, _0809AB78 - ldrb r0, [r0] - movs r1, 0xE - cmp r0, 0 - beq _0809AB6A - movs r1, 0x8 -_0809AB6A: - strh r1, [r6] - movs r0, 0x58 - muls r0, r5 - adds r0, 0x78 - strh r0, [r4] - b _0809AB84 - .align 2, 0 -_0809AB78: .4byte gUnknown_020384E6 -_0809AB7C: - movs r0, 0xA0 - strh r0, [r4] - movs r0, 0x60 -_0809AB82: - strh r0, [r6] -_0809AB84: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_809AACC - - thumb_func_start sub_809AB8C -sub_809AB8C: @ 809AB8C - push {lr} - ldr r0, _0809ABB4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809ABC0 - cmp r0, 0x1 - bne _0809ABF8 - ldr r0, _0809ABB8 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809ABBC - adds r0, r1 - movs r1, 0xB - bl GetMonData - b _0809ABEA - .align 2, 0 -_0809ABB4: .4byte gUnknown_020384E4 -_0809ABB8: .4byte gUnknown_020384E5 -_0809ABBC: .4byte gPlayerParty -_0809ABC0: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809ABF0 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809ABF4 - adds r1, r2 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData -_0809ABEA: - lsls r0, 16 - lsrs r0, 16 - b _0809ABFA - .align 2, 0 -_0809ABF0: .4byte gUnknown_020384E5 -_0809ABF4: .4byte gUnknown_020300A4 -_0809ABF8: - movs r0, 0 -_0809ABFA: - pop {r1} - bx r1 - thumb_func_end sub_809AB8C - - thumb_func_start sub_809AC00 -sub_809AC00: @ 809AC00 - push {r4-r6,lr} - ldr r0, _0809AC14 - ldr r4, [r0] - ldr r0, _0809AC18 - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0809AC1C - movs r0, 0 - b _0809AD2C - .align 2, 0 -_0809AC14: .4byte gUnknown_083B6DB4 -_0809AC18: .4byte 0x000011dc -_0809AC1C: - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809AD0C - ldr r1, _0809ACF4 - adds r3, r4, r1 - ldr r2, _0809ACF8 - adds r1, r4, r2 - ldr r0, [r3] - ldr r1, [r1] - adds r0, r1 - str r0, [r3] - ldr r6, _0809ACFC - adds r2, r4, r6 - ldr r0, _0809AD00 - adds r1, r4, r0 - ldr r0, [r2] - ldr r1, [r1] - adds r0, r1 - str r0, [r2] - movs r1, 0x8E - lsls r1, 5 - adds r5, r4, r1 - ldr r1, [r5] - ldr r0, [r3] - asrs r0, 8 - strh r0, [r1, 0x20] - ldr r1, [r5] - ldr r0, [r2] - asrs r0, 8 - strh r0, [r1, 0x22] - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - movs r3, 0x80 - lsls r3, 1 - cmp r0, r3 - ble _0809AC78 - ldr r6, _0809AD04 - adds r0, r2, r6 - lsls r0, 16 - asrs r0, 16 - adds r0, 0x40 - strh r0, [r1, 0x20] -_0809AC78: - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r6, 0x20 - ldrsh r0, [r1, r6] - cmp r0, 0x3F - bgt _0809AC90 - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - subs r0, r3, r0 - strh r0, [r1, 0x20] -_0809AC90: - ldr r1, [r5] - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0xB0 - ble _0809ACA8 - adds r0, r2, 0 - subs r0, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r0, 0x10 - strh r0, [r1, 0x22] -_0809ACA8: - ldr r2, [r5] - ldrh r3, [r2, 0x22] - movs r6, 0x22 - ldrsh r0, [r2, r6] - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _0809ACC4 - subs r0, r1, r3 - movs r1, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r2, 0x22] -_0809ACC4: - ldr r0, _0809AD08 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809AD2A - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0809AD2A - ldr r2, [r5] - adds r2, 0x3F - ldrb r3, [r2] - lsrs r1, r3, 1 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 1 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _0809AD2A - .align 2, 0 -_0809ACF4: .4byte 0x000011c8 -_0809ACF8: .4byte 0x000011d0 -_0809ACFC: .4byte 0x000011cc -_0809AD00: .4byte 0x000011d4 -_0809AD04: .4byte 0xffffff00 -_0809AD08: .4byte 0x000011e3 -_0809AD0C: - movs r1, 0x8E - lsls r1, 5 - adds r2, r4, r1 - ldr r1, [r2] - ldr r3, _0809AD34 - adds r0, r4, r3 - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, [r2] - ldr r6, _0809AD38 - adds r0, r4, r6 - ldrh r0, [r0] - strh r0, [r1, 0x22] - bl sub_809AFB8 -_0809AD2A: - movs r0, 0x1 -_0809AD2C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809AD34: .4byte 0x000011d8 -_0809AD38: .4byte 0x000011da - thumb_func_end sub_809AC00 - - thumb_func_start sub_809AD3C -sub_809AD3C: @ 809AD3C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - adds r6, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - adds r3, r6, 0 - bl sub_809AACC - ldr r0, _0809AD88 - ldr r1, [r0] - movs r2, 0x8F - lsls r2, 5 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0809AD8C - adds r0, r1, r3 - strb r5, [r0] - mov r0, sp - ldrh r2, [r0] - subs r3, 0x9 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r6] - ldr r2, _0809AD90 - adds r1, r2 - strh r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809AD88: .4byte gUnknown_083B6DB4 -_0809AD8C: .4byte 0x000011e1 -_0809AD90: .4byte 0x000011da - thumb_func_end sub_809AD3C - - thumb_func_start sub_809AD94 -sub_809AD94: @ 809AD94 - push {r4-r7,lr} - ldr r0, _0809ADB0 - ldr r2, [r0] - ldr r3, _0809ADB4 - adds r1, r2, r3 - ldrh r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - beq _0809ADBC - ldr r0, _0809ADB8 - adds r1, r2, r0 - movs r0, 0xC - b _0809ADC2 - .align 2, 0 -_0809ADB0: .4byte gUnknown_083B6DB4 -_0809ADB4: .4byte 0x000011de -_0809ADB8: .4byte 0x000011dc -_0809ADBC: - ldr r3, _0809AE04 - adds r1, r2, r3 - movs r0, 0x6 -_0809ADC2: - strh r0, [r1] - ldr r2, [r4] - ldr r0, _0809AE08 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809ADDA - ldr r3, _0809AE04 - adds r0, r2, r3 - ldrh r0, [r0] - lsrs r0, 1 - strb r0, [r1] -_0809ADDA: - ldr r1, _0809AE0C - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE14 - cmp r1, 0x1 - beq _0809AE30 - ldr r3, _0809AE10 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - b _0809AE46 - .align 2, 0 -_0809AE04: .4byte 0x000011dc -_0809AE08: .4byte 0x000011e3 -_0809AE0C: .4byte 0x000011de -_0809AE10: .4byte 0x000011da -_0809AE14: - ldr r3, _0809AE2C - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AE46 - .align 2, 0 -_0809AE2C: .4byte 0x000011da -_0809AE30: - ldr r3, _0809AE74 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AE46: - subs r7, r1, r0 - ldr r2, [r4] - ldr r3, _0809AE78 - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE80 - cmp r1, 0x1 - beq _0809AE9C - ldr r1, _0809AE7C - adds r0, r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - b _0809AEB2 - .align 2, 0 -_0809AE74: .4byte 0x000011da -_0809AE78: .4byte 0x000011df -_0809AE7C: .4byte 0x000011d8 -_0809AE80: - ldr r3, _0809AE98 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AEB2 - .align 2, 0 -_0809AE98: .4byte 0x000011d8 -_0809AE9C: - ldr r3, _0809AF00 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AEB2: - subs r0, r1, r0 - lsls r7, 8 - lsls r0, 8 - ldr r4, [r4] - ldr r3, _0809AF04 - adds r6, r4, r3 - ldr r1, _0809AF08 - adds r5, r4, r1 - ldrh r1, [r5] - bl __divsi3 - str r0, [r6] - ldr r2, _0809AF0C - adds r6, r4, r2 - ldrh r1, [r5] - adds r0, r7, 0 - bl __divsi3 - str r0, [r6] - ldr r3, _0809AF10 - adds r2, r4, r3 - movs r0, 0x8E - lsls r0, 5 - adds r1, r4, r0 - ldr r0, [r1] - movs r3, 0x20 - ldrsh r0, [r0, r3] - lsls r0, 8 - str r0, [r2] - ldr r0, _0809AF14 - adds r4, r0 - ldr r0, [r1] - movs r1, 0x22 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809AF00: .4byte 0x000011d8 -_0809AF04: .4byte 0x000011d0 -_0809AF08: .4byte 0x000011dc -_0809AF0C: .4byte 0x000011d4 -_0809AF10: .4byte 0x000011c8 -_0809AF14: .4byte 0x000011cc - thumb_func_end sub_809AD94 - - thumb_func_start sub_809AF18 -sub_809AF18: @ 809AF18 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809AD3C - bl sub_809AD94 - ldr r0, _0809AFA4 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AF46 - ldr r0, _0809AFA8 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim -_0809AF46: - cmp r4, 0x1 - bne _0809AF70 - ldr r0, _0809AFAC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809AF70 - ldr r0, _0809AFA8 - ldr r0, [r0] - ldr r2, _0809AFB0 - adds r1, r0, r2 - strb r4, [r1] - ldr r1, _0809AFB4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0809AF70: - cmp r4, 0 - beq _0809AF9E - cmp r4, 0 - blt _0809AF9E - cmp r4, 0x3 - bgt _0809AF9E - ldr r0, _0809AFA8 - ldr r2, [r0] - ldr r0, _0809AFB4 - adds r2, r0 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r2, [r2] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x5] -_0809AF9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809AFA4: .4byte gUnknown_020384E6 -_0809AFA8: .4byte gUnknown_083B6DB4 -_0809AFAC: .4byte gUnknown_020384E4 -_0809AFB0: .4byte 0x000011e2 -_0809AFB4: .4byte 0x000011c4 - thumb_func_end sub_809AF18 - - thumb_func_start sub_809AFB8 -sub_809AFB8: @ 809AFB8 - push {r4,r5,lr} - ldr r5, _0809B000 - ldr r0, _0809B004 - ldr r4, [r0] - movs r1, 0x8F - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _0809B008 - ldr r2, _0809B00C - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0809B010 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AFEA - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809AFEA: - bl sub_809BF74 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x1 - beq _0809B020 - cmp r0, 0x1 - bgt _0809B014 - cmp r0, 0 - beq _0809B034 - b _0809B05E - .align 2, 0 -_0809B000: .4byte gUnknown_020384E4 -_0809B004: .4byte gUnknown_083B6DB4 -_0809B008: .4byte gUnknown_020384E5 -_0809B00C: .4byte 0x000011e1 -_0809B010: .4byte gUnknown_020384E6 -_0809B014: - cmp r0, 0x2 - bne _0809B05E - movs r0, 0x1 - bl sub_809A860 - b _0809B05E -_0809B020: - ldr r2, _0809B030 - adds r0, r4, r2 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0xC - strb r1, [r0] - b _0809B05E - .align 2, 0 -_0809B030: .4byte 0x000011c4 -_0809B034: - ldr r0, _0809B064 - adds r2, r4, r0 - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x14 - strb r1, [r0] - ldr r1, [r2] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0809B05E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B064: .4byte 0x000011c4 - thumb_func_end sub_809AFB8 - - thumb_func_start sub_809B068 -sub_809B068: @ 809B068 - push {lr} - ldr r0, _0809B078 - ldrb r0, [r0] - cmp r0, 0 - bne _0809B07C - movs r3, 0 - b _0809B08A - .align 2, 0 -_0809B078: .4byte gUnknown_020384E6 -_0809B07C: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0809B08A - movs r3, 0x5 -_0809B08A: - ldr r0, _0809B0B8 - ldr r2, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809B0AA - ldr r0, _0809B0BC - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] -_0809B0AA: - movs r0, 0x1 - adds r1, r3, 0 - bl sub_809AF18 - pop {r0} - bx r0 - .align 2, 0 -_0809B0B8: .4byte gUnknown_083B6DB4 -_0809B0BC: .4byte 0x000011e3 - thumb_func_end sub_809B068 - - thumb_func_start sub_809B0C0 -sub_809B0C0: @ 809B0C0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_809AF18 - pop {r0} - bx r0 - thumb_func_end sub_809B0C0 - - thumb_func_start sub_809B0D4 -sub_809B0D4: @ 809B0D4 - ldr r1, _0809B0DC - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B0DC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0D4 - - thumb_func_start sub_809B0E0 -sub_809B0E0: @ 809B0E0 - ldr r0, _0809B0EC - ldr r1, _0809B0F0 - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_0809B0EC: .4byte gUnknown_020384EA -_0809B0F0: .4byte gUnknown_020384E5 - thumb_func_end sub_809B0E0 - - thumb_func_start sub_809B0F4 -sub_809B0F4: @ 809B0F4 - ldr r0, _0809B0FC - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809B0FC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0F4 - - thumb_func_start sub_809B100 -sub_809B100: @ 809B100 - lsls r0, 24 - ldr r1, _0809B120 - ldr r1, [r1] - ldr r2, _0809B124 - adds r3, r1, r2 - ldr r2, _0809B128 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0809B12C - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B120: .4byte gUnknown_083B6DB4 -_0809B124: .4byte 0x000012a4 -_0809B128: .4byte gUnknown_083BBBC8 -_0809B12C: .4byte 0x000012a8 - thumb_func_end sub_809B100 - - thumb_func_start sub_809B130 -sub_809B130: @ 809B130 - push {lr} - ldr r0, _0809B148 - ldr r0, [r0] - ldr r1, _0809B14C - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0809B148: .4byte gUnknown_083B6DB4 -_0809B14C: .4byte 0x000012a4 - thumb_func_end sub_809B130 - - thumb_func_start sub_809B150 -sub_809B150: @ 809B150 - push {r4,r5,lr} - ldr r0, _0809B16C - ldr r5, [r0] - ldr r0, _0809B170 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _0809B1A0 - cmp r0, 0x1 - bgt _0809B174 - cmp r0, 0 - beq _0809B17E - b _0809B1CE - .align 2, 0 -_0809B16C: .4byte gUnknown_083B6DB4 -_0809B170: .4byte 0x000012a8 -_0809B174: - cmp r0, 0x2 - beq _0809B1BE - cmp r0, 0x3 - beq _0809B186 - b _0809B1CE -_0809B17E: - ldr r0, _0809B18C - ldrb r0, [r0] - cmp r0, 0 - beq _0809B190 -_0809B186: - movs r0, 0 - b _0809B1D0 - .align 2, 0 -_0809B18C: .4byte gUnknown_020384E6 -_0809B190: - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - b _0809B1C8 -_0809B1A0: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - bl sub_809B384 - b _0809B1C8 -_0809B1BE: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE -_0809B1C8: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809B1CE: - movs r0, 0x1 -_0809B1D0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B150 - - thumb_func_start sub_809B1D8 -sub_809B1D8: @ 809B1D8 - push {r4,r5,lr} - ldr r0, _0809B1F4 - ldr r4, [r0] - ldr r0, _0809B1F8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B220 - cmp r0, 0x1 - bgt _0809B1FC - cmp r0, 0 - beq _0809B202 - b _0809B244 - .align 2, 0 -_0809B1F4: .4byte gUnknown_083B6DB4 -_0809B1F8: .4byte 0x000012a8 -_0809B1FC: - cmp r0, 0x2 - beq _0809B240 - b _0809B244 -_0809B202: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - bl sub_809B3E0 - b _0809B238 -_0809B220: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809B238: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B244 -_0809B240: - movs r0, 0 - b _0809B246 -_0809B244: - movs r0, 0x1 -_0809B246: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B1D8 - - thumb_func_start sub_809B24C -sub_809B24C: @ 809B24C - push {r4,r5,lr} - ldr r0, _0809B268 - ldr r4, [r0] - ldr r0, _0809B26C - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B2E0 - cmp r0, 0x1 - bgt _0809B270 - cmp r0, 0 - beq _0809B276 - b _0809B31C - .align 2, 0 -_0809B268: .4byte gUnknown_083B6DB4 -_0809B26C: .4byte 0x000012a8 -_0809B270: - cmp r0, 0x2 - beq _0809B318 - b _0809B31C -_0809B276: - ldr r0, _0809B290 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B298 - cmp r0, 0x1 - bne _0809B318 - ldr r2, _0809B294 - adds r1, r4, r2 - movs r0, 0xE - b _0809B2A0 - .align 2, 0 -_0809B290: .4byte gUnknown_020384E4 -_0809B294: .4byte 0x000012a9 -_0809B298: - bl get_preferred_box - ldr r2, _0809B2D0 - adds r1, r4, r2 -_0809B2A0: - strb r0, [r1] - ldr r0, _0809B2D4 - ldr r4, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - ldr r2, _0809B2D0 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B2D8 - ldrb r1, [r1] - bl sub_80996B0 - ldr r0, _0809B2DC - adds r4, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0809B31C - .align 2, 0 -_0809B2D0: .4byte 0x000012a9 -_0809B2D4: .4byte gUnknown_083B6DB4 -_0809B2D8: .4byte gUnknown_020384E5 -_0809B2DC: .4byte 0x000012a8 -_0809B2E0: - bl sub_809971C - lsls r0, 24 - cmp r0, 0 - bne _0809B31C - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - ldr r2, _0809B310 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B314 - ldrb r1, [r1] - bl diegohint1 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B31C - .align 2, 0 -_0809B310: .4byte 0x000012a9 -_0809B314: .4byte gUnknown_020384E5 -_0809B318: - movs r0, 0 - b _0809B31E -_0809B31C: - movs r0, 0x1 -_0809B31E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B24C - - thumb_func_start sub_809B324 -sub_809B324: @ 809B324 - push {lr} - ldr r0, _0809B348 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B33E - cmp r0, 0x8 - beq _0809B34C -_0809B33E: - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _0809B350 - .align 2, 0 -_0809B348: .4byte gUnknown_083B6DB4 -_0809B34C: - movs r0, 0 - b _0809B352 -_0809B350: - movs r0, 0x1 -_0809B352: - pop {r1} - bx r1 - thumb_func_end sub_809B324 - - thumb_func_start sub_809B358 -sub_809B358: @ 809B358 - push {lr} - ldr r0, _0809B378 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B37C - ldrh r0, [r1, 0x26] - subs r0, 0x1 - strh r0, [r1, 0x26] - movs r0, 0x1 - b _0809B37E - .align 2, 0 -_0809B378: .4byte gUnknown_083B6DB4 -_0809B37C: - movs r0, 0 -_0809B37E: - pop {r1} - bx r1 - thumb_func_end sub_809B358 - - thumb_func_start sub_809B384 -sub_809B384: @ 809B384 - push {r4,lr} - ldr r0, _0809B3AC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B3B4 - cmp r0, 0x1 - bne _0809B3D2 - ldr r4, _0809B3B0 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0 - bl sub_8099584 - b _0809B3CC - .align 2, 0 -_0809B3AC: .4byte gUnknown_020384E4 -_0809B3B0: .4byte gUnknown_020384E5 -_0809B3B4: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r4, _0809B3D8 - ldrb r1, [r4] - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0x1 - bl sub_8099584 -_0809B3CC: - ldr r1, _0809B3DC - movs r0, 0x1 - strb r0, [r1] -_0809B3D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809B3D8: .4byte gUnknown_020384E5 -_0809B3DC: .4byte gUnknown_020384E6 - thumb_func_end sub_809B384 - - thumb_func_start sub_809B3E0 -sub_809B3E0: @ 809B3E0 - push {r4,r5,lr} - ldr r0, _0809B408 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B410 - cmp r0, 0x1 - bne _0809B432 - ldr r4, _0809B40C - ldrb r1, [r4] - movs r0, 0xE - bl diegohint2 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809960C - b _0809B42C - .align 2, 0 -_0809B408: .4byte gUnknown_020384E4 -_0809B40C: .4byte gUnknown_020384E5 -_0809B410: - bl get_preferred_box - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0809B438 - ldrb r1, [r5] - adds r0, r4, 0 - bl diegohint2 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_809960C -_0809B42C: - ldr r1, _0809B43C - movs r0, 0 - strb r0, [r1] -_0809B432: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B438: .4byte gUnknown_020384E5 -_0809B43C: .4byte gUnknown_020384E6 - thumb_func_end sub_809B3E0 - - thumb_func_start sub_809B440 -sub_809B440: @ 809B440 - push {lr} - bl sub_809BF74 - pop {r0} - bx r0 - thumb_func_end sub_809B440 - - thumb_func_start sub_809B44C -sub_809B44C: @ 809B44C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0xE - bne _0809B488 - ldr r0, _0809B478 - ldr r0, [r0] - ldr r1, _0809B47C - adds r0, r1 - ldr r3, _0809B480 - ldr r1, _0809B484 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - b _0809B4AA - .align 2, 0 -_0809B478: .4byte gUnknown_083B6DB4 -_0809B47C: .4byte 0x000025b4 -_0809B480: .4byte gPlayerParty -_0809B484: .4byte gUnknown_020384E5 -_0809B488: - lsls r1, r4, 2 - adds r1, r4 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 4 - ldr r2, _0809B4C0 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B4C4 - ldr r1, [r1] - ldr r2, _0809B4C8 - adds r1, r2 - bl sub_803B4B4 -_0809B4AA: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809B548 - ldr r0, _0809B4CC - strb r4, [r0] - ldr r0, _0809B4D0 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B4C0: .4byte gUnknown_020300A4 -_0809B4C4: .4byte gUnknown_083B6DB4 -_0809B4C8: .4byte 0x000025b4 -_0809B4CC: .4byte gUnknown_020384E7 -_0809B4D0: .4byte gUnknown_020384E8 - thumb_func_end sub_809B44C - - thumb_func_start diegohint2 -diegohint2: @ 809B4D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r6, 0xE - bne _0809B508 - ldr r1, _0809B4FC - movs r0, 0x64 - muls r0, r5 - adds r0, r1 - ldr r1, _0809B500 - ldr r1, [r1] - ldr r2, _0809B504 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B536 - .align 2, 0 -_0809B4FC: .4byte gPlayerParty -_0809B500: .4byte gUnknown_083B6DB4 -_0809B504: .4byte 0x000025b4 -_0809B508: - ldr r0, _0809B53C - ldr r4, [r0] - ldr r0, _0809B540 - adds r4, r0 - adds r0, r4, 0 - bl pokemon_restore_pp - ldr r3, _0809B544 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - lsls r2, r6, 2 - adds r2, r6 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 5 - adds r0, r1 - adds r0, r3 - adds r0, 0x4 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy -_0809B536: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B53C: .4byte gUnknown_083B6DB4 -_0809B540: .4byte 0x000025b4 -_0809B544: .4byte gPokemonStorage - thumb_func_end diegohint2 - - thumb_func_start sub_809B548 -sub_809B548: @ 809B548 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r0, 0xE - bne _0809B568 - movs r0, 0x64 - muls r0, r2 - ldr r1, _0809B564 - adds r0, r1 - bl ZeroMonData - b _0809B582 - .align 2, 0 -_0809B564: .4byte gPlayerParty -_0809B568: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809B588 - adds r1, r2 - adds r0, r1 - bl ZeroBoxMonData -_0809B582: - pop {r0} - bx r0 - .align 2, 0 -_0809B588: .4byte gUnknown_020300A4 - thumb_func_end sub_809B548 - - thumb_func_start diegohint1 -diegohint1: @ 809B58C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r5, 0xE - bne _0809B5C0 - ldr r0, _0809B5B4 - ldr r0, [r0] - ldr r1, _0809B5B8 - adds r0, r1 - ldr r2, _0809B5BC - movs r1, 0x64 - muls r1, r6 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B5E2 - .align 2, 0 -_0809B5B4: .4byte gUnknown_083B6DB4 -_0809B5B8: .4byte 0x00002618 -_0809B5BC: .4byte gPlayerParty -_0809B5C0: - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 4 - ldr r2, _0809B614 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B618 - ldr r1, [r1] - ldr r2, _0809B61C - adds r1, r2 - bl sub_803B4B4 -_0809B5E2: - adds r0, r5, 0 - adds r1, r6, 0 - bl diegohint2 - ldr r0, _0809B618 - ldr r1, [r0] - ldr r0, _0809B620 - adds r4, r1, r0 - ldr r2, _0809B61C - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_809C04C - ldr r0, _0809B624 - strb r5, [r0] - ldr r0, _0809B628 - strb r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B614: .4byte gUnknown_020300A4 -_0809B618: .4byte gUnknown_083B6DB4 -_0809B61C: .4byte 0x00002618 -_0809B620: .4byte 0x000025b4 -_0809B624: .4byte gUnknown_020384E7 -_0809B628: .4byte gUnknown_020384E8 - thumb_func_end diegohint1 - - thumb_func_start sub_809B62C -sub_809B62C: @ 809B62C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl sub_8095B24 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0809B64A - movs r0, 0 - b _0809B6AC -_0809B64A: - ldr r5, _0809B668 - ldrb r0, [r5] - cmp r0, 0 - beq _0809B66C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - bl sub_8099480 - movs r0, 0 - strb r0, [r5] - b _0809B686 - .align 2, 0 -_0809B668: .4byte gUnknown_020384E6 -_0809B66C: - ldr r5, _0809B6B4 - ldrb r1, [r5] - movs r0, 0xE - bl sub_809B44C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - ldrb r0, [r5] - bl sub_8099520 -_0809B686: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _0809B698 - lsrs r0, r4, 24 - bl sub_8098D20 -_0809B698: - ldr r0, _0809B6B8 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x1 -_0809B6AC: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809B6B4: .4byte gUnknown_020384E5 -_0809B6B8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B62C - - thumb_func_start sub_809B6BC -sub_809B6BC: @ 809B6BC - push {lr} - ldr r0, _0809B6D8 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B6D8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B6BC - - thumb_func_start sub_809B6DC -sub_809B6DC: @ 809B6DC - push {lr} - ldr r0, _0809B6EC - ldrb r0, [r0] - cmp r0, 0 - beq _0809B6F0 - movs r2, 0x2 - b _0809B700 - .align 2, 0 -_0809B6EC: .4byte gUnknown_020384E6 -_0809B6F0: - ldr r0, _0809B720 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0x1 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r2, r0, 31 -_0809B700: - ldr r0, _0809B724 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809981C - ldr r0, _0809B728 - ldr r1, [r0] - ldr r2, _0809B72C - adds r0, r1, r2 - ldr r2, _0809B730 - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0809B720: .4byte gUnknown_020384E4 -_0809B724: .4byte gUnknown_020384E5 -_0809B728: .4byte gUnknown_083B6DB4 -_0809B72C: .4byte 0x000026e4 -_0809B730: .4byte 0x000011fa - thumb_func_end sub_809B6DC - - thumb_func_start sub_809B734 -sub_809B734: @ 809B734 - push {lr} - bl sub_80998D8 - lsls r0, 24 - cmp r0, 0 - beq _0809B744 - movs r0, 0x1 - b _0809B758 -_0809B744: - ldr r0, _0809B75C - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - movs r0, 0 -_0809B758: - pop {r1} - bx r1 - .align 2, 0 -_0809B75C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B734 - - thumb_func_start sub_809B760 -sub_809B760: @ 809B760 - push {lr} - bl sub_8099920 - ldr r1, _0809B774 - ldrb r0, [r1] - cmp r0, 0 - beq _0809B778 - movs r0, 0 - strb r0, [r1] - b _0809B79E - .align 2, 0 -_0809B774: .4byte gUnknown_020384E6 -_0809B778: - ldr r0, _0809B788 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B78C - movs r2, 0xE - b _0809B794 - .align 2, 0 -_0809B788: .4byte gUnknown_020384E4 -_0809B78C: - bl get_preferred_box - lsls r0, 24 - lsrs r2, r0, 24 -_0809B794: - ldr r0, _0809B7A8 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809B548 -_0809B79E: - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B7A8: .4byte gUnknown_020384E5 - thumb_func_end sub_809B760 - - thumb_func_start sub_809B7AC -sub_809B7AC: @ 809B7AC - push {lr} - ldr r0, _0809B7CC - ldrb r0, [r0] - cmp r0, 0 - beq _0809B7C8 - ldr r0, _0809B7D0 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim -_0809B7C8: - pop {r0} - bx r0 - .align 2, 0 -_0809B7CC: .4byte gUnknown_020384E6 -_0809B7D0: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B7AC - - thumb_func_start sub_809B7D4 -sub_809B7D4: @ 809B7D4 - push {r4-r6,lr} - ldr r0, _0809B804 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B81C - ldr r0, _0809B808 - ldr r4, [r0] - ldr r1, _0809B80C - adds r0, r4, r1 - ldr r2, _0809B810 - adds r1, r4, r2 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B814 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _0809B818 - adds r4, r1 - movs r0, 0x1 - negs r0, r0 - strb r0, [r4] - b _0809B8A6 - .align 2, 0 -_0809B804: .4byte gUnknown_020384E6 -_0809B808: .4byte gUnknown_083B6DB4 -_0809B80C: .4byte 0x00002618 -_0809B810: .4byte 0x000025b4 -_0809B814: .4byte 0x00002682 -_0809B818: .4byte 0x00002683 -_0809B81C: - ldr r0, _0809B84C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B864 - ldr r0, _0809B850 - ldr r4, [r0] - ldr r2, _0809B854 - adds r0, r4, r2 - ldr r3, _0809B858 - ldr r1, _0809B85C - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B860 - adds r4, r0 - movs r0, 0xE - b _0809B896 - .align 2, 0 -_0809B84C: .4byte gUnknown_020384E4 -_0809B850: .4byte gUnknown_083B6DB4 -_0809B854: .4byte 0x00002618 -_0809B858: .4byte gPlayerParty -_0809B85C: .4byte gUnknown_020384E5 -_0809B860: .4byte 0x00002682 -_0809B864: - ldr r5, _0809B8FC - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809B900 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r2, r5, 0x4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B904 - ldr r4, [r1] - ldr r2, _0809B908 - adds r1, r4, r2 - bl sub_803B4B4 - ldrb r0, [r5] - ldr r1, _0809B90C - adds r4, r1 -_0809B896: - strb r0, [r4] - ldr r0, _0809B904 - ldr r0, [r0] - ldr r1, _0809B900 - ldrb r1, [r1] - ldr r2, _0809B910 - adds r0, r2 - strb r1, [r0] -_0809B8A6: - ldr r0, _0809B904 - ldr r6, [r0] - ldr r0, _0809B914 - adds r4, r6, r0 - movs r0, 0 - strb r0, [r4] - ldr r1, _0809B918 - adds r5, r6, r1 - strb r0, [r5] - ldr r0, _0809B91C - adds r2, r6, r0 - movs r0, 0x39 - strh r0, [r2] - ldr r0, _0809B920 - adds r1, r6, r0 - ldr r0, _0809B924 - strh r0, [r1] - ldr r0, _0809B928 - adds r1, r6, r0 - ldr r0, _0809B92C - strh r0, [r1] - ldr r1, _0809B908 - adds r0, r6, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - movs r2, 0x1 - ands r1, r2 - strb r1, [r4] - lsrs r0, 17 - movs r1, 0x1 - ands r0, r1 - strb r0, [r5] - ldrh r0, [r4] - cmp r0, 0 - beq _0809B934 - ldr r2, _0809B930 - adds r1, r6, r2 - movs r0, 0 - strb r0, [r1] - b _0809B940 - .align 2, 0 -_0809B8FC: .4byte gPokemonStorage -_0809B900: .4byte gUnknown_020384E5 -_0809B904: .4byte gUnknown_083B6DB4 -_0809B908: .4byte 0x00002618 -_0809B90C: .4byte 0x00002682 -_0809B910: .4byte 0x00002683 -_0809B914: .4byte 0x0000267e -_0809B918: .4byte 0x0000267f -_0809B91C: .4byte 0x00002686 -_0809B920: .4byte 0x00002688 -_0809B924: .4byte 0x00000123 -_0809B928: .4byte 0x0000268a -_0809B92C: .4byte 0x00000163 -_0809B930: .4byte 0x0000267d -_0809B934: - ldr r2, _0809B954 - adds r0, r6, r2 - strb r1, [r0] - subs r2, 0x1 - adds r0, r6, r2 - strb r1, [r0] -_0809B940: - ldr r0, _0809B958 - ldr r0, [r0] - ldr r1, _0809B95C - adds r0, r1 - movs r1, 0 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B954: .4byte 0x0000267d -_0809B958: .4byte gUnknown_083B6DB4 -_0809B95C: .4byte 0x00002684 - thumb_func_end sub_809B7D4 - - thumb_func_start sub_809B960 -sub_809B960: @ 809B960 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809B988 - ldr r2, [r0] - ldr r3, _0809B98C - adds r1, r2, r3 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _0809B994 - ldr r7, _0809B990 - adds r0, r2, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _0809BB5C - .align 2, 0 -_0809B988: .4byte gUnknown_083B6DB4 -_0809B98C: .4byte 0x0000267d -_0809B990: .4byte 0x0000267c -_0809B994: - ldr r1, _0809B9A4 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0809B9A8 - cmp r0, 0x1 - beq _0809BA84 - b _0809BB58 - .align 2, 0 -_0809B9A4: .4byte 0x00002684 -_0809B9A8: - movs r5, 0 - movs r6, 0 -_0809B9AC: - mov r2, r12 - ldr r4, [r2] - ldr r3, _0809BA28 - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bne _0809B9CC - ldr r7, _0809BA2C - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, r5 - beq _0809BA02 -_0809B9CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809BA30 - adds r0, r1 - ldr r1, _0809BA34 - adds r2, r4, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809B9F0 - ldr r2, _0809BA38 - adds r0, r4, r2 - strb r6, [r0] -_0809B9F0: - movs r0, 0x2 - ands r3, r0 - ldr r7, _0809BA3C - mov r12, r7 - cmp r3, 0 - beq _0809BA02 - ldr r1, _0809BA40 - adds r0, r4, r1 - strb r6, [r0] -_0809BA02: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809B9AC - mov r3, r12 - ldr r2, [r3] - ldr r7, _0809BA38 - adds r0, r2, r7 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BA4C - ldr r1, _0809BA44 - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r3, _0809BA48 - b _0809BB54 - .align 2, 0 -_0809BA28: .4byte 0x00002682 -_0809BA2C: .4byte 0x00002683 -_0809BA30: .4byte gPlayerParty -_0809BA34: .4byte 0x00002686 -_0809BA38: .4byte 0x0000267e -_0809BA3C: .4byte gUnknown_083B6DB4 -_0809BA40: .4byte 0x0000267f -_0809BA44: .4byte 0x0000267d -_0809BA48: .4byte 0x0000267c -_0809BA4C: - movs r7, 0x9A - lsls r7, 6 - adds r0, r2, r7 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BA68 - adds r0, r2, r3 - strb r1, [r0] - adds r7, 0x4 - adds r1, r2, r7 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0809BB58 - .align 2, 0 -_0809BA68: .4byte 0x00002681 -_0809BA6C: - ldr r1, _0809BA7C - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r7, _0809BA80 - adds r0, r2, r7 - strb r3, [r0] - b _0809BB3C - .align 2, 0 -_0809BA7C: .4byte 0x0000267d -_0809BA80: .4byte 0x0000267c -_0809BA84: - movs r5, 0 - mov r9, r12 - adds r4, r2, 0 - movs r0, 0x9A - lsls r0, 6 - adds r6, r4, r0 - ldr r1, _0809BB6C - adds r1, r4 - mov r8, r1 - ldr r2, _0809BB70 - mov r10, r2 -_0809BA9A: - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r3, _0809BB74 - adds r1, r4, r3 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BB78 - adds r1, r2 - adds r0, r1 - movs r1, 0x50 - ldr r7, _0809BB7C - adds r2, r4, r7 - bl GetBoxMonData - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _0809BB00 - ldr r1, _0809BB80 - adds r0, r4, r1 - ldrh r0, [r0] - ldrh r2, [r6] - mov r1, r10 - ands r1, r0 - mov r0, r10 - ands r0, r2 - cmp r1, r0 - beq _0809BB00 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809BAF2 - ldr r2, _0809BB84 - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] -_0809BAF2: - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - beq _0809BB00 - movs r0, 0 - mov r3, r8 - strb r0, [r3] -_0809BB00: - mov r7, r9 - ldr r2, [r7] - ldr r0, _0809BB74 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - ldr r7, _0809BB88 - mov r12, r7 - cmp r0, 0x1D - ble _0809BB32 - strb r3, [r1] - movs r0, 0x9A - lsls r0, 6 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xD - bgt _0809BA6C -_0809BB32: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _0809BA9A -_0809BB3C: - mov r1, r12 - ldr r2, [r1] - ldr r3, _0809BB84 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BB58 - ldr r7, _0809BB8C - adds r0, r2, r7 - movs r1, 0x1 - strb r1, [r0] - subs r3, 0x2 -_0809BB54: - adds r0, r2, r3 - strb r1, [r0] -_0809BB58: - movs r0, 0x1 - negs r0, r0 -_0809BB5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BB6C: .4byte 0x0000267f -_0809BB70: .4byte 0x0000ffff -_0809BB74: .4byte 0x00002681 -_0809BB78: .4byte gUnknown_020300A4 -_0809BB7C: .4byte 0x00002686 -_0809BB80: .4byte 0x00002682 -_0809BB84: .4byte 0x0000267e -_0809BB88: .4byte gUnknown_083B6DB4 -_0809BB8C: .4byte 0x0000267d - thumb_func_end sub_809B960 - - thumb_func_start sub_809BB90 -sub_809BB90: @ 809BB90 - push {lr} - ldr r0, _0809BBB0 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BBAA - ldr r0, _0809BBB4 - ldr r1, _0809BBB8 - ldr r1, [r1] - ldr r2, _0809BBBC - adds r1, r2 - movs r2, 0x64 - bl memcpy -_0809BBAA: - pop {r0} - bx r0 - .align 2, 0 -_0809BBB0: .4byte gUnknown_020384E6 -_0809BBB4: .4byte gUnknown_02038480 -_0809BBB8: .4byte gUnknown_083B6DB4 -_0809BBBC: .4byte 0x000025b4 - thumb_func_end sub_809BB90 - - thumb_func_start sub_809BBC0 -sub_809BBC0: @ 809BBC0 - push {lr} - ldr r0, _0809BBE4 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BC08 - ldr r0, _0809BBE8 - ldrb r0, [r0] - cmp r0, 0xE - bne _0809BBF8 - ldr r0, _0809BBEC - ldr r0, [r0] - ldr r1, _0809BBF0 - adds r0, r1 - ldr r1, _0809BBF4 - movs r2, 0x64 - bl memcpy - b _0809BC08 - .align 2, 0 -_0809BBE4: .4byte gUnknown_020384E6 -_0809BBE8: .4byte gUnknown_020384E7 -_0809BBEC: .4byte gUnknown_083B6DB4 -_0809BBF0: .4byte 0x000025b4 -_0809BBF4: .4byte gUnknown_02038480 -_0809BBF8: - ldr r0, _0809BC0C - ldr r0, [r0] - ldr r1, _0809BC10 - adds r0, r1 - ldr r1, _0809BC14 - movs r2, 0x50 - bl memcpy -_0809BC08: - pop {r0} - bx r0 - .align 2, 0 -_0809BC0C: .4byte gUnknown_083B6DB4 -_0809BC10: .4byte 0x000025b4 -_0809BC14: .4byte gUnknown_02038480 - thumb_func_end sub_809BBC0 - - thumb_func_start sub_809BC18 -sub_809BC18: @ 809BC18 - push {r4,r5,lr} - ldr r0, _0809BC48 - ldrb r5, [r0] - cmp r5, 0 - beq _0809BC64 - bl sub_809BB90 - ldr r0, _0809BC4C - ldr r2, [r0] - ldr r0, _0809BC50 - adds r1, r2, r0 - ldr r0, _0809BC54 - str r0, [r1] - ldr r1, _0809BC58 - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BC5C - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809BC60 - adds r2, r0 - strb r1, [r2] - b _0809BCF2 - .align 2, 0 -_0809BC48: .4byte gUnknown_020384E6 -_0809BC4C: .4byte gUnknown_083B6DB4 -_0809BC50: .4byte 0x00002690 -_0809BC54: .4byte gUnknown_02038480 -_0809BC58: .4byte 0x0000268d -_0809BC5C: .4byte 0x0000268c -_0809BC60: .4byte 0x0000268e -_0809BC64: - ldr r0, _0809BC9C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BCBC - ldr r0, _0809BCA0 - ldr r4, [r0] - ldr r2, _0809BCA4 - adds r1, r4, r2 - ldr r0, _0809BCA8 - str r0, [r1] - ldr r0, _0809BCAC - ldrb r1, [r0] - ldr r3, _0809BCB0 - adds r0, r4, r3 - strb r1, [r0] - bl sub_8095C28 - subs r0, 0x1 - ldr r2, _0809BCB4 - adds r1, r4, r2 - strb r0, [r1] - ldr r3, _0809BCB8 - adds r4, r3 - strb r5, [r4] - b _0809BCF2 - .align 2, 0 -_0809BC9C: .4byte gUnknown_020384E4 -_0809BCA0: .4byte gUnknown_083B6DB4 -_0809BCA4: .4byte 0x00002690 -_0809BCA8: .4byte gPlayerParty -_0809BCAC: .4byte gUnknown_020384E5 -_0809BCB0: .4byte 0x0000268d -_0809BCB4: .4byte 0x0000268c -_0809BCB8: .4byte 0x0000268e -_0809BCBC: - ldr r0, _0809BCF8 - ldr r3, [r0] - ldr r0, _0809BCFC - adds r4, r3, r0 - ldr r2, _0809BD00 - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r2, 0x4 - adds r0, r2 - str r0, [r4] - ldr r0, _0809BD04 - ldrb r1, [r0] - ldr r2, _0809BD08 - adds r0, r3, r2 - strb r1, [r0] - ldr r0, _0809BD0C - adds r1, r3, r0 - movs r0, 0x1D - strb r0, [r1] - ldr r1, _0809BD10 - adds r3, r1 - movs r0, 0x5 - strb r0, [r3] -_0809BCF2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809BCF8: .4byte gUnknown_083B6DB4 -_0809BCFC: .4byte 0x00002690 -_0809BD00: .4byte gPokemonStorage -_0809BD04: .4byte gUnknown_020384E5 -_0809BD08: .4byte 0x0000268d -_0809BD0C: .4byte 0x0000268c -_0809BD10: .4byte 0x0000268e - thumb_func_end sub_809BC18 - - thumb_func_start sub_809BD14 -sub_809BD14: @ 809BD14 - push {lr} - ldr r0, _0809BD24 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BD28 - bl sub_809BBC0 - b _0809BD30 - .align 2, 0 -_0809BD24: .4byte gUnknown_020384E6 -_0809BD28: - ldr r0, _0809BD34 - ldr r1, _0809BD38 - ldrb r1, [r1, 0x9] - strb r1, [r0] -_0809BD30: - pop {r0} - bx r0 - .align 2, 0 -_0809BD34: .4byte gUnknown_020384E5 -_0809BD38: .4byte 0x02018000 - thumb_func_end sub_809BD14 - - thumb_func_start party_compaction -party_compaction: @ 809BD3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _0809BD88 - movs r6, 0 - movs r5, 0 - movs r0, 0x64 - mov r9, r0 - ldr r1, _0809BD8C - mov r8, r1 - subs r0, 0x65 - mov r10, r0 -_0809BD58: - mov r0, r9 - muls r0, r6 - mov r1, r8 - adds r4, r0, r1 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - cmp r0, 0 - beq _0809BD90 - cmp r6, r5 - beq _0809BD80 - mov r0, r9 - muls r0, r5 - add r0, r8 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy -_0809BD80: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _0809BD9A - .align 2, 0 -_0809BD88: .4byte 0x0000ffff -_0809BD8C: .4byte gPlayerParty -_0809BD90: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r10 - bne _0809BD9A - adds r7, r6, 0 -_0809BD9A: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _0809BD58 - lsls r7, 16 - cmp r5, 0x5 - bhi _0809BDC2 - movs r6, 0x64 - ldr r4, _0809BDD4 -_0809BDAE: - adds r0, r5, 0 - muls r0, r6 - adds r0, r4 - bl ZeroMonData - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809BDAE -_0809BDC2: - asrs r0, r7, 16 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BDD4: .4byte gPlayerParty - thumb_func_end party_compaction - - thumb_func_start sub_809BDD8 -sub_809BDD8: @ 809BDD8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - ldr r1, _0809BE04 - ldr r2, [r1] - ldr r3, _0809BE08 - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _0809BE0C - ldrb r0, [r0] - cmp r0, 0 - beq _0809BE14 - ldr r1, _0809BE10 - adds r0, r2, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _0809BE68 - .align 2, 0 -_0809BE04: .4byte gUnknown_083B6DB4 -_0809BE08: .4byte 0x000011f7 -_0809BE0C: .4byte gUnknown_020384E6 -_0809BE10: .4byte 0x000025b4 -_0809BE14: - ldr r4, _0809BE70 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x1 - bne _0809BE34 - ldr r0, _0809BE74 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BE78 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData -_0809BE34: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _0809BE68 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809BE74 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BE7C - adds r1, r2 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetBoxMonData -_0809BE68: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809BE70: .4byte gUnknown_020384E4 -_0809BE74: .4byte gUnknown_020384E5 -_0809BE78: .4byte gPlayerParty -_0809BE7C: .4byte gUnknown_020300A4 - thumb_func_end sub_809BDD8 - - thumb_func_start sub_809BE80 -sub_809BE80: @ 809BE80 - push {lr} - ldr r0, _0809BEA8 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEB4 - ldr r0, _0809BEAC - ldrb r0, [r0] - cmp r0, 0 - bne _0809BEB4 - ldr r0, _0809BEB0 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - cmp r0, 0 - bne _0809BEB4 - movs r0, 0x1 - b _0809BEB6 - .align 2, 0 -_0809BEA8: .4byte gUnknown_020384E4 -_0809BEAC: .4byte gUnknown_020384E6 -_0809BEB0: .4byte gUnknown_020384E5 -_0809BEB4: - movs r0, 0 -_0809BEB6: - pop {r1} - bx r1 - thumb_func_end sub_809BE80 - - thumb_func_start sub_809BEBC -sub_809BEBC: @ 809BEBC - push {lr} - ldr r0, _0809BF00 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BF18 - ldr r0, _0809BF04 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEFC - ldr r0, _0809BF08 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - cmp r0, 0 - bne _0809BEFC - ldr r0, _0809BF0C - ldr r1, [r0] - ldr r2, _0809BF10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BF18 - ldr r2, _0809BF14 - adds r0, r1, r2 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0809BF18 -_0809BEFC: - movs r0, 0x1 - b _0809BF1A - .align 2, 0 -_0809BF00: .4byte gUnknown_020384E6 -_0809BF04: .4byte gUnknown_020384E4 -_0809BF08: .4byte gUnknown_020384E5 -_0809BF0C: .4byte gUnknown_083B6DB4 -_0809BF10: .4byte 0x000011f9 -_0809BF14: .4byte 0x000025b4 -_0809BF18: - movs r0, 0 -_0809BF1A: - pop {r1} - bx r1 - thumb_func_end sub_809BEBC - - thumb_func_start sub_809BF20 -sub_809BF20: @ 809BF20 - ldr r0, _0809BF28 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809BF28: .4byte gUnknown_020384E6 - thumb_func_end sub_809BF20 - - thumb_func_start sub_809BF2C -sub_809BF2C: @ 809BF2C - push {lr} - movs r1, 0 - ldr r0, _0809BF44 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _0809BF3E - movs r1, 0x1 -_0809BF3E: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF44: .4byte gUnknown_020384E4 - thumb_func_end sub_809BF2C - - thumb_func_start sub_809BF48 -sub_809BF48: @ 809BF48 - push {lr} - movs r1, 0 - ldr r0, _0809BF6C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _0809BF66 - ldr r0, _0809BF70 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BF66 - movs r1, 0x1 -_0809BF66: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF6C: .4byte gUnknown_020384E4 -_0809BF70: .4byte gUnknown_020384E5 - thumb_func_end sub_809BF48 - - thumb_func_start sub_809BF74 -sub_809BF74: @ 809BF74 - push {r4,lr} - ldr r0, _0809BFA8 - ldr r1, [r0] - movs r2, 0 - ldr r3, _0809BFAC - ldrb r0, [r3] - cmp r0, 0 - bne _0809BF86 - movs r2, 0x1 -_0809BF86: - ldr r4, _0809BFB0 - adds r0, r1, r4 - strb r2, [r0] - ldrb r0, [r3] - cmp r0, 0 - bne _0809C018 - ldr r0, _0809BFB4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809BFBE - cmp r0, 0x1 - bgt _0809BFB8 - cmp r0, 0 - beq _0809BFEE - b _0809C018 - .align 2, 0 -_0809BFA8: .4byte gUnknown_083B6DB4 -_0809BFAC: .4byte gUnknown_020384E6 -_0809BFB0: .4byte 0x000011f6 -_0809BFB4: .4byte gUnknown_020384E4 -_0809BFB8: - cmp r0, 0x3 - bgt _0809C018 - b _0809BFE4 -_0809BFBE: - ldr r1, _0809BFDC - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0809BFE4 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BFE0 - adds r0, r1 - movs r1, 0 - bl sub_809C04C - b _0809C018 - .align 2, 0 -_0809BFDC: .4byte gUnknown_020384E5 -_0809BFE0: .4byte gPlayerParty -_0809BFE4: - movs r0, 0 - movs r1, 0x2 - bl sub_809C04C - b _0809C018 -_0809BFEE: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809C020 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809C024 - adds r1, r2 - adds r0, r1 - movs r1, 0x1 - bl sub_809C04C -_0809C018: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809C020: .4byte gUnknown_020384E5 -_0809C024: .4byte gUnknown_020300A4 - thumb_func_end sub_809BF74 - - thumb_func_start sub_809C028 -sub_809C028: @ 809C028 - push {lr} - ldr r0, _0809C03C - ldrb r0, [r0] - cmp r0, 0 - beq _0809C044 - ldr r0, _0809C040 - movs r1, 0 - bl sub_809C04C - b _0809C048 - .align 2, 0 -_0809C03C: .4byte gUnknown_020384E6 -_0809C040: .4byte gUnknown_02038480 -_0809C044: - bl sub_809BF74 -_0809C048: - pop {r0} - bx r0 - thumb_func_end sub_809C028 - - thumb_func_start sub_809C04C -sub_809C04C: @ 809C04C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, _0809C0FC - ldr r6, [r0] - ldr r2, _0809C100 - adds r2, r6 - mov r8, r2 - mov r0, sp - ldrh r0, [r0] - strh r0, [r2] - cmp r1, 0 - bne _0809C120 - adds r0, r7, 0 - movs r1, 0x41 - bl GetMonData - ldr r2, _0809C104 - adds r1, r6, r2 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0809C08C - b _0809C1EC -_0809C08C: - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - ldr r2, _0809C108 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C10C - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - ldr r2, _0809C110 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetMonData - ldr r2, _0809C114 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - ldr r2, _0809C118 - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl pokemon_get_pal - ldr r2, _0809C11C - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetMonData - b _0809C1B2 - .align 2, 0 -_0809C0FC: .4byte gUnknown_083B6DB4 -_0809C100: .4byte 0x000011f2 -_0809C104: .4byte 0x000011f0 -_0809C108: .4byte 0x000011f9 -_0809C10C: .4byte 0x000011fa -_0809C110: .4byte 0x000011f8 -_0809C114: .4byte 0x000011f7 -_0809C118: .4byte 0x000011ec -_0809C11C: .4byte 0x000011e8 -_0809C120: - cmp r1, 0x1 - bne _0809C1D4 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - ldr r2, _0809C1B8 - adds r5, r6, r2 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - beq _0809C1EC - adds r0, r7, 0 - movs r1, 0x1 - bl GetBoxMonData - mov r9, r0 - adds r0, r7, 0 - movs r1, 0x2D - bl GetBoxMonData - ldr r2, _0809C1BC - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C1C0 - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetBoxMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - bl GetLevelFromBoxMonExp - ldr r2, _0809C1C4 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetBoxMonData - ldr r2, _0809C1C8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r2, r0, 0 - ldr r0, _0809C1CC - adds r4, r6, r0 - str r2, [r4] - ldrh r0, [r5] - mov r1, r9 - bl species_and_otid_get_pal - ldr r2, _0809C1D0 - adds r1, r6, r2 - str r0, [r1] - ldrh r0, [r5] - ldr r1, [r4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonData -_0809C1B2: - mov r1, r8 - strh r0, [r1] - b _0809C1DE - .align 2, 0 -_0809C1B8: .4byte 0x000011f0 -_0809C1BC: .4byte 0x000011f9 -_0809C1C0: .4byte 0x000011fa -_0809C1C4: .4byte 0x000011f8 -_0809C1C8: .4byte 0x000011f7 -_0809C1CC: .4byte 0x000011ec -_0809C1D0: .4byte 0x000011e8 -_0809C1D4: - ldr r2, _0809C220 - adds r0, r6, r2 - mov r1, sp - ldrh r1, [r1] - strh r1, [r0] -_0809C1DE: - ldr r0, _0809C224 - ldr r4, [r0] - ldr r2, _0809C220 - adds r0, r4, r2 - ldrh r1, [r0] - cmp r1, 0 - bne _0809C23C -_0809C1EC: - ldr r0, _0809C224 - ldr r1, [r0] - ldr r0, _0809C228 - adds r2, r1, r0 - movs r0, 0xFF - strb r0, [r2] - ldr r0, _0809C22C - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C230 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C234 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r2, _0809C238 - adds r1, r2 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C220: .4byte 0x000011f0 -_0809C224: .4byte gUnknown_083B6DB4 -_0809C228: .4byte 0x000011fa -_0809C22C: .4byte 0x0000120f -_0809C230: .4byte 0x00001234 -_0809C234: .4byte 0x00001259 -_0809C238: .4byte 0x0000127a -_0809C23C: - ldr r2, _0809C28C - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C2A4 - ldr r0, _0809C290 - adds r7, r4, r0 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x4 - strb r0, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r1, _0809C294 - adds r7, r4, r1 - adds r2, 0x1 - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C298 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r2, _0809C29C - adds r1, r4, r2 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - ldr r0, _0809C2A0 - adds r1, r4, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C28C: .4byte 0x000011f9 -_0809C290: .4byte 0x0000120f -_0809C294: .4byte 0x00001214 -_0809C298: .4byte 0x00001234 -_0809C29C: .4byte 0x00001259 -_0809C2A0: .4byte 0x0000127a -_0809C2A4: - cmp r1, 0x20 - beq _0809C2AC - cmp r1, 0x1D - bne _0809C2B0 -_0809C2AC: - movs r1, 0xFF - str r1, [sp] -_0809C2B0: - ldr r0, _0809C388 - ldr r4, [r0] - ldr r2, _0809C38C - adds r7, r4, r2 - movs r0, 0xFC - mov r9, r0 - strb r0, [r7] - movs r1, 0x4 - mov r8, r1 - strb r1, [r7, 0x1] - movs r2, 0xF - strb r2, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r6, 0x1 - strb r6, [r7, 0x4] - ldr r1, _0809C390 - adds r7, r4, r1 - ldr r2, _0809C394 - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C398 - adds r7, r4, r0 - mov r1, r9 - strb r1, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - movs r0, 0x13 - mov r10, r0 - strb r0, [r7, 0x6] - movs r1, 0x7 - strb r1, [r7, 0x7] - movs r0, 0xBA - strb r0, [r7, 0x8] - ldr r2, _0809C39C - adds r7, r4, r2 - ldr r1, _0809C3A0 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, _0809C3A4 - adds r1, r0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - mov r2, r9 - strb r2, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - movs r0, 0x50 - strb r0, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r1, _0809C3A8 - adds r7, r4, r1 - strb r2, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - mov r0, r10 - strb r0, [r7, 0x6] - movs r6, 0x8 - strb r6, [r7, 0x7] - ldr r1, _0809C3AC - adds r7, r4, r1 - movs r0, 0x34 - strb r0, [r7] - ldr r2, _0809C3B0 - adds r7, r4, r2 - ldr r0, _0809C3B4 - adds r4, r0 - ldrb r1, [r4] - adds r0, r7, 0 - movs r2, 0x22 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - mov r1, r9 - strb r1, [r7] - movs r0, 0x11 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - adds r7, 0x3 - ldr r2, [sp] - cmp r2, 0 - beq _0809C3B8 - cmp r2, 0xFE - beq _0809C3D0 - b _0809C3EA - .align 2, 0 -_0809C388: .4byte gUnknown_083B6DB4 -_0809C38C: .4byte 0x0000120f -_0809C390: .4byte 0x00001214 -_0809C394: .4byte 0x000011fa -_0809C398: .4byte 0x00001234 -_0809C39C: .4byte 0x0000123d -_0809C3A0: .4byte 0x000011f0 -_0809C3A4: .4byte gSpeciesNames -_0809C3A8: .4byte 0x00001259 -_0809C3AC: .4byte 0x00001261 -_0809C3B0: .4byte 0x00001262 -_0809C3B4: .4byte 0x000011f8 -_0809C3B8: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - strb r1, [r7, 0x2] - mov r2, sp - ldrb r2, [r2] - strb r2, [r7, 0x3] - movs r0, 0x5 - strb r0, [r7, 0x4] - movs r0, 0xB5 - b _0809C3E6 -_0809C3D0: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - movs r0, 0x6 - strb r0, [r7, 0x2] - movs r2, 0 - strb r2, [r7, 0x3] - movs r0, 0x7 - strb r0, [r7, 0x4] - movs r0, 0xB6 -_0809C3E6: - strb r0, [r7, 0x5] - adds r7, 0x6 -_0809C3EA: - movs r5, 0xFF - strb r5, [r7] - ldr r0, _0809C450 - ldr r2, [r0] - ldr r1, _0809C454 - adds r7, r2, r1 - ldr r0, _0809C458 - adds r3, r2, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _0809C43C - movs r4, 0xFC - strb r4, [r7] - movs r1, 0x4 - strb r1, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r0, _0809C45C - adds r7, r2, r0 - strb r4, [r7] - movs r0, 0x6 - strb r0, [r7, 0x1] - strb r1, [r7, 0x2] - ldr r1, _0809C460 - adds r7, r2, r1 - ldrh r0, [r3] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - strb r4, [r7] - movs r0, 0x7 - strb r0, [r7, 0x1] - adds r7, 0x2 -_0809C43C: - strb r5, [r7] -_0809C43E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809C450: .4byte gUnknown_083B6DB4 -_0809C454: .4byte 0x0000127a -_0809C458: .4byte 0x000011f2 -_0809C45C: .4byte 0x0000127f -_0809C460: .4byte 0x00001282 - thumb_func_end sub_809C04C - - thumb_func_start sub_809C464 -sub_809C464: @ 809C464 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0809C4D8 - ldrb r0, [r0] - mov r8, r0 - ldr r2, _0809C4DC - ldrb r4, [r2] - ldr r0, _0809C4E0 - ldr r1, [r0] - ldr r0, _0809C4E4 - adds r7, r1, r0 - movs r0, 0 - strb r0, [r7] - ldr r3, _0809C4E8 - adds r5, r1, r3 - strb r0, [r5] - adds r3, 0x4 - adds r6, r1, r3 - strb r0, [r6] - ldr r0, _0809C4EC - mov r12, r0 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _0809C4A0 - b _0809C62A -_0809C4A0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809C4F0 - movs r1, 0x1 - mov r9, r1 - lsls r0, r4, 24 - movs r3, 0xC0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - bgt _0809C4BE - b _0809C648 -_0809C4BE: - movs r1, 0x3 - mov r8, r1 - subs r0, 0x1E - lsls r0, 24 - asrs r0, 24 - bl __divsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r3, r9 - strb r3, [r7] - strb r3, [r6] - b _0809C648 - .align 2, 0 -_0809C4D8: .4byte gUnknown_020384E4 -_0809C4DC: .4byte gUnknown_020384E5 -_0809C4E0: .4byte gUnknown_083B6DB4 -_0809C4E4: .4byte 0x000011de -_0809C4E8: .4byte 0x000011df -_0809C4EC: .4byte gMain -_0809C4F0: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809C524 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - movs r1, 0x6 - bl __modsi3 - lsls r0, 24 - cmp r0, 0 - beq _0809C514 - lsls r0, r4, 24 - movs r1, 0xFF - lsls r1, 24 - b _0809C63C -_0809C514: - movs r0, 0xFF - strb r0, [r5] - lsls r0, r4, 24 - movs r3, 0xA0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - b _0809C648 -_0809C524: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C554 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, 0x1 - movs r1, 0x6 - bl __modsi3 - cmp r0, 0 - beq _0809C548 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - b _0809C63C -_0809C548: - mov r3, r9 - strb r3, [r5] - lsls r0, r4, 24 - movs r1, 0xFB - lsls r1, 24 - b _0809C63C -_0809C554: - mov r3, r12 - ldrh r1, [r3, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0809C56A - movs r0, 0x1 - mov r9, r0 - movs r1, 0x2 - mov r8, r1 - b _0809C646 -_0809C56A: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C5D4 - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C5D4 - ldr r0, _0809C588 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C58C - movs r0, 0x8 - b _0809C658 - .align 2, 0 -_0809C588: .4byte gUnknown_020384E9 -_0809C58C: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C5D4 - lsls r0, 2 - ldr r1, _0809C5A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C5A8: .4byte _0809C5AC - .align 2, 0 -_0809C5AC: - .4byte _0809C5C0 - .4byte _0809C5C4 - .4byte _0809C5C8 - .4byte _0809C5CC - .4byte _0809C5D0 -_0809C5C0: - movs r0, 0xB - b _0809C658 -_0809C5C4: - movs r0, 0xC - b _0809C658 -_0809C5C8: - movs r0, 0xD - b _0809C658 -_0809C5CC: - movs r0, 0xE - b _0809C658 -_0809C5D0: - movs r0, 0xF - b _0809C658 -_0809C5D4: - ldr r2, _0809C5E4 - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C5E8 - movs r0, 0x10 - b _0809C658 - .align 2, 0 -_0809C5E4: .4byte gMain -_0809C5E8: - ldr r0, _0809C600 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C612 - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0809C604 - movs r0, 0xA - b _0809C658 - .align 2, 0 -_0809C600: .4byte gSaveBlock2 -_0809C604: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0809C612 - movs r0, 0x9 - b _0809C658 -_0809C612: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C624 - bl sub_809CD88 - movs r0, 0 - b _0809C658 -_0809C624: - movs r3, 0 - mov r9, r3 - b _0809C656 -_0809C62A: - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x5 - ble _0809C642 - lsls r0, r4, 24 - movs r1, 0xFA - lsls r1, 24 -_0809C63C: - adds r0, r1 - lsrs r4, r0, 24 - b _0809C648 -_0809C642: - movs r3, 0x2 - mov r8, r3 -_0809C646: - movs r4, 0 -_0809C648: - mov r0, r9 - cmp r0, 0 - beq _0809C656 - mov r0, r8 - adds r1, r4, 0 - bl sub_809AF18 -_0809C656: - mov r0, r9 -_0809C658: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C464 - - thumb_func_start sub_809C664 -sub_809C664: @ 809C664 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809C6D8 - ldrb r0, [r0] - mov r10, r0 - ldr r7, _0809C6DC - ldrb r4, [r7] - ldr r2, _0809C6E0 - ldr r5, [r2] - ldr r1, _0809C6E4 - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C6E8 - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x5 - adds r0, r5, r3 - strb r1, [r0] - mov r9, r1 - mov r8, r1 - ldr r1, _0809C6EC - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - adds r6, r7, 0 - mov r12, r2 - adds r2, r1, 0 - cmp r0, 0 - beq _0809C6A8 - b _0809C81C -_0809C6A8: - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C6F0 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x6 - ble _0809C6C2 - movs r4, 0 -_0809C6C2: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - bne _0809C6D0 - b _0809C83C -_0809C6D0: - movs r2, 0x1 - mov r8, r2 - b _0809C842 - .align 2, 0 -_0809C6D8: .4byte gUnknown_020384E4 -_0809C6DC: .4byte gUnknown_020384E5 -_0809C6E0: .4byte gUnknown_083B6DB4 -_0809C6E4: .4byte 0x000011df -_0809C6E8: .4byte 0x000011de -_0809C6EC: .4byte gMain -_0809C6F0: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0809C714 - ldrb r1, [r6] - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - beq _0809C714 - movs r3, 0x1 - mov r8, r3 - ldr r2, _0809C710 - adds r0, r5, r2 - strb r1, [r0] - movs r4, 0 - b _0809C83C - .align 2, 0 -_0809C710: .4byte 0x000011e2 -_0809C714: - ldrh r1, [r2, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C748 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - bne _0809C73C - movs r3, 0x1 - mov r8, r3 - mov r1, r12 - ldr r0, [r1] - ldr r2, _0809C738 - adds r0, r2 - ldrb r4, [r0] - b _0809C83C - .align 2, 0 -_0809C738: .4byte 0x000011e2 -_0809C73C: - movs r3, 0x6 - mov r8, r3 - movs r0, 0 - mov r10, r0 - movs r4, 0 - b _0809C83C -_0809C748: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C7D0 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x6 - bne _0809C76E - mov r1, r12 - ldr r0, [r1] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C768 - movs r0, 0x4 - b _0809C84C -_0809C768: - movs r2, 0x1 - mov r9, r2 - b _0809C7D0 -_0809C76E: - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C7D0 - ldr r0, _0809C784 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C788 - movs r0, 0x8 - b _0809C84C - .align 2, 0 -_0809C784: .4byte gUnknown_020384E9 -_0809C788: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C7D0 - lsls r0, 2 - ldr r1, _0809C7A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C7A4: .4byte _0809C7A8 - .align 2, 0 -_0809C7A8: - .4byte _0809C7BC - .4byte _0809C7C0 - .4byte _0809C7C4 - .4byte _0809C7C8 - .4byte _0809C7CC -_0809C7BC: - movs r0, 0xB - b _0809C84C -_0809C7C0: - movs r0, 0xC - b _0809C84C -_0809C7C4: - movs r0, 0xD - b _0809C84C -_0809C7C8: - movs r0, 0xE - b _0809C84C -_0809C7CC: - movs r0, 0xF - b _0809C84C -_0809C7D0: - ldr r2, _0809C7EC - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C7F8 - ldr r0, _0809C7F0 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C7F4 - movs r0, 0x10 - b _0809C84C - .align 2, 0 -_0809C7EC: .4byte gMain -_0809C7F0: .4byte gUnknown_083B6DB4 -_0809C7F4: - movs r3, 0x1 - mov r9, r3 -_0809C7F8: - mov r0, r9 - cmp r0, 0 - beq _0809C80A - movs r1, 0x6 - mov r8, r1 - movs r2, 0 - mov r10, r2 - movs r4, 0 - b _0809C83C -_0809C80A: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C83C - bl sub_809CD88 - movs r0, 0 - b _0809C84C -_0809C81C: - lsls r0, r4, 24 - movs r3, 0xFF - lsls r3, 24 - adds r0, r3 - lsrs r4, r0, 24 - cmp r0, 0 - bge _0809C82C - movs r4, 0x6 -_0809C82C: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r7, r1] - cmp r0, r1 - beq _0809C83C - movs r0, 0x1 - mov r8, r0 -_0809C83C: - mov r1, r8 - cmp r1, 0 - beq _0809C84A -_0809C842: - mov r0, r10 - adds r1, r4, 0 - bl sub_809AF18 -_0809C84A: - mov r0, r8 -_0809C84C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C664 - - thumb_func_start sub_809C85C -sub_809C85C: @ 809C85C - push {r4-r6,lr} - ldr r0, _0809C894 - ldr r2, [r0] - ldr r1, _0809C898 - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C89C - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809C8A0 - adds r2, r0 - strb r1, [r2] - ldr r1, _0809C8A4 - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - bne _0809C91A - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C8A8 - movs r4, 0x1 - movs r0, 0 - movs r5, 0x2 - b _0809C922 - .align 2, 0 -_0809C894: .4byte gUnknown_083B6DB4 -_0809C898: .4byte 0x000011df -_0809C89C: .4byte 0x000011de -_0809C8A0: .4byte 0x000011e3 -_0809C8A4: .4byte gMain -_0809C8A8: - ldrh r2, [r1, 0x2C] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _0809C8CC - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _0809C8DE - ldr r0, _0809C8D0 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C8E2 - movs r0, 0x80 - lsls r0, 2 - ands r0, r2 - cmp r0, 0 - beq _0809C8D4 -_0809C8CC: - movs r0, 0xA - b _0809C93E - .align 2, 0 -_0809C8D0: .4byte gSaveBlock2 -_0809C8D4: - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0809C8E2 -_0809C8DE: - movs r0, 0x9 - b _0809C93E -_0809C8E2: - ldrh r1, [r1, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C8FA - movs r0, 0 - bl sub_809A860 - bl sub_809CA8C - movs r0, 0x7 - b _0809C93E -_0809C8FA: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C906 - movs r0, 0x10 - b _0809C93E -_0809C906: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C916 - bl sub_809CD88 - movs r0, 0 - b _0809C93E -_0809C916: - movs r4, 0 - b _0809C93C -_0809C91A: - movs r4, 0x1 - movs r0, 0x3 - movs r5, 0 - strb r4, [r2] -_0809C922: - cmp r4, 0 - beq _0809C93C - lsls r6, r0, 24 - cmp r0, 0x2 - beq _0809C932 - movs r0, 0 - bl sub_809A860 -_0809C932: - lsrs r0, r6, 24 - lsls r1, r5, 24 - lsrs r1, 24 - bl sub_809AF18 -_0809C93C: - adds r0, r4, 0 -_0809C93E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809C85C - - thumb_func_start sub_809C944 -sub_809C944: @ 809C944 - push {r4-r7,lr} - ldr r0, _0809C988 - ldrb r0, [r0] - mov r12, r0 - ldr r7, _0809C98C - ldrb r3, [r7] - ldr r0, _0809C990 - ldr r1, [r0] - ldr r0, _0809C994 - adds r5, r1, r0 - movs r0, 0 - strb r0, [r5] - ldr r2, _0809C998 - adds r4, r1, r2 - strb r0, [r4] - adds r2, 0x5 - adds r1, r2 - strb r0, [r1] - ldr r6, _0809C99C - ldrh r2, [r6, 0x30] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _0809CA14 - movs r0, 0x88 - ands r0, r2 - cmp r0, 0 - beq _0809C9A0 - movs r6, 0x1 - movs r0, 0x2 - mov r12, r0 - movs r3, 0 - b _0809CA2A - .align 2, 0 -_0809C988: .4byte gUnknown_020384E4 -_0809C98C: .4byte gUnknown_020384E5 -_0809C990: .4byte gUnknown_083B6DB4 -_0809C994: .4byte 0x000011df -_0809C998: .4byte 0x000011de -_0809C99C: .4byte gMain -_0809C9A0: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _0809C9C0 - movs r6, 0x1 - lsls r0, r3, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r3, r0, 24 - cmp r0, 0 - bge _0809CA2C - movs r0, 0xFF - strb r0, [r5] - movs r3, 0x1 - b _0809CA2C -_0809C9C0: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _0809C9E0 - movs r6, 0x1 - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x1 - ble _0809CA2C - strb r6, [r5] - movs r3, 0 - b _0809CA2C -_0809C9E0: - ldrh r1, [r6, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C9F4 - movs r0, 0x4 - cmp r3, 0 - bne _0809CA3A - movs r0, 0x5 - b _0809CA3A -_0809C9F4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809CA00 - movs r0, 0x10 - b _0809CA3A -_0809CA00: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809CA10 - bl sub_809CD88 - movs r0, 0 - b _0809CA3A -_0809CA10: - movs r6, 0 - b _0809CA38 -_0809CA14: - movs r6, 0x1 - movs r0, 0 - mov r12, r0 - movs r0, 0xFF - strb r0, [r4] - movs r0, 0 - ldrsb r0, [r7, r0] - movs r3, 0x1D - cmp r0, 0 - bne _0809CA2A - movs r3, 0x18 -_0809CA2A: - strb r6, [r1] -_0809CA2C: - cmp r6, 0 - beq _0809CA38 - mov r0, r12 - adds r1, r3, 0 - bl sub_809AF18 -_0809CA38: - adds r0, r6, 0 -_0809CA3A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C944 - - thumb_func_start sub_809CA40 -sub_809CA40: @ 809CA40 - push {r4,r5,lr} - movs r3, 0 - ldr r0, _0809CA6C - ldr r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - beq _0809CA84 - ldr r5, _0809CA70 -_0809CA50: - lsls r0, r3, 3 - adds r2, r0, r4 - movs r1, 0x4 - ldrsb r1, [r2, r1] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r1, r0 - bne _0809CA74 - ldr r0, [r2] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - b _0809CA86 - .align 2, 0 -_0809CA6C: .4byte gUnknown_083BBBD4 -_0809CA70: .4byte gUnknown_020384E4 -_0809CA74: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r0, r3, 3 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - bne _0809CA50 -_0809CA84: - movs r0, 0 -_0809CA86: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809CA40 - - thumb_func_start sub_809CA8C -sub_809CA8C: @ 809CA8C - push {lr} - bl sub_809CDCC - movs r0, 0x9 - bl sub_809CDEC - movs r0, 0xA - bl sub_809CDEC - movs r0, 0xB - bl sub_809CDEC - movs r0, 0 - bl sub_809CDEC - pop {r0} - bx r0 - thumb_func_end sub_809CA8C - - thumb_func_start sub_809CAB0 -sub_809CAB0: @ 809CAB0 - push {lr} - bl sub_809CDCC - bl sub_809AB8C - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0809CAD4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - beq _0809CADE - cmp r0, 0x1 - bgt _0809CAD8 - cmp r0, 0 - beq _0809CAEA - b _0809CB24 - .align 2, 0 -_0809CAD4: .4byte gUnknown_083B6DB4 -_0809CAD8: - cmp r0, 0x2 - beq _0809CAF6 - b _0809CB24 -_0809CADE: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x1 - bl sub_809CDEC - b _0809CB28 -_0809CAEA: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x2 - bl sub_809CDEC - b _0809CB28 -_0809CAF6: - ldr r0, _0809CB0C - ldrb r0, [r0] - cmp r0, 0 - beq _0809CB18 - cmp r1, 0 - beq _0809CB10 - movs r0, 0x4 - bl sub_809CDEC - b _0809CB28 - .align 2, 0 -_0809CB0C: .4byte gUnknown_020384E6 -_0809CB10: - movs r0, 0x5 - bl sub_809CDEC - b _0809CB28 -_0809CB18: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x3 - bl sub_809CDEC - b _0809CB28 -_0809CB24: - movs r0, 0 - b _0809CB6E -_0809CB28: - movs r0, 0x6 - bl sub_809CDEC - ldr r0, _0809CB4C - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x2 - bne _0809CB5A - ldr r0, _0809CB50 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _0809CB54 - movs r0, 0x2 - bl sub_809CDEC - b _0809CB5A - .align 2, 0 -_0809CB4C: .4byte gUnknown_083B6DB4 -_0809CB50: .4byte gUnknown_020384E4 -_0809CB54: - movs r0, 0x1 - bl sub_809CDEC -_0809CB5A: - movs r0, 0x8 - bl sub_809CDEC - movs r0, 0x7 - bl sub_809CDEC - movs r0, 0 - bl sub_809CDEC - movs r0, 0x1 -_0809CB6E: - pop {r1} - bx r1 - thumb_func_end sub_809CAB0 - - thumb_func_start sub_809CB74 -sub_809CB74: @ 809CB74 - ldr r1, _0809CB90 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r1, [r1] - ldrh r1, [r1, 0x22] - adds r1, 0x14 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_0809CB90: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809CB74 - - thumb_func_start unref_sub_809CB94 -unref_sub_809CB94: @ 809CB94 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0809CBBC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809CBC8 - ldr r2, _0809CBC0 - ldr r0, _0809CBC4 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x50 - bl memcpy - b _0809CBF6 - .align 2, 0 -_0809CBBC: .4byte gUnknown_020384E4 -_0809CBC0: .4byte gPlayerParty -_0809CBC4: .4byte gUnknown_020384E5 -_0809CBC8: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0809CBFC - ldr r1, _0809CC00 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - lsls r2, r0, 2 - adds r2, r0 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r1, r3 - adds r1, 0x4 - adds r0, r4, 0 - movs r2, 0x50 - bl memcpy -_0809CBF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809CBFC: .4byte gPokemonStorage -_0809CC00: .4byte gUnknown_020384E5 - thumb_func_end unref_sub_809CB94 - - thumb_func_start sub_809CC04 -sub_809CC04: @ 809CC04 - push {r4-r7,lr} - sub sp, 0x34 - mov r1, sp - ldr r0, _0809CCB0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - add r4, sp, 0x18 - adds r1, r4, 0 - ldr r0, _0809CCB4 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - ldr r0, _0809CCB8 - bl IndexOfSpritePaletteTag - ldr r1, _0809CCBC - ldr r6, [r1] - ldr r4, _0809CCC0 - adds r7, r6, r4 - strb r0, [r7] - ldr r0, _0809CCC4 - bl IndexOfSpritePaletteTag - ldr r5, _0809CCC8 - adds r1, r6, r5 - strb r0, [r1] - ldr r0, _0809CCCC - ldrb r0, [r0] - ldr r1, _0809CCD0 - ldrb r1, [r1] - add r4, sp, 0x30 - mov r5, sp - adds r5, 0x32 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_809AACC - ldr r0, _0809CCD4 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0 - ldrsh r2, [r5, r3] - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0809CCE4 - movs r5, 0x8E - lsls r5, 5 - adds r4, r6, r5 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0809CCD8 - adds r1, r0 - str r1, [r4] - ldr r0, _0809CCDC - ldrb r0, [r0] - adds r0, r7, r0 - ldrb r2, [r0] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, _0809CCE0 - ldrb r0, [r0] - cmp r0, 0 - beq _0809CCEE - ldr r0, [r4] - movs r1, 0x3 - bl StartSpriteAnim - b _0809CCEE - .align 2, 0 -_0809CCB0: .4byte gHandCursorSpriteSheets -_0809CCB4: .4byte gHandCursorSpritePalettes -_0809CCB8: .4byte 0x0000dac6 -_0809CCBC: .4byte gUnknown_083B6DB4 -_0809CCC0: .4byte 0x000011e4 -_0809CCC4: .4byte 0x0000dad1 -_0809CCC8: .4byte 0x000011e5 -_0809CCCC: .4byte gUnknown_020384E4 -_0809CCD0: .4byte gUnknown_020384E5 -_0809CCD4: .4byte gSpriteTemplate_83BBC70 -_0809CCD8: .4byte gSprites -_0809CCDC: .4byte gUnknown_020384E9 -_0809CCE0: .4byte gUnknown_020384E6 -_0809CCE4: - movs r0, 0x8E - lsls r0, 5 - adds r1, r6, r0 - movs r0, 0 - str r0, [r1] -_0809CCEE: - ldr r0, _0809CD00 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809CD04 - movs r3, 0xC - movs r5, 0x1 - b _0809CD08 - .align 2, 0 -_0809CD00: .4byte gUnknown_020384E4 -_0809CD04: - movs r3, 0x14 - movs r5, 0x2 -_0809CD08: - ldr r0, _0809CD58 - movs r1, 0 - movs r2, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0809CD6C - ldr r0, _0809CD5C - ldr r0, [r0] - ldr r1, _0809CD60 - adds r4, r0, r1 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0809CD64 - adds r1, r0 - str r1, [r4] - lsls r3, r5, 2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldr r0, _0809CD68 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809CD78 - ldr r0, [r4] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809CD78 - .align 2, 0 -_0809CD58: .4byte gSpriteTemplate_83BBC88 -_0809CD5C: .4byte gUnknown_083B6DB4 -_0809CD60: .4byte 0x000011c4 -_0809CD64: .4byte gSprites -_0809CD68: .4byte gUnknown_020384E4 -_0809CD6C: - ldr r0, _0809CD80 - ldr r0, [r0] - ldr r2, _0809CD84 - adds r0, r2 - movs r1, 0 - str r1, [r0] -_0809CD78: - add sp, 0x34 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809CD80: .4byte gUnknown_083B6DB4 -_0809CD84: .4byte 0x000011c4 - thumb_func_end sub_809CC04 - - thumb_func_start sub_809CD88 -sub_809CD88: @ 809CD88 - push {lr} - ldr r2, _0809CDC0 - movs r1, 0 - ldrb r0, [r2] - cmp r0, 0 - bne _0809CD96 - movs r1, 0x1 -_0809CD96: - strb r1, [r2] - ldr r0, _0809CDC4 - ldr r0, [r0] - movs r3, 0x8E - lsls r3, 5 - adds r1, r0, r3 - ldr r3, [r1] - ldr r1, _0809CDC8 - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r3, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - pop {r0} - bx r0 - .align 2, 0 -_0809CDC0: .4byte gUnknown_020384E9 -_0809CDC4: .4byte gUnknown_083B6DB4 -_0809CDC8: .4byte 0x000011e4 - thumb_func_end sub_809CD88 - - thumb_func_start sub_809CDCC -sub_809CDCC: @ 809CDCC - ldr r0, _0809CDE0 - ldr r0, [r0] - ldr r2, _0809CDE4 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _0809CDE8 - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_0809CDE0: .4byte gUnknown_083B6DB4 -_0809CDE4: .4byte 0x000011b8 -_0809CDE8: .4byte 0x000011b9 - thumb_func_end sub_809CDCC - - thumb_func_start sub_809CDEC -sub_809CDEC: @ 809CDEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0809CE3C - ldr r5, [r0] - ldr r0, _0809CE40 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x6 - bhi _0809CE36 - adds r1, r0, 0 - lsls r1, 3 - movs r2, 0x8C - lsls r2, 5 - adds r1, r2 - adds r1, r5, r1 - ldr r2, _0809CE44 - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - str r3, [r1, 0x4] - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0x7 - lsrs r1, 3 - ldr r2, _0809CE48 - adds r0, r5, r2 - ldrb r2, [r0] - cmp r1, r2 - bls _0809CE30 - strb r1, [r0] -_0809CE30: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809CE36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809CE3C: .4byte gUnknown_083B6DB4 -_0809CE40: .4byte 0x000011b8 -_0809CE44: .4byte gUnknown_083BBCA0 -_0809CE48: .4byte 0x000011b9 - thumb_func_end sub_809CDEC - - thumb_func_start sub_809CE4C -sub_809CE4C: @ 809CE4C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0809CE70 - ldr r1, [r0] - ldr r3, _0809CE74 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bcs _0809CE7C - lsls r0, r2, 3 - ldr r2, _0809CE78 - adds r1, r2 - adds r1, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - b _0809CE80 - .align 2, 0 -_0809CE70: .4byte gUnknown_083B6DB4 -_0809CE74: .4byte 0x000011b8 -_0809CE78: .4byte 0x00001184 -_0809CE7C: - movs r0, 0x1 - negs r0, r0 -_0809CE80: - pop {r1} - bx r1 - thumb_func_end sub_809CE4C - - thumb_func_start sub_809CE84 -sub_809CE84: @ 809CE84 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, _0809CF20 - ldr r4, [r0] - ldr r0, _0809CF24 - adds r0, r4 - mov r8, r0 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0xE - subs r1, r0 - ldr r3, _0809CF28 - adds r6, r4, r3 - movs r0, 0 - mov r10, r0 - strh r1, [r6] - ldr r1, _0809CF2C - adds r1, r4 - mov r9, r1 - ldrb r1, [r1] - movs r0, 0x1C - subs r0, r1 - subs r3, 0x2 - adds r5, r4, r3 - strh r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - movs r2, 0x1D - movs r3, 0xF - bl MenuDrawTextWindow - ldrb r0, [r5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - ldrb r2, [r3] - movs r3, 0x8C - lsls r3, 5 - adds r4, r3 - adds r3, r4, 0 - bl PrintMenuItems - ldrb r1, [r5] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6] - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - mov r4, r8 - ldrb r3, [r4] - mov r0, r10 - str r0, [sp] - mov r4, r9 - ldrb r0, [r4] - str r0, [sp, 0x4] - movs r0, 0 - bl InitMenu - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809CF20: .4byte gUnknown_083B6DB4 -_0809CF24: .4byte 0x000011b8 -_0809CF28: .4byte 0x000011bc -_0809CF2C: .4byte 0x000011b9 - thumb_func_end sub_809CE84 - - thumb_func_start sub_809CF30 -sub_809CF30: @ 809CF30 - push {r4,r5,lr} - movs r5, 0x2 - negs r5, r5 - ldr r4, _0809CF6C - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809CF86 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809CF52 - movs r0, 0x5 - bl PlaySE - adds r5, 0x1 -_0809CF52: - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809CF70 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0809CF8E - .align 2, 0 -_0809CF6C: .4byte gMain -_0809CF70: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809CF8E - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0809CF8E -_0809CF86: - bl GetMenuCursorPos - lsls r0, 24 - lsrs r5, r0, 24 -_0809CF8E: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _0809CFB2 - bl sub_8072DEC - ldr r0, _0809CFD0 - ldr r1, [r0] - ldr r2, _0809CFD4 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect -_0809CFB2: - cmp r5, 0 - blt _0809CFC4 - ldr r0, _0809CFD0 - ldr r0, [r0] - lsls r1, r5, 3 - ldr r2, _0809CFD8 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] -_0809CFC4: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809CFD0: .4byte gUnknown_083B6DB4 -_0809CFD4: .4byte 0x000011ba -_0809CFD8: .4byte 0x00001184 - thumb_func_end sub_809CF30 - - thumb_func_start sub_809CFDC -sub_809CFDC: @ 809CFDC - ldr r3, _0809CFEC - str r0, [r3] - str r1, [r0] - movs r1, 0 - strb r2, [r0, 0x5] - strb r1, [r0, 0x4] - bx lr - .align 2, 0 -_0809CFEC: .4byte gUnknown_020384EC - thumb_func_end sub_809CFDC - - thumb_func_start sub_809CFF0 -sub_809CFF0: @ 809CFF0 - push {r4,r5,lr} - ldr r2, _0809D030 - ldr r1, [r2] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0809D02A - movs r4, 0 - ldrb r1, [r1, 0x4] - cmp r4, r1 - bcs _0809D022 - adds r5, r2, 0 -_0809D006: - ldr r0, [r5] - lsls r1, r4, 4 - ldr r0, [r0] - adds r0, r1 - ldr r1, [r0, 0xC] - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldrb r0, [r0, 0x4] - cmp r4, r0 - bcc _0809D006 -_0809D022: - ldr r0, _0809D030 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x4] -_0809D02A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D030: .4byte gUnknown_020384EC - thumb_func_end sub_809CFF0 - - thumb_func_start sub_809D034 -sub_809D034: @ 809D034 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - mov r9, r3 - ldr r0, [sp, 0x20] - ldr r3, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _0809D0A4 - ldr r2, [r0] - ldrb r0, [r2, 0x4] - adds r1, r0, 0 - ldrb r7, [r2, 0x5] - cmp r1, r7 - bcs _0809D0AC - adds r0, 0x1 - strb r0, [r2, 0x4] - lsls r0, r1, 4 - ldr r2, [r2] - adds r2, r0 - lsls r0, r4, 1 - strh r0, [r2, 0x8] - lsls r0, r6, 6 - add r0, r8 - mov r4, r10 - lsls r1, r4, 1 - adds r0, r1 - str r0, [r2, 0x4] - lsls r0, r3, 6 - add r0, r9 - mov r7, r12 - lsls r1, r7, 1 - adds r0, r1 - str r0, [r2] - strh r5, [r2, 0xA] - ldr r0, _0809D0A8 - str r0, [r2, 0xC] - movs r0, 0x1 - b _0809D0AE - .align 2, 0 -_0809D0A4: .4byte gUnknown_020384EC -_0809D0A8: .4byte sub_809D0BC -_0809D0AC: - movs r0, 0 -_0809D0AE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D034 - - thumb_func_start sub_809D0BC -sub_809D0BC: @ 809D0BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r6, [r0] - ldr r5, [r0, 0x4] - ldrh r7, [r0, 0xA] - ldrh r2, [r0, 0x8] - movs r4, 0 - cmp r4, r7 - bcs _0809D0F2 - lsrs r2, 1 - mov r8, r2 - ldr r0, _0809D100 - mov r9, r0 -_0809D0DA: - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r8 - mov r3, r9 - ands r2, r3 - bl CpuSet - adds r5, 0x40 - adds r6, 0x40 - adds r4, 0x1 - cmp r4, r7 - bcc _0809D0DA -_0809D0F2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D100: .4byte 0x001fffff - thumb_func_end sub_809D0BC - - thumb_func_start sub_809D104 -sub_809D104: @ 809D104 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, [sp, 0x18] - ldr r4, [sp, 0x1C] - ldr r6, [sp, 0x20] - mov r8, r6 - ldr r6, [sp, 0x24] - lsls r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r5, 16 - lsls r4, 16 - mov r7, r8 - lsls r7, 16 - lsls r6, 16 - lsrs r6, 16 - lsrs r4, 10 - adds r3, r4 - lsrs r5, 15 - adds r5, r3, r5 - lsls r3, r2, 6 - adds r3, r0, r3 - lsrs r1, 15 - adds r4, r3, r1 - adds r2, r6 - lsls r2, 6 - adds r6, r0, r2 - lsrs r2, r7, 15 - cmp r4, r6 - bcs _0809D15C - lsrs r7, r2, 1 - ldr r0, _0809D168 - mov r8, r0 -_0809D148: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - ands r2, r7 - bl CpuSet - adds r4, 0x40 - adds r5, 0x40 - cmp r4, r6 - bcc _0809D148 -_0809D15C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D168: .4byte 0x001fffff - thumb_func_end sub_809D104 - - thumb_func_start sub_809D16C -sub_809D16C: @ 809D16C - push {r4-r7,lr} - mov r12, r0 - ldr r0, [sp, 0x14] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0809D1B4 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - adds r2, r0, 0 - ldrb r7, [r1, 0x5] - cmp r2, r7 - bcs _0809D1BC - adds r0, 0x1 - strb r0, [r1, 0x4] - lsls r0, r2, 4 - ldr r1, [r1] - adds r1, r0 - lsls r0, r3, 1 - strh r0, [r1, 0x8] - lsls r0, r4, 5 - adds r0, r6 - lsls r0, 1 - add r0, r12 - str r0, [r1, 0x4] - strh r5, [r1, 0xA] - ldr r0, _0809D1B8 - str r0, [r1, 0xC] - movs r0, 0x1 - b _0809D1BE - .align 2, 0 -_0809D1B4: .4byte gUnknown_020384EC -_0809D1B8: .4byte sub_809D1C4 -_0809D1BC: - movs r0, 0 -_0809D1BE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D16C - - thumb_func_start sub_809D1C4 -sub_809D1C4: @ 809D1C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - movs r0, 0 - ldrh r1, [r6, 0xA] - cmp r0, r1 - bcs _0809D252 - movs r7, 0x80 - lsls r7, 5 - mov r5, sp - ldr r2, _0809D210 - mov r8, r2 - movs r1, 0x81 - lsls r1, 24 - mov r10, r1 -_0809D1EA: - ldr r2, [r6, 0x4] - ldrh r3, [r6, 0x8] - mov r12, r2 - adds r0, 0x1 - mov r9, r0 - cmp r3, r7 - bhi _0809D214 - movs r0, 0 - strh r0, [r5] - mov r2, sp - mov r0, r8 - str r2, [r0] - mov r1, r12 - str r1, [r0, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 - mov r1, r8 - b _0809D23C - .align 2, 0 -_0809D210: .4byte 0x040000d4 -_0809D214: - movs r4, 0 - strh r4, [r5] - ldr r1, _0809D264 - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _0809D268 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r7 - subs r3, r7 - cmp r3, r7 - bhi _0809D214 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 -_0809D23C: - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, r12 - adds r0, 0x40 - str r0, [r6, 0x4] - mov r1, r9 - lsls r0, r1, 16 - lsrs r0, 16 - ldrh r2, [r6, 0xA] - cmp r0, r2 - bcc _0809D1EA -_0809D252: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D264: .4byte 0x040000d4 -_0809D268: .4byte 0x81000800 - thumb_func_end sub_809D1C4 - - thumb_func_start unref_sub_809D26C -unref_sub_809D26C: @ 809D26C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - adds r6, r3, 0 - ldr r3, [sp, 0x2C] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, sp - ldr r4, _0809D2E0 - str r4, [sp] - ldr r5, _0809D2E4 - lsls r4, r0, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp, 0x4] - ldr r4, _0809D2E8 - str r4, [sp, 0x8] - ldr r4, _0809D2EC - str r4, [sp, 0xC] - str r1, [sp, 0x10] - ldr r1, _0809D2F0 - adds r0, r1 - ldr r4, _0809D2F4 - adds r1, r4, 0 - ldrb r0, [r0] - adds r1, r0 - mov r0, r8 - strh r1, [r0, 0x14] - lsls r2, 16 - asrs r2, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r6, 0 - bl sub_809D710 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0809D2F8 - adds r0, r1 - bl sub_809D638 - adds r0, r4, 0 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809D2E0: .4byte gOamData_83BC5E8 -_0809D2E4: .4byte gMonIconTable -_0809D2E8: .4byte gSpriteAnimTable_83BC62C -_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660 -_0809D2F0: .4byte gMonIconPaletteIndices -_0809D2F4: .4byte 0x0000dac0 -_0809D2F8: .4byte gSprites - thumb_func_end unref_sub_809D26C - - thumb_func_start sub_809D2FC -sub_809D2FC: @ 809D2FC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [sp, 0x48] - ldr r1, [sp, 0x4C] - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0809D38C - str r0, [sp, 0x18] - adds r0, r4, 0 - bl sub_809D4F4 - str r0, [sp, 0x1C] - ldr r0, _0809D390 - str r0, [sp, 0x20] - ldr r0, _0809D394 - str r0, [sp, 0x24] - str r5, [sp, 0x28] - ldr r0, _0809D398 - adds r0, r4, r0 - ldr r1, _0809D39C - adds r5, r1, 0 - ldrb r0, [r0] - adds r1, r5, r0 - add r0, sp, 0x2C - strh r1, [r0] - add r1, sp, 0x18 - mov r0, sp - movs r2, 0x18 - bl memcpy - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _0809D35A - mov r0, sp - strh r5, [r0, 0x14] -_0809D35A: - lsls r1, r7, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - mov r0, sp - mov r3, r8 - bl sub_809D710 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0809D3A0 - adds r0, r1 - bl sub_809D638 - adds r0, r4, 0 - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809D38C: .4byte gOamData_83BC5E8 -_0809D390: .4byte gSpriteAnimTable_83BC62C -_0809D394: .4byte gSpriteAffineAnimTable_83BC660 -_0809D398: .4byte gMonIconPaletteIndices -_0809D39C: .4byte 0x0000dac0 -_0809D3A0: .4byte gSprites - thumb_func_end sub_809D2FC - - thumb_func_start sub_809D3A4 -sub_809D3A4: @ 809D3A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - adds r6, r3, 0 - ldr r3, [sp, 0x2C] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, sp - ldr r4, _0809D418 - str r4, [sp] - ldr r5, _0809D41C - lsls r4, r0, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp, 0x4] - ldr r4, _0809D420 - str r4, [sp, 0x8] - ldr r4, _0809D424 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - ldr r1, _0809D428 - adds r0, r1 - ldr r4, _0809D42C - adds r1, r4, 0 - ldrb r0, [r0] - adds r1, r0 - mov r0, r8 - strh r1, [r0, 0x14] - lsls r2, 16 - asrs r2, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r6, 0 - bl sub_809D710 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0809D430 - adds r0, r1 - bl sub_809D638 - adds r0, r4, 0 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809D418: .4byte gOamData_83BC5E8 -_0809D41C: .4byte gMonIconTable -_0809D420: .4byte gSpriteAnimTable_83BC62C -_0809D424: .4byte gSpriteAffineAnimTable_83BC660 -_0809D428: .4byte gMonIconPaletteIndices -_0809D42C: .4byte 0x0000dac0 -_0809D430: .4byte gSprites - thumb_func_end sub_809D3A4 - - thumb_func_start mon_icon_convert_unown_species_id -mon_icon_convert_unown_species_id: @ 809D434 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, SPECIES_UNOWN - bne _0809D45E - adds r0, r1, 0 - bl sub_809D474 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0809D450 - movs r0, SPECIES_UNOWN - b _0809D45A -_0809D450: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_0809D45A: - adds r1, r0, 0 - b _0809D46C -_0809D45E: - movs r0, 0xCE - lsls r0, 1 - adds r1, r2, 0 - cmp r1, r0 - bls _0809D46C - movs r1, 0x82 - lsls r1, 1 -_0809D46C: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end mon_icon_convert_unown_species_id - - thumb_func_start sub_809D474 -sub_809D474: @ 809D474 - push {lr} - adds r2, r0, 0 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_809D474 - - thumb_func_start sub_809D4A8 -sub_809D4A8: @ 809D4A8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - mov r1, sp - bl sub_80A2D64 - lsls r0, 16 - lsrs r0, 16 - cmp r0, SPECIES_UNOWN - bne _0809D4DE - mov r0, sp - ldrh r0, [r0] - cmp r0, 0 - bne _0809D4CE - mov r1, sp - adds r0, SPECIES_UNOWN - b _0809D4D6 -_0809D4CE: - mov r1, sp - movs r2, 0xCE - lsls r2, 1 - adds r0, r2 -_0809D4D6: - strh r0, [r1] - mov r0, sp - ldrh r0, [r0] - b _0809D4EA -_0809D4DE: - adds r0, r4, 0 - movs r1, 0 - bl mon_icon_convert_unown_species_id - lsls r0, 16 - lsrs r0, 16 -_0809D4EA: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809D4A8 - - thumb_func_start sub_809D4F4 -sub_809D4F4: @ 809D4F4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl mon_icon_convert_unown_species_id - lsls r0, 16 - ldr r1, _0809D50C - lsrs r0, 14 - adds r0, r1 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_0809D50C: .4byte gMonIconTable - thumb_func_end sub_809D4F4 - - thumb_func_start sub_809D510 -sub_809D510: @ 809D510 - push {lr} - bl sub_809D7E8 - pop {r0} - bx r0 - thumb_func_end sub_809D510 - - thumb_func_start sub_809D51C -sub_809D51C: @ 809D51C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0809D53C -_0809D522: - lsls r0, r4, 3 - adds r0, r5 - bl LoadSpritePalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0809D522 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D53C: .4byte gMonIconPaletteTable - thumb_func_end sub_809D51C - - thumb_func_start unref_sub_809D540 -unref_sub_809D540: @ 809D540 - push {r4,lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bls _0809D552 - movs r1, 0x82 - lsls r1, 1 -_0809D552: - ldr r0, _0809D578 - adds r0, r1, r0 - ldrb r0, [r0] - ldr r1, _0809D57C - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809D572 - adds r0, r4, 0 - bl LoadSpritePalette -_0809D572: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809D578: .4byte gMonIconPaletteIndices -_0809D57C: .4byte gMonIconPaletteTable - thumb_func_end unref_sub_809D540 - - thumb_func_start sub_809D580 -sub_809D580: @ 809D580 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0809D5AC - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0809D5B0 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809D5A6 - adds r0, r4, 0 - bl LoadSpritePalette -_0809D5A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809D5AC: .4byte gMonIconPaletteIndices -_0809D5B0: .4byte gMonIconPaletteTable - thumb_func_end sub_809D580 - - thumb_func_start unref_sub_809D5B4 -unref_sub_809D5B4: @ 809D5B4 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0809D5D4 -_0809D5BA: - lsls r0, r4, 3 - adds r0, r5 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0809D5BA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D5D4: .4byte gMonIconPaletteTable - thumb_func_end unref_sub_809D5B4 - - thumb_func_start unref_sub_809D5D8 -unref_sub_809D5D8: @ 809D5D8 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bls _0809D5EA - movs r1, 0x82 - lsls r1, 1 -_0809D5EA: - ldr r0, _0809D600 - adds r0, r1, r0 - ldrb r0, [r0] - ldr r1, _0809D604 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_0809D600: .4byte gMonIconPaletteIndices -_0809D604: .4byte gMonIconPaletteTable - thumb_func_end unref_sub_809D5D8 - - thumb_func_start sub_809D608 -sub_809D608: @ 809D608 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0809D624 - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0809D628 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_0809D624: .4byte gMonIconPaletteIndices -_0809D628: .4byte gMonIconPaletteTable - thumb_func_end sub_809D608 - - thumb_func_start sub_809D62C -sub_809D62C: @ 809D62C - push {lr} - bl sub_809D638 - pop {r0} - bx r0 - thumb_func_end sub_809D62C - - thumb_func_start sub_809D638 -sub_809D638: @ 809D638 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - movs r7, 0 - adds r6, r4, 0 - adds r6, 0x2C - ldrb r2, [r6] - movs r0, 0x3F - mov r9, r0 - ands r0, r2 - cmp r0, 0 - bne _0809D6EC - movs r1, 0x2A - adds r1, r4 - mov r8, r1 - ldrb r1, [r1] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r5, r4, 0 - adds r5, 0x2B - ldrb r0, [r5] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - movs r1, 0 - ldrsh r3, [r0, r1] - movs r0, 0x2 - negs r0, r0 - cmp r3, r0 - beq _0809D682 - adds r0, 0x1 - cmp r3, r0 - bne _0809D686 - b _0809D700 -_0809D682: - strb r7, [r5] - b _0809D700 -_0809D686: - ldr r2, _0809D6E4 - ldrb r1, [r4, 0x3] - lsrs r1, 6 - lsls r1, 1 - ldrb r0, [r4, 0x1] - lsrs r0, 6 - lsls r0, 3 - adds r1, r0 - adds r1, r2 - ldrh r2, [r1] - adds r1, r2, 0 - muls r1, r3 - ldr r0, [r4, 0xC] - adds r0, r1 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r3, _0809D6E8 - adds r1, r3 - bl RequestSpriteCopy - mov r0, r8 - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r5] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - mov r1, r9 - ands r1, r0 - ldrb r2, [r6] - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldrb r7, [r5] - b _0809D700 - .align 2, 0 -_0809D6E4: .4byte gSpriteImageSizes -_0809D6E8: .4byte 0x06010000 -_0809D6EC: - lsls r0, r2, 26 - lsrs r0, 26 - subs r0, 0x1 - movs r1, 0x3F - ands r0, r1 - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r6] -_0809D700: - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D638 - - thumb_func_start sub_809D710 -sub_809D710: @ 809D710 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x38 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - str r0, [sp, 0x30] - ldr r2, _0809D7D8 - mov r0, r9 - ldr r6, [r0] - ldrb r1, [r6, 0x3] - lsrs r1, 6 - lsls r1, 1 - ldrb r0, [r6, 0x1] - lsrs r0, 6 - lsls r0, 3 - adds r1, r0 - adds r1, r2 - ldrh r2, [r1] - ldr r1, _0809D7DC - add r3, sp, 0x30 - ldr r0, [r3, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [r3, 0x4] - add r1, sp, 0x18 - ldr r0, _0809D7E0 - strh r0, [r1] - mov r0, r9 - ldrh r2, [r0, 0x14] - mov r0, sp - adds r0, 0x1A - strh r2, [r0] - str r6, [sp, 0x1C] - mov r2, r9 - ldr r0, [r2, 0x8] - str r0, [sp, 0x20] - str r3, [sp, 0x24] - ldr r0, [r2, 0xC] - str r0, [sp, 0x28] - ldr r0, [r2, 0x10] - str r0, [sp, 0x2C] - mov r0, sp - movs r2, 0x18 - bl memcpy - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, _0809D7E4 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r4, r3, r6 - adds r5, r4, 0 - adds r5, 0x2C - ldrb r1, [r5] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r5] - adds r4, 0x3F - ldrb r2, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r4] - adds r6, 0xC - adds r3, r6 - mov r2, r9 - ldr r1, [r2, 0x4] - str r1, [r3] - add sp, 0x38 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809D7D8: .4byte gSpriteImageSizes -_0809D7DC: .4byte 0xffff0000 -_0809D7E0: .4byte 0x0000ffff -_0809D7E4: .4byte gSprites - thumb_func_end sub_809D710 - - thumb_func_start sub_809D7E8 -sub_809D7E8: @ 809D7E8 - push {lr} - sub sp, 0x8 - movs r1, 0 - str r1, [sp] - ldr r3, _0809D81C - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r2, 1 - ldrb r1, [r0, 0x1] - lsrs r1, 6 - lsls r1, 3 - adds r2, r1 - adds r2, r3 - ldrh r3, [r2] - ldr r2, _0809D820 - ldr r1, [sp, 0x4] - ands r1, r2 - orrs r1, r3 - str r1, [sp, 0x4] - mov r1, sp - str r1, [r0, 0xC] - bl DestroySprite - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0809D81C: .4byte gSpriteImageSizes -_0809D820: .4byte 0xffff0000 - thumb_func_end sub_809D7E8 - - thumb_func_start sub_809D824 -sub_809D824: @ 809D824 - mov r12, r0 - adds r0, 0x2A - movs r3, 0 - strb r1, [r0] - mov r2, r12 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x40 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - mov r0, r12 - adds r0, 0x2B - strb r3, [r0] - bx lr - thumb_func_end sub_809D824 - - thumb_func_start sub_809D844 -sub_809D844: @ 809D844 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_809D844 - - thumb_func_start sub_809D85C -sub_809D85C: @ 809D85C - push {lr} - ldr r1, _0809D8A0 - ldr r0, _0809D8A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8A8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8AC - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8B8 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_0809D8A0: .4byte REG_BG1HOFS -_0809D8A4: .4byte gUnknown_030042C0 -_0809D8A8: .4byte gUnknown_030041B4 -_0809D8AC: .4byte gUnknown_03004288 -_0809D8B0: .4byte gUnknown_03004280 -_0809D8B4: .4byte gUnknown_030041B0 -_0809D8B8: .4byte gUnknown_030041B8 - thumb_func_end sub_809D85C - - thumb_func_start sub_809D8BC -sub_809D8BC: @ 809D8BC - push {r4-r7,lr} - ldr r4, [sp, 0x14] - lsls r4, 24 - lsrs r7, r4, 24 - ldr r6, _0809D904 - ldrb r4, [r6, 0x8] - movs r5, 0x80 - orrs r4, r5 - strb r4, [r6, 0x8] - ldr r5, _0809D908 - str r0, [r5] - movs r4, 0 - strb r7, [r5, 0x8] - strb r1, [r5, 0x9] - strb r2, [r5, 0xA] - str r3, [r5, 0x4] - adds r0, r5, 0 - adds r0, 0x74 - strb r4, [r0] - adds r1, r5, 0 - adds r1, 0x79 - movs r0, 0x4 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x7C - movs r1, 0 - strh r4, [r0] - adds r0, 0x4 - strb r1, [r0] - subs r0, 0x5 - strb r1, [r0] - cmp r7, 0x4 - bls _0809D90C - movs r0, 0x1 - strb r0, [r5, 0xE] - b _0809D90E - .align 2, 0 -_0809D904: .4byte gPaletteFade -_0809D908: .4byte 0x02018000 -_0809D90C: - strb r1, [r5, 0xE] -_0809D90E: - cmp r7, 0x6 - bhi _0809D9D6 - lsls r0, r7, 2 - ldr r1, _0809D91C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809D91C: .4byte _0809D920 - .align 2, 0 -_0809D920: - .4byte _0809D93C - .4byte _0809D9BC - .4byte _0809D992 - .4byte _0809D9D6 - .4byte _0809D966 - .4byte _0809D93C - .4byte _0809D9BC -_0809D93C: - adds r0, r5, 0 - adds r0, 0x75 - movs r1, 0 - strb r1, [r0] - adds r2, r5, 0 - adds r2, 0x76 - movs r0, 0x3 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x77 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x7E - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x7 - strb r0, [r1] - b _0809D9D6 -_0809D966: - adds r0, r5, 0 - adds r0, 0x75 - movs r1, 0 - strb r1, [r0] - adds r2, r5, 0 - adds r2, 0x76 - movs r0, 0x3 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x77 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r0, 0x6 - movs r1, 0x1 - strb r1, [r0] - adds r2, 0x9 - movs r0, 0x7 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x7B - b _0809D9D4 -_0809D992: - adds r1, r5, 0 - adds r1, 0x75 - movs r3, 0 - movs r0, 0x2 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x76 - movs r2, 0x3 - strb r2, [r0] - adds r0, 0x1 - movs r1, 0x1 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r0, 0x6 - strb r2, [r0] - adds r0, 0x1 - strb r3, [r0] - subs r0, 0x6 - strb r3, [r0] - b _0809D9D6 -_0809D9BC: - adds r1, r5, 0 - adds r1, 0x75 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x3 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x77 - movs r1, 0x1 - strb r1, [r0] - adds r0, 0x1 -_0809D9D4: - strb r1, [r0] -_0809D9D6: - adds r0, r5, 0 - adds r0, 0x75 - ldrb r0, [r0] - strb r0, [r5, 0xB] - ldr r0, _0809D9EC - bl SetMainCallback2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D9EC: .4byte sub_809DE44 - thumb_func_end sub_809D8BC - - thumb_func_start sub_809D9F0 -sub_809D9F0: @ 809D9F0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, [sp, 0x10] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 16 - lsrs r5, 16 - movs r4, 0x2 - str r4, [sp] - bl sub_809D8BC - ldr r0, _0809DA18 - adds r0, 0x7C - strh r5, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809DA18: .4byte 0x02018000 - thumb_func_end sub_809D9F0 - - thumb_func_start sub_809DA1C -sub_809DA1C: @ 809DA1C - push {lr} - ldr r0, _0809DA30 - ldrb r0, [r0, 0x8] - cmp r0, 0x6 - bhi _0809DA78 - lsls r0, 2 - ldr r1, _0809DA34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809DA30: .4byte 0x02018000 -_0809DA34: .4byte _0809DA38 - .align 2, 0 -_0809DA38: - .4byte _0809DA54 - .4byte _0809DA6C - .4byte _0809DA64 - .4byte _0809DA64 - .4byte _0809DA5C - .4byte _0809DA54 - .4byte _0809DA6C -_0809DA54: - ldr r0, _0809DA58 - b _0809DA6E - .align 2, 0 -_0809DA58: .4byte sub_809E19C -_0809DA5C: - ldr r0, _0809DA60 - b _0809DA6E - .align 2, 0 -_0809DA60: .4byte sub_809E19C -_0809DA64: - ldr r0, _0809DA68 - b _0809DA6E - .align 2, 0 -_0809DA68: .4byte sub_809EB40 -_0809DA6C: - ldr r0, _0809DA7C -_0809DA6E: - movs r1, 0 - bl CreateTask - ldr r1, _0809DA80 - strb r0, [r1, 0xF] -_0809DA78: - pop {r0} - bx r0 - .align 2, 0 -_0809DA7C: .4byte sub_809E3FC -_0809DA80: .4byte 0x02018000 - thumb_func_end sub_809DA1C - - thumb_func_start sub_809DA84 -sub_809DA84: @ 809DA84 - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _0809DAA4 - ldr r2, _0809DAA8 - adds r0, r1, r2 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x16 - bls _0809DA98 - b _0809DE00 -_0809DA98: - lsls r0, 2 - ldr r1, _0809DAAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809DAA4: .4byte gMain -_0809DAA8: .4byte 0x0000043c -_0809DAAC: .4byte _0809DAB0 - .align 2, 0 -_0809DAB0: - .4byte _0809DB0C - .4byte _0809DB18 - .4byte _0809DB2C - .4byte _0809DB32 - .4byte _0809DB80 - .4byte _0809DB94 - .4byte _0809DBA0 - .4byte _0809DBBC - .4byte _0809DBC8 - .4byte _0809DBDC - .4byte _0809DC2C - .4byte _0809DC48 - .4byte _0809DC5C - .4byte _0809DC90 - .4byte _0809DCB0 - .4byte _0809DCC4 - .4byte _0809DCF8 - .4byte _0809DD02 - .4byte _0809DD30 - .4byte _0809DD3C - .4byte _0809DD68 - .4byte _0809DD98 - .4byte _0809DDE0 -_0809DB0C: - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - b _0809DDE8 -_0809DB18: - bl remove_some_task - ldr r1, _0809DB24 - ldr r2, _0809DB28 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DB24: .4byte gMain -_0809DB28: .4byte 0x0000043c -_0809DB2C: - bl FreeAllSpritePalettes - b _0809DDE8 -_0809DB32: - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - movs r5, 0 - ldr r1, _0809DB74 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _0809DB78 - movs r7, 0x85 - lsls r7, 24 -_0809DB48: - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _0809DB48 - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0809DB7C - add r1, r12 - b _0809DDEE - .align 2, 0 -_0809DB74: .4byte 0x040000d4 -_0809DB78: .4byte 0x85000400 -_0809DB7C: .4byte 0x0000043c -_0809DB80: - bl sub_809DE64 - ldr r1, _0809DB8C - ldr r2, _0809DB90 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DB8C: .4byte gMain -_0809DB90: .4byte 0x0000043c -_0809DB94: - ldr r0, _0809DB9C - bl SetUpWindowConfig - b _0809DDE8 - .align 2, 0 -_0809DB9C: .4byte gWindowConfig_81E6E6C -_0809DBA0: - ldr r0, _0809DBB0 - bl MultistepInitMenuWindowBegin - ldr r1, _0809DBB4 - ldr r2, _0809DBB8 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DBB0: .4byte gWindowConfig_81E6E6C -_0809DBB4: .4byte gMain -_0809DBB8: .4byte 0x0000043c -_0809DBBC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _0809DBC6 - b _0809DE38 -_0809DBC6: - b _0809DDE8 -_0809DBC8: - bl sub_809DA1C - ldr r1, _0809DBD4 - ldr r2, _0809DBD8 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DBD4: .4byte gMain -_0809DBD8: .4byte 0x0000043c -_0809DBDC: - ldr r1, _0809DC08 - ldr r2, _0809DC0C - ldr r0, _0809DC10 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0809DC14 - str r1, [r0, 0x8] - ldr r1, [r0, 0x8] - ldr r1, _0809DC18 - ldr r2, _0809DC1C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0809DC20 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _0809DC24 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] - ldr r1, _0809DC28 - add r1, r12 - b _0809DDEE - .align 2, 0 -_0809DC08: .4byte gSummaryScreenTextTiles -_0809DC0C: .4byte 0x0600d000 -_0809DC10: .4byte 0x040000d4 -_0809DC14: .4byte 0x800000a0 -_0809DC18: .4byte gSummaryScreenButtonTiles -_0809DC1C: .4byte 0x0600d140 -_0809DC20: .4byte 0x80000080 -_0809DC24: .4byte 0x02018000 -_0809DC28: .4byte 0x0000043c -_0809DC2C: - bl sub_809DF00 - lsls r0, 24 - cmp r0, 0 - bne _0809DC38 - b _0809DE38 -_0809DC38: - ldr r0, _0809DC44 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] - b _0809DDE8 - .align 2, 0 -_0809DC44: .4byte 0x02018000 -_0809DC48: - bl sub_80A18C4 - ldr r1, _0809DC54 - ldr r2, _0809DC58 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DC54: .4byte gMain -_0809DC58: .4byte 0x0000043c -_0809DC5C: - ldr r4, _0809DC78 - adds r0, r4, 0 - bl sub_809F678 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - bne _0809DC7C - movs r0, 0 - bl sub_80A12D0 - b _0809DC82 - .align 2, 0 -_0809DC78: .4byte 0x02018010 -_0809DC7C: - movs r0, 0xA - bl sub_80A12D0 -_0809DC82: - ldr r0, _0809DC8C - bl sub_80A0EA4 - b _0809DDE8 - .align 2, 0 -_0809DC8C: .4byte 0x02018010 -_0809DC90: - bl sub_80A1950 - ldr r0, _0809DCA4 - bl sub_80A1D84 - ldr r1, _0809DCA8 - ldr r2, _0809DCAC - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DCA4: .4byte 0x02018010 -_0809DCA8: .4byte gMain -_0809DCAC: .4byte 0x0000043c -_0809DCB0: - ldr r4, _0809DCC0 - adds r0, r4, 0 - bl sub_80A1DE8 - adds r4, 0x64 - movs r0, 0 - strb r0, [r4] - b _0809DDE8 - .align 2, 0 -_0809DCC0: .4byte 0x02018010 -_0809DCC4: - ldr r4, _0809DCEC - adds r5, r4, 0 - adds r5, 0x64 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809F6B4 - subs r4, 0x10 - strb r0, [r4, 0xC] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809DCE0 - b _0809DE38 -_0809DCE0: - movs r0, 0 - strb r0, [r5] - ldr r1, _0809DCF0 - ldr r2, _0809DCF4 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DCEC: .4byte 0x02018010 -_0809DCF0: .4byte gMain -_0809DCF4: .4byte 0x0000043c -_0809DCF8: - bl sub_809E044 - bl sub_80A0EE8 - b _0809DDE8 -_0809DD02: - ldr r1, _0809DD20 - ldrb r0, [r1, 0xB] - cmp r0, 0x1 - bhi _0809DD18 - ldr r0, _0809DD24 - ldrb r1, [r1, 0xB] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0809DD18: - ldr r1, _0809DD28 - ldr r2, _0809DD2C - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DD20: .4byte 0x02018000 -_0809DD24: .4byte gUnknown_083C1580 -_0809DD28: .4byte gMain -_0809DD2C: .4byte 0x0000043c -_0809DD30: - ldr r0, _0809DD38 - bl sub_809FAC8 - b _0809DDE8 - .align 2, 0 -_0809DD38: .4byte 0x02018010 -_0809DD3C: - ldr r2, _0809DD58 - ldr r0, _0809DD5C - ldrb r1, [r0, 0xB] - lsls r1, 2 - adds r1, r2 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - ldr r1, _0809DD60 - ldr r2, _0809DD64 - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DD58: .4byte gUnknown_083C1598 -_0809DD5C: .4byte 0x02018000 -_0809DD60: .4byte gMain -_0809DD64: .4byte 0x0000043c -_0809DD68: - ldr r0, _0809DD84 - movs r1, 0x2D - bl GetMonData - adds r1, r0, 0 - cmp r1, 0 - beq _0809DD8C - ldr r1, _0809DD88 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - b _0809DDE8 - .align 2, 0 -_0809DD84: .4byte 0x02018010 -_0809DD88: .4byte gUnknown_030041B0 -_0809DD8C: - ldr r0, _0809DD94 - strh r1, [r0] - b _0809DDE8 - .align 2, 0 -_0809DD94: .4byte gUnknown_030041B0 -_0809DD98: - bl sub_809EBC4 - ldr r0, _0809DDB8 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0 - beq _0809DDBC - movs r0, 0 - movs r1, 0 - bl sub_80A1488 - movs r0, 0 - movs r1, 0 - bl sub_80A1654 - b _0809DDCC - .align 2, 0 -_0809DDB8: .4byte 0x02018000 -_0809DDBC: - movs r0, 0xA - movs r1, 0 - bl sub_80A1488 - movs r0, 0xA - movs r1, 0 - bl sub_80A1654 -_0809DDCC: - bl sub_80A0DD0 - ldr r1, _0809DDD8 - ldr r2, _0809DDDC - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DDD8: .4byte gMain -_0809DDDC: .4byte 0x0000043c -_0809DDE0: - bl sub_8055870 - cmp r0, 0x1 - beq _0809DE38 -_0809DDE8: - ldr r1, _0809DDF8 - ldr r0, _0809DDFC - adds r1, r0 -_0809DDEE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0809DE38 - .align 2, 0 -_0809DDF8: .4byte gMain -_0809DDFC: .4byte 0x0000043c -_0809DE00: - ldr r0, _0809DE2C - bl SetVBlankCallback - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r0, _0809DE30 - bl SetMainCallback2 - ldr r2, _0809DE34 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - movs r0, 0x1 - b _0809DE3A - .align 2, 0 -_0809DE2C: .4byte sub_809D85C -_0809DE30: .4byte sub_809D844 -_0809DE34: .4byte gPaletteFade -_0809DE38: - movs r0, 0 -_0809DE3A: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809DA84 - - thumb_func_start sub_809DE44 -sub_809DE44: @ 809DE44 - push {lr} -_0809DE46: - bl sub_809DA84 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809DE5E - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809DE46 -_0809DE5E: - pop {r0} - bx r0 - thumb_func_end sub_809DE44 - - thumb_func_start sub_809DE64 -sub_809DE64: @ 809DE64 - ldr r1, _0809DED0 - ldr r2, _0809DED4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0809DED8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0809DEDC - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0809DEE0 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0809DEE4 - movs r0, 0 - strh r0, [r1] - ldr r1, _0809DEE8 - strh r0, [r1] - ldr r1, _0809DEEC - strh r0, [r1] - ldr r1, _0809DEF0 - strh r0, [r1] - ldr r1, _0809DEF4 - strh r0, [r1] - ldr r1, _0809DEF8 - strh r0, [r1] - ldr r1, _0809DEFC - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x32 - strh r0, [r1] - subs r1, 0x50 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0809DED0: .4byte REG_BG0CNT -_0809DED4: .4byte 0x00001e08 -_0809DED8: .4byte 0x00004801 -_0809DEDC: .4byte 0x00004a02 -_0809DEE0: .4byte 0x00005c03 -_0809DEE4: .4byte gUnknown_030042C0 -_0809DEE8: .4byte gUnknown_030041B4 -_0809DEEC: .4byte gUnknown_03004288 -_0809DEF0: .4byte gUnknown_03004280 -_0809DEF4: .4byte gUnknown_030041B0 -_0809DEF8: .4byte gUnknown_030041B8 -_0809DEFC: .4byte REG_BG0HOFS - thumb_func_end sub_809DE64 - - thumb_func_start sub_809DF00 -sub_809DF00: @ 809DF00 - push {lr} - ldr r0, _0809DF18 - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0xC - bls _0809DF0E - b _0809E030 -_0809DF0E: - lsls r0, 2 - ldr r1, _0809DF1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809DF18: .4byte 0x02018000 -_0809DF1C: .4byte _0809DF20 - .align 2, 0 -_0809DF20: - .4byte _0809DF54 - .4byte _0809DF64 - .4byte _0809DF74 - .4byte _0809DF88 - .4byte _0809DF9C - .4byte _0809DFAC - .4byte _0809DFC4 - .4byte _0809DFD4 - .4byte _0809DFE0 - .4byte _0809DFEC - .4byte _0809DFF8 - .4byte _0809E004 - .4byte _0809E010 -_0809DF54: - ldr r0, _0809DF60 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _0809E030 - .align 2, 0 -_0809DF60: .4byte gStatusScreen_Gfx -_0809DF64: - ldr r0, _0809DF6C - ldr r1, _0809DF70 - b _0809DFB0 - .align 2, 0 -_0809DF6C: .4byte gUnknown_08E73508 -_0809DF70: .4byte 0x0600e000 -_0809DF74: - ldr r0, _0809DF80 - ldr r1, _0809DF84 - bl LZDecompressVram - b _0809E030 - .align 2, 0 -_0809DF80: .4byte gUnknown_08E74E88 -_0809DF84: .4byte 0x0600e800 -_0809DF88: - ldr r0, _0809DF94 - ldr r1, _0809DF98 - bl LZDecompressVram - b _0809E030 - .align 2, 0 -_0809DF94: .4byte gStatusScreen_Tilemap -_0809DF98: .4byte 0x06004800 -_0809DF9C: - ldr r0, _0809DFA4 - ldr r1, _0809DFA8 - b _0809DFB0 - .align 2, 0 -_0809DFA4: .4byte gUnknown_08E73E88 -_0809DFA8: .4byte 0x06005800 -_0809DFAC: - ldr r0, _0809DFBC - ldr r1, _0809DFC0 -_0809DFB0: - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - b _0809E030 - .align 2, 0 -_0809DFBC: .4byte gUnknown_08E74688 -_0809DFC0: .4byte 0x06006800 -_0809DFC4: - ldr r0, _0809DFD0 - movs r1, 0 - movs r2, 0xA0 - bl LoadCompressedPalette - b _0809E030 - .align 2, 0 -_0809DFD0: .4byte gStatusScreen_Pal -_0809DFD4: - ldr r0, _0809DFDC - bl LoadCompressedObjectPic - b _0809E030 - .align 2, 0 -_0809DFDC: .4byte gUnknown_083C11B8 -_0809DFE0: - ldr r0, _0809DFE8 - bl LoadCompressedObjectPic - b _0809E030 - .align 2, 0 -_0809DFE8: .4byte gUnknown_083C1270 -_0809DFEC: - ldr r0, _0809DFF4 - bl LoadCompressedObjectPic - b _0809E030 - .align 2, 0 -_0809DFF4: .4byte gUnknown_083C12F4 -_0809DFF8: - ldr r0, _0809E000 - bl LoadCompressedObjectPalette - b _0809E030 - .align 2, 0 -_0809E000: .4byte gUnknown_083C12FC -_0809E004: - ldr r0, _0809E00C - bl LoadCompressedObjectPalette - b _0809E030 - .align 2, 0 -_0809E00C: .4byte gUnknown_083C1278 -_0809E010: - ldr r0, _0809E028 - movs r1, 0xE8 - lsls r1, 1 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, _0809E02C - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _0809E03C - .align 2, 0 -_0809E028: .4byte gMoveTypes_Pal -_0809E02C: .4byte 0x02018000 -_0809E030: - ldr r1, _0809E040 - adds r1, 0x74 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_0809E03C: - pop {r1} - bx r1 - .align 2, 0 -_0809E040: .4byte 0x02018000 - thumb_func_end sub_809DF00 - - thumb_func_start sub_809E044 -sub_809E044: @ 809E044 - push {r4,r5,lr} - ldr r4, _0809E0F4 - adds r0, r4, 0 - movs r1, 0x81 - movs r2, 0x2 - bl LoadPalette - adds r5, r4, 0x2 - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0x8F - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0x89 - movs r2, 0x2 - bl LoadPalette - subs r5, 0x12 - adds r0, r5, 0 - movs r1, 0xD1 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0x8 - movs r1, 0xD3 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xD5 - movs r2, 0x4 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xD7 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0x14 - movs r1, 0xD9 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0xC - movs r1, 0xDB - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0x18 - movs r1, 0xDD - movs r2, 0x2 - bl LoadPalette - subs r5, 0x6 - adds r0, r5, 0 - movs r1, 0xDE - movs r2, 0x2 - bl LoadPalette - subs r4, 0x1A - adds r0, r4, 0 - movs r1, 0xDF - movs r2, 0x2 - bl LoadPalette - ldr r0, _0809E0F8 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xF9 - movs r2, 0x2 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C -_0809E0F8: .4byte gFontDefaultPalette - thumb_func_end sub_809E044 - - thumb_func_start sub_809E0FC -sub_809E0FC: @ 809E0FC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0809E134 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E138 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809E134: .4byte gTasks -_0809E138: .4byte sub_809E13C - thumb_func_end sub_809E0FC - - thumb_func_start sub_809E13C -sub_809E13C: @ 809E13C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8055870 - cmp r0, 0x1 - beq _0809E182 - ldr r0, _0809E188 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0809E182 - ldr r1, _0809E18C - ldr r4, _0809E190 - ldrb r0, [r4, 0x9] - strb r0, [r1] - bl ResetSpriteData - bl FreeAllSpritePalettes - bl StopCryAndClearCrySongs - ldr r0, _0809E194 - ldr r1, _0809E198 - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, [r4, 0x4] - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0809E182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E188: .4byte gPaletteFade -_0809E18C: .4byte gUnknown_020384F0 -_0809E190: .4byte 0x02018000 -_0809E194: .4byte gMPlay_BGM -_0809E198: .4byte 0x0000ffff - thumb_func_end sub_809E13C - - thumb_func_start sub_809E19C -sub_809E19C: @ 809E19C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809E1C8 - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0809E25A - ldr r5, _0809E1CC - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E1D0 - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_809F1B8 - b _0809E25A - .align 2, 0 -_0809E1C8: .4byte gPaletteFade -_0809E1CC: .4byte gMain -_0809E1D0: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E1E2 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809F1B8 - b _0809E25A -_0809E1E2: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0809E1F6 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809E202 -_0809E1F6: - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_809F134 - b _0809E25A -_0809E202: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0809E218 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809E222 -_0809E218: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809F134 - b _0809E25A -_0809E222: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E24C - ldr r5, _0809E248 - ldrb r0, [r5, 0xB] - cmp r0, 0x1 - bls _0809E23A - adds r0, r4, 0 - bl sub_809EA50 -_0809E23A: - ldrb r0, [r5, 0xB] - cmp r0, 0 - bne _0809E25A - adds r0, r4, 0 - bl sub_809E0FC - b _0809E25A - .align 2, 0 -_0809E248: .4byte 0x02018000 -_0809E24C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E25A - adds r0, r4, 0 - bl sub_809E0FC -_0809E25A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_809E19C - - thumb_func_start sub_809E260 -sub_809E260: @ 809E260 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809E29C - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E276 - b _0809E3EE -_0809E276: - ldr r5, _0809E2A0 - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E2AC - ldr r1, _0809E2A4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - subs r1, 0x5 - ldr r2, _0809E2A8 - adds r0, r4, 0 - bl sub_809E8F0 - b _0809E3EE - .align 2, 0 -_0809E29C: .4byte gPaletteFade -_0809E2A0: .4byte gMain -_0809E2A4: .4byte gTasks -_0809E2A8: .4byte 0x02018079 -_0809E2AC: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E2D8 - ldr r1, _0809E2D0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - ldr r2, _0809E2D4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809E3EE - .align 2, 0 -_0809E2D0: .4byte gTasks -_0809E2D4: .4byte 0x02018079 -_0809E2D8: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0809E2EC - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809E324 -_0809E2EC: - ldr r1, _0809E320 - ldrb r0, [r1, 0xB] - cmp r0, 0x3 - bne _0809E314 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809E308 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809E314 -_0809E308: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809E314: - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_809F134 - b _0809E3EE - .align 2, 0 -_0809E320: .4byte 0x02018000 -_0809E324: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0809E33A - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809E37C -_0809E33A: - ldr r1, _0809E378 - adds r2, r1, 0 - adds r2, 0x76 - ldrb r0, [r1, 0xB] - ldrb r2, [r2] - cmp r0, r2 - beq _0809E3EE - cmp r0, 0x2 - bne _0809E36C - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809E360 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809E36C -_0809E360: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809E36C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809F134 - b _0809E3EE - .align 2, 0 -_0809E378: .4byte 0x02018000 -_0809E37C: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E3D4 - adds r0, r4, 0 - bl sub_809F7D0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809E3A0 - ldr r0, _0809E3BC - adds r5, r0, 0 - adds r5, 0x79 - ldrb r0, [r5] - cmp r0, 0x4 - bne _0809E3C4 -_0809E3A0: - ldr r0, _0809E3BC - adds r1, r0, 0 - adds r1, 0x79 - ldrb r1, [r1] - adds r0, 0x7A - strb r1, [r0] - ldr r1, _0809E3C0 - ldrb r0, [r0] - strh r0, [r1] - adds r0, r4, 0 - bl sub_809E0FC - b _0809E3EE - .align 2, 0 -_0809E3BC: .4byte 0x02018000 -_0809E3C0: .4byte gUnknown_0202E8CE -_0809E3C4: - movs r0, 0x20 - bl PlaySE - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_809F9D0 - b _0809E3EE -_0809E3D4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E3EE - ldr r0, _0809E3F4 - adds r0, 0x7A - movs r1, 0x4 - strb r1, [r0] - ldr r0, _0809E3F8 - strh r1, [r0] - adds r0, r4, 0 - bl sub_809E0FC -_0809E3EE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E3F4: .4byte 0x02018000 -_0809E3F8: .4byte gUnknown_0202E8CE - thumb_func_end sub_809E260 - - thumb_func_start sub_809E3FC -sub_809E3FC: @ 809E3FC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r0, _0809E438 - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0809E502 - ldr r0, _0809E43C - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E448 - ldr r1, _0809E440 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - subs r1, 0x5 - ldr r2, _0809E444 - adds r0, r5, 0 - bl sub_809E8F0 - b _0809E502 - .align 2, 0 -_0809E438: .4byte gPaletteFade -_0809E43C: .4byte gMain -_0809E440: .4byte gTasks -_0809E444: .4byte 0x02018079 -_0809E448: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E474 - ldr r1, _0809E46C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - ldr r2, _0809E470 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809E502 - .align 2, 0 -_0809E46C: .4byte gTasks -_0809E470: .4byte 0x02018079 -_0809E474: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E4EE - ldr r4, _0809E4A8 - adds r6, r4, 0 - adds r6, 0x79 - ldrb r0, [r6] - cmp r0, 0x4 - beq _0809E4E0 - adds r0, r4, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - bne _0809E4E0 - adds r0, r4, 0 - adds r0, 0x10 - bl sub_809E508 - lsls r0, 24 - cmp r0, 0 - bne _0809E4AC - movs r0, 0x20 - bl PlaySE - b _0809E502 - .align 2, 0 -_0809E4A8: .4byte 0x02018000 -_0809E4AC: - movs r0, 0x5 - bl PlaySE - ldrb r1, [r6] - adds r0, r4, 0 - adds r0, 0x7A - strb r1, [r0] - movs r0, 0x1 - bl sub_80A1B40 - movs r0, 0x13 - bl sub_80A1A30 - ldr r1, _0809E4D8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E4DC - str r1, [r0] - b _0809E502 - .align 2, 0 -_0809E4D8: .4byte gTasks -_0809E4DC: .4byte sub_809E534 -_0809E4E0: - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl sub_809EAC8 - b _0809E502 -_0809E4EE: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E502 - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl sub_809EAC8 -_0809E502: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809E3FC - - thumb_func_start sub_809E508 -sub_809E508: @ 809E508 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0x1 -_0809E50E: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809F760 - lsls r0, 16 - cmp r0, 0 - beq _0809E520 - movs r0, 0x1 - b _0809E52C -_0809E520: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0809E50E - movs r0, 0 -_0809E52C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809E508 - - thumb_func_start sub_809E534 -sub_809E534: @ 809E534 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r3, 0 - ldr r0, _0809E564 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E570 - ldr r1, _0809E568 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x8] - subs r1, 0x4 - ldr r2, _0809E56C - adds r0, r3, 0 - bl sub_809E8F0 - b _0809E5C0 - .align 2, 0 -_0809E564: .4byte gMain -_0809E568: .4byte gTasks -_0809E56C: .4byte 0x0201807a -_0809E570: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809E59C - ldr r1, _0809E594 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x8] - ldr r2, _0809E598 - adds r0, r3, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809E5C0 - .align 2, 0 -_0809E594: .4byte gTasks -_0809E598: .4byte 0x0201807a -_0809E59C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E5AE - adds r0, r3, 0 - movs r1, 0x1 - bl sub_809E83C - b _0809E5C0 -_0809E5AE: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E5C0 - movs r1, 0x1 - negs r1, r1 - adds r0, r2, 0 - bl sub_809E83C -_0809E5C0: - pop {r0} - bx r0 - thumb_func_end sub_809E534 - - thumb_func_start sub_809E5C4 -sub_809E5C4: @ 809E5C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r1, _0809E6D0 - ldr r5, [r1] - ldrb r2, [r1, 0x9] - movs r0, 0x64 - muls r0, r2 - adds r5, r0 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - mov r8, r0 - adds r1, 0x7A - ldrb r6, [r1] - adds r0, 0xD - str r0, [sp, 0x8] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - bl GetMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r2, r6, 0 - adds r2, 0xD - str r2, [sp, 0xC] - adds r0, r5, 0 - adds r1, r2, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - mov r3, r8 - adds r3, 0x11 - str r3, [sp, 0x10] - adds r0, r5, 0 - adds r1, r3, 0 - bl GetMonData - mov r7, sp - adds r7, 0x5 - str r7, [sp, 0x18] - strb r0, [r7] - adds r0, r6, 0 - adds r0, 0x11 - str r0, [sp, 0x1C] - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - bl GetMonData - add r1, sp, 0x4 - mov r10, r1 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x15 - bl GetMonData - mov r4, sp - adds r4, 0x6 - strb r0, [r4] - ldr r1, _0809E6D4 - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r4] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - mov r7, r8 - lsls r7, 1 - mov r8, r7 - asrs r2, r7 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r6, 1 - asrs r1, r6 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r4] - ldrb r0, [r4] - bics r0, r3 - strb r0, [r4] - lsls r2, r6 - mov r0, r8 - lsls r1, r0 - adds r2, r1 - ldrb r0, [r4] - orrs r0, r2 - strb r0, [r4] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - mov r2, sp - bl SetMonData - adds r0, r5, 0 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl SetMonData - adds r0, r5, 0 - ldr r1, [sp, 0x10] - mov r2, r10 - bl SetMonData - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x15 - adds r2, r4, 0 - bl SetMonData - 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 -_0809E6D0: .4byte 0x02018000 -_0809E6D4: .4byte gUnknown_08208238 - thumb_func_end sub_809E5C4 - - thumb_func_start sub_809E6D8 -sub_809E6D8: @ 809E6D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r2, _0809E7E8 - ldr r5, [r2] - ldrb r1, [r2, 0x9] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r5, r0 - adds r0, r2, 0 - adds r0, 0x79 - ldrb r0, [r0] - mov r8, r0 - adds r2, 0x7A - ldrb r6, [r2] - adds r0, 0xD - str r0, [sp, 0x8] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - bl GetBoxMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r2, r6, 0 - adds r2, 0xD - str r2, [sp, 0xC] - adds r0, r5, 0 - adds r1, r2, 0 - bl GetBoxMonData - mov r1, sp - strh r0, [r1] - mov r3, r8 - adds r3, 0x11 - str r3, [sp, 0x10] - adds r0, r5, 0 - adds r1, r3, 0 - bl GetBoxMonData - mov r7, sp - adds r7, 0x5 - str r7, [sp, 0x18] - strb r0, [r7] - adds r0, r6, 0 - adds r0, 0x11 - str r0, [sp, 0x1C] - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - bl GetBoxMonData - add r1, sp, 0x4 - mov r10, r1 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x15 - bl GetBoxMonData - mov r4, sp - adds r4, 0x6 - strb r0, [r4] - ldr r1, _0809E7EC - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r4] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - mov r7, r8 - lsls r7, 1 - mov r8, r7 - asrs r2, r7 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r6, 1 - asrs r1, r6 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r4] - ldrb r0, [r4] - bics r0, r3 - strb r0, [r4] - lsls r2, r6 - mov r0, r8 - lsls r1, r0 - adds r2, r1 - ldrb r0, [r4] - orrs r0, r2 - strb r0, [r4] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - mov r2, sp - bl SetBoxMonData - adds r0, r5, 0 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl SetBoxMonData - adds r0, r5, 0 - ldr r1, [sp, 0x10] - mov r2, r10 - bl SetBoxMonData - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl SetBoxMonData - adds r0, r5, 0 - movs r1, 0x15 - adds r2, r4, 0 - bl SetBoxMonData - 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 -_0809E7E8: .4byte 0x02018000 -_0809E7EC: .4byte gUnknown_08208238 - thumb_func_end sub_809E6D8 - - thumb_func_start sub_809E7F0 -sub_809E7F0: @ 809E7F0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_809F5F8 - lsls r0, 24 - cmp r0, 0 - beq _0809E828 - ldr r1, _0809E830 - adds r2, r1, 0 - adds r2, 0x74 - movs r0, 0 - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0x10 - adds r1, 0x79 - bl sub_80A0428 - ldr r1, _0809E834 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E838 - str r1, [r0] - adds r0, r4, 0 - bl BgFrame_FillTileMap -_0809E828: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809E830: .4byte 0x02018000 -_0809E834: .4byte gTasks -_0809E838: .4byte sub_809E3FC - thumb_func_end sub_809E7F0 - - thumb_func_start sub_809E83C -sub_809E83C: @ 809E83C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x13 - bl sub_80A1B1C - movs r0, 0 - bl sub_80A1B40 - cmp r4, 0x1 - bne _0809E8C0 - ldr r1, _0809E87C - adds r0, r1, 0 - adds r0, 0x79 - adds r2, r1, 0 - adds r2, 0x7A - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - beq _0809E8CA - ldrb r0, [r1, 0xE] - cmp r0, 0 - bne _0809E880 - bl sub_809E5C4 - b _0809E884 - .align 2, 0 -_0809E87C: .4byte 0x02018000 -_0809E880: - bl sub_809E6D8 -_0809E884: - ldr r4, _0809E8B4 - adds r0, r4, 0 - adds r0, 0x7A - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x79 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x10 - bl sub_809F678 - adds r1, r4, 0 - adds r1, 0x74 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0809E8B8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E8BC - str r1, [r0] - b _0809E8DE - .align 2, 0 -_0809E8B4: .4byte 0x02018000 -_0809E8B8: .4byte gTasks -_0809E8BC: .4byte sub_809E7F0 -_0809E8C0: - ldr r0, _0809E8E4 - adds r1, r0, 0 - adds r1, 0x69 - bl sub_80A0428 -_0809E8CA: - ldr r0, _0809E8E8 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0809E8EC - str r0, [r1] - adds r0, r5, 0 - bl BgFrame_FillTileMap -_0809E8DE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E8E4: .4byte 0x02018010 -_0809E8E8: .4byte gTasks -_0809E8EC: .4byte sub_809E3FC - thumb_func_end sub_809E83C - - thumb_func_start sub_809E8F0 -sub_809E8F0: @ 809E8F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r1, 0 - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x5 - bl PlaySE - mov r1, r9 - ldrb r6, [r1] - ldr r1, _0809E944 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r2, 0 - lsls r4, 24 - asrs r4, 24 - mov r10, r4 - lsls r7, r0, 24 -_0809E930: - lsls r0, r6, 24 - asrs r0, 24 - add r0, r10 - lsls r0, 24 - lsrs r6, r0, 24 - asrs r1, r0, 24 - cmp r0, r7 - ble _0809E948 - movs r6, 0 - b _0809E94E - .align 2, 0 -_0809E944: .4byte gTasks -_0809E948: - cmp r1, 0 - bge _0809E94E - lsrs r6, r7, 24 -_0809E94E: - lsls r4, r6, 24 - lsrs r1, r4, 24 - ldr r0, _0809EA10 - str r2, [sp, 0x4] - bl sub_809F760 - lsls r0, 16 - adds r5, r4, 0 - ldr r2, [sp, 0x4] - cmp r0, 0 - bne _0809E97A - asrs r0, r5, 24 - cmp r0, 0x4 - beq _0809E97A - lsls r0, r2, 24 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _0809E930 -_0809E97A: - mov r1, r9 - ldrb r0, [r1] - cmp r0, 0x4 - bne _0809E996 - asrs r0, r5, 24 - cmp r0, 0x4 - beq _0809E996 - ldr r0, _0809EA14 - adds r0, 0x7C - ldrh r0, [r0] - mov r2, r8 - lsls r7, r2, 2 - cmp r0, 0 - beq _0809E9AC -_0809E996: - ldr r2, _0809EA18 - mov r3, r8 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r7, r1, 0 - cmp r0, 0x1 - bne _0809E9D0 -_0809E9AC: - lsrs r4, r5, 24 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_80A1488 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_80A1654 - ldr r1, _0809EA18 - mov r3, r8 - adds r0, r7, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x22] - movs r0, 0 - str r0, [sp] -_0809E9D0: - mov r1, r9 - ldrb r0, [r1] - cmp r0, 0x4 - beq _0809E9FE - asrs r0, r5, 24 - cmp r0, 0x4 - bne _0809E9FE - ldr r0, _0809EA14 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - bne _0809E9FE - movs r4, 0x2 - negs r4, r4 - lsrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A1488 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A1654 -_0809E9FE: - mov r2, r9 - strb r6, [r2] - ldr r0, _0809EA1C - cmp r9, r0 - bne _0809EA20 - movs r0, 0 - bl sub_80A1C30 - b _0809EA26 - .align 2, 0 -_0809EA10: .4byte 0x02018010 -_0809EA14: .4byte 0x02018000 -_0809EA18: .4byte gTasks -_0809EA1C: .4byte 0x02018079 -_0809EA20: - movs r0, 0x1 - bl sub_80A1C30 -_0809EA26: - ldr r3, [sp] - cmp r3, 0 - beq _0809EA34 - ldr r0, _0809EA4C - mov r1, r9 - bl sub_80A0428 -_0809EA34: - mov r0, r8 - bl BgFrame_FillTileMap - 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 -_0809EA4C: .4byte 0x02018010 - thumb_func_end sub_809E8F0 - - thumb_func_start sub_809EA50 -sub_809EA50: @ 809EA50 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r4, _0809EABC - adds r1, r4, 0 - adds r1, 0x79 - movs r0, 0 - strb r0, [r1] - movs r0, 0x2 - movs r1, 0 - bl sub_80A1488 - movs r0, 0x2 - movs r1, 0 - bl sub_80A1654 - adds r0, r4, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - bne _0809EA8C - adds r1, r4, 0 - adds r1, 0x7F - movs r0, 0x5 - strb r0, [r1] - bl sub_80A0DD0 -_0809EA8C: - movs r0, 0 - bl sub_80A16CC - adds r0, r4, 0 - adds r0, 0x10 - bl sub_80A029C - movs r0, 0x9 - bl sub_80A1A30 - ldr r1, _0809EAC0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809EAC4 - str r1, [r0] - adds r0, r5, 0 - bl BgFrame_FillTileMap - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809EABC: .4byte 0x02018000 -_0809EAC0: .4byte gTasks -_0809EAC4: .4byte sub_809E3FC - thumb_func_end sub_809EA50 - - thumb_func_start sub_809EAC8 -sub_809EAC8: @ 809EAC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0809EB34 - adds r0, r6, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - beq _0809EAEE - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1488 - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1654 -_0809EAEE: - movs r0, 0x9 - bl sub_80A1B1C - movs r0, 0x1 - bl sub_80A16CC - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1C - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0xB - movs r1, 0xF - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r1, r6, 0 - adds r1, 0x7F - movs r0, 0x6 - strb r0, [r1] - bl sub_80A0DD0 - ldr r1, _0809EB38 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809EB3C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809EB34: .4byte 0x02018000 -_0809EB38: .4byte gTasks -_0809EB3C: .4byte sub_809E19C - thumb_func_end sub_809EAC8 - - thumb_func_start sub_809EB40 -sub_809EB40: @ 809EB40 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0809EB6C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0809EB74 - cmp r0, 0x5 - bne _0809EBA4 - movs r0, 0x9 - bl sub_80A1A30 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _0809EB70 - str r0, [r4] - b _0809EBB4 - .align 2, 0 -_0809EB6C: .4byte gTasks -_0809EB70: .4byte sub_809E260 -_0809EB74: - ldr r4, _0809EBBC - adds r6, r4, 0 - adds r6, 0x79 - strb r0, [r6] - adds r0, r4, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809EB96 - movs r0, 0xA - movs r1, 0 - bl sub_80A1488 - ldrb r1, [r6] - movs r0, 0xA - bl sub_80A1654 -_0809EB96: - movs r0, 0 - bl sub_80A16CC - adds r0, r4, 0 - adds r0, 0x10 - bl sub_80A029C -_0809EBA4: - ldr r0, _0809EBC0 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0809EBB4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809EBBC: .4byte 0x02018000 -_0809EBC0: .4byte gTasks - thumb_func_end sub_809EB40 - - thumb_func_start sub_809EBC4 -sub_809EBC4: @ 809EBC4 - push {r4,lr} - ldr r4, _0809EC28 - ldrb r0, [r4, 0xB] - cmp r0, 0 - beq _0809EC22 - bl sub_80A0EE8 - ldr r0, _0809EC2C - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - strh r1, [r0] - ldrb r0, [r4, 0xB] - cmp r0, 0x1 - bne _0809EBF4 - ldr r2, _0809EC30 - ldrh r1, [r2] - ldr r0, _0809EC34 - ands r0, r1 - movs r3, 0x80 - lsls r3, 4 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EBF4: - ldrb r3, [r4, 0xB] - cmp r3, 0x2 - bne _0809EC0C - ldr r2, _0809EC30 - ldrh r1, [r2] - ldr r0, _0809EC34 - ands r0, r1 - movs r4, 0xA0 - lsls r4, 4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EC0C: - cmp r3, 0x3 - bne _0809EC22 - ldr r2, _0809EC30 - ldrh r1, [r2] - ldr r0, _0809EC34 - ands r0, r1 - movs r3, 0xC0 - lsls r3, 4 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EC22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809EC28: .4byte 0x02018000 -_0809EC2C: .4byte gUnknown_030042C0 -_0809EC30: .4byte REG_BG1CNT -_0809EC34: .4byte 0x0000e0ff - thumb_func_end sub_809EBC4 - - thumb_func_start sub_809EC38 -sub_809EC38: @ 809EC38 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0809EC5C - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x5 - bls _0809EC52 - b _0809EE64 -_0809EC52: - lsls r0, 2 - ldr r1, _0809EC60 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EC5C: .4byte gUnknown_03004B28 -_0809EC60: .4byte _0809EC64 - .align 2, 0 -_0809EC64: - .4byte _0809EC7C - .4byte _0809ED14 - .4byte _0809ED98 - .4byte _0809EE12 - .4byte _0809EE1C - .4byte _0809EE4C -_0809EC7C: - ldr r1, _0809ECB8 - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809ECC8 - ldrb r3, [r1, 0xB] - cmp r3, 0 - beq _0809EC98 - ldr r1, _0809ECBC - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] -_0809EC98: - cmp r3, 0x1 - bne _0809ECAE - ldr r2, _0809ECC0 - ldrh r1, [r2] - ldr r0, _0809ECC4 - ands r0, r1 - movs r4, 0x80 - lsls r4, 4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809ECAE: - cmp r3, 0x2 - beq _0809ECB4 - b _0809EE3A -_0809ECB4: - ldr r2, _0809ECC0 - b _0809ECF6 - .align 2, 0 -_0809ECB8: .4byte 0x02018000 -_0809ECBC: .4byte gUnknown_03004288 -_0809ECC0: .4byte REG_BG2CNT -_0809ECC4: .4byte 0x0000e0ff -_0809ECC8: - ldrb r3, [r1, 0xB] - cmp r3, 0 - beq _0809ECD8 - ldr r1, _0809ED08 - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] -_0809ECD8: - cmp r3, 0x1 - bne _0809ECEE - ldr r2, _0809ED0C - ldrh r1, [r2] - ldr r0, _0809ED10 - ands r0, r1 - movs r4, 0x80 - lsls r4, 4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809ECEE: - cmp r3, 0x2 - beq _0809ECF4 - b _0809EE3A -_0809ECF4: - ldr r2, _0809ED0C -_0809ECF6: - ldrh r1, [r2] - ldr r0, _0809ED10 - ands r0, r1 - movs r3, 0xA0 - lsls r3, 4 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] - b _0809EE3A - .align 2, 0 -_0809ED08: .4byte gUnknown_030042C0 -_0809ED0C: .4byte REG_BG1CNT -_0809ED10: .4byte 0x0000e0ff -_0809ED14: - ldr r0, _0809ED48 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809ED5C - ldr r1, _0809ED4C - ldrh r0, [r1] - subs r0, 0x20 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809ED2E - b _0809EE64 -_0809ED2E: - ldr r3, _0809ED50 - ldrh r2, [r3] - ldr r1, _0809ED54 - adds r0, r1, 0 - ands r0, r2 - adds r0, 0x2 - strh r0, [r3] - ldr r2, _0809ED58 - ldrh r0, [r2] - ands r1, r0 - adds r1, 0x1 - strh r1, [r2] - b _0809EE3A - .align 2, 0 -_0809ED48: .4byte 0x02018000 -_0809ED4C: .4byte gUnknown_030042C0 -_0809ED50: .4byte REG_BG1CNT -_0809ED54: .4byte 0x0000fffc -_0809ED58: .4byte REG_BG2CNT -_0809ED5C: - ldr r1, _0809ED88 - ldrh r0, [r1] - subs r0, 0x20 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809ED6C - b _0809EE64 -_0809ED6C: - ldr r3, _0809ED8C - ldrh r2, [r3] - ldr r1, _0809ED90 - adds r0, r1, 0 - ands r0, r2 - adds r0, 0x1 - strh r0, [r3] - ldr r2, _0809ED94 - ldrh r0, [r2] - ands r1, r0 - adds r1, 0x2 - strh r1, [r2] - b _0809EE3A - .align 2, 0 -_0809ED88: .4byte gUnknown_03004288 -_0809ED8C: .4byte REG_BG1CNT -_0809ED90: .4byte 0x0000fffc -_0809ED94: .4byte REG_BG2CNT -_0809ED98: - ldr r1, _0809EDD4 - ldrb r3, [r1, 0xB] - adds r0, r3, 0x1 - adds r2, r1, 0 - adds r2, 0x7E - strb r0, [r2] - ldrb r2, [r1, 0x8] - subs r0, r2, 0x2 - lsls r0, 24 - lsrs r0, 24 - adds r5, r1, 0 - cmp r0, 0x1 - bhi _0809EDD8 - adds r1, 0x7F - movs r0, 0 - strb r0, [r1] - adds r4, r5, 0 - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A029C - adds r5, 0x79 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A0428 - ldrb r0, [r5] - bl sub_80A00F4 - b _0809EE3A - .align 2, 0 -_0809EDD4: .4byte 0x02018000 -_0809EDD8: - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0809EDFA - adds r0, r5, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - beq _0809EDF2 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0809EDFA -_0809EDF2: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x6 - b _0809EE0E -_0809EDFA: - ldrb r0, [r5, 0xB] - cmp r0, 0 - bne _0809EE08 - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x7 - b _0809EE0E -_0809EE08: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0 -_0809EE0E: - strb r0, [r1] - b _0809EE3A -_0809EE12: - bl sub_80A0EE8 - bl sub_80A0DD0 - b _0809EE3A -_0809EE1C: - ldr r0, _0809EE44 - ldr r4, _0809EE48 - ldrb r1, [r4, 0xB] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - adds r4, 0x80 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] -_0809EE3A: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _0809EE64 - .align 2, 0 -_0809EE44: .4byte gUnknown_083C1598 -_0809EE48: .4byte 0x02018000 -_0809EE4C: - bl sub_8055870 - cmp r0, 0x1 - beq _0809EE64 - ldr r1, _0809EE6C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809EE70 - ldr r1, [r1] - str r1, [r0] -_0809EE64: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809EE6C: .4byte gTasks -_0809EE70: .4byte gUnknown_03005CF0 - thumb_func_end sub_809EC38 - - thumb_func_start sub_809EE74 -sub_809EE74: @ 809EE74 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0809EE98 - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x6 - bls _0809EE8E - b _0809F0C0 -_0809EE8E: - lsls r0, 2 - ldr r1, _0809EE9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EE98: .4byte gUnknown_03004B28 -_0809EE9C: .4byte _0809EEA0 - .align 2, 0 -_0809EEA0: - .4byte _0809EEBC - .4byte _0809EEE0 - .4byte _0809EFB4 - .4byte _0809EFF4 - .4byte _0809F06E - .4byte _0809F078 - .4byte _0809F0A8 -_0809EEBC: - ldr r0, _0809EECC - adds r0, 0x80 - ldrb r1, [r0] - cmp r1, 0 - bne _0809EED4 - ldr r0, _0809EED0 - strh r1, [r0] - b _0809F096 - .align 2, 0 -_0809EECC: .4byte 0x02018000 -_0809EED0: .4byte gUnknown_03004288 -_0809EED4: - ldr r1, _0809EEDC - movs r0, 0 - strh r0, [r1] - b _0809F096 - .align 2, 0 -_0809EEDC: .4byte gUnknown_030042C0 -_0809EEE0: - ldr r1, _0809EF30 - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809EF4C - ldrb r3, [r1, 0xB] - cmp r3, 0x1 - bne _0809EF02 - ldr r2, _0809EF34 - ldrh r1, [r2] - ldr r0, _0809EF38 - ands r0, r1 - ldr r4, _0809EF3C - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF02: - cmp r3, 0x2 - bne _0809EF16 - ldr r2, _0809EF34 - ldrh r1, [r2] - ldr r0, _0809EF38 - ands r0, r1 - ldr r4, _0809EF40 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF16: - cmp r3, 0x3 - bne _0809EF2A - ldr r2, _0809EF34 - ldrh r1, [r2] - ldr r0, _0809EF38 - ands r0, r1 - ldr r3, _0809EF44 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EF2A: - ldr r2, _0809EF48 - b _0809EF8C - .align 2, 0 -_0809EF30: .4byte 0x02018000 -_0809EF34: .4byte REG_BG2CNT -_0809EF38: .4byte 0x0000e0fc -_0809EF3C: .4byte 0x00000801 -_0809EF40: .4byte 0x00000a01 -_0809EF44: .4byte 0x00000c01 -_0809EF48: .4byte REG_BG1CNT -_0809EF4C: - ldrb r3, [r1, 0xB] - cmp r3, 0x1 - bne _0809EF62 - ldr r2, _0809EF98 - ldrh r1, [r2] - ldr r0, _0809EF9C - ands r0, r1 - ldr r4, _0809EFA0 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF62: - cmp r3, 0x2 - bne _0809EF76 - ldr r2, _0809EF98 - ldrh r1, [r2] - ldr r0, _0809EF9C - ands r0, r1 - ldr r4, _0809EFA4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF76: - cmp r3, 0x3 - bne _0809EF8A - ldr r2, _0809EF98 - ldrh r1, [r2] - ldr r0, _0809EF9C - ands r0, r1 - ldr r3, _0809EFA8 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EF8A: - ldr r2, _0809EFAC -_0809EF8C: - ldrh r1, [r2] - ldr r0, _0809EFB0 - ands r0, r1 - adds r0, 0x2 - strh r0, [r2] - b _0809F096 - .align 2, 0 -_0809EF98: .4byte REG_BG1CNT -_0809EF9C: .4byte 0x0000e0fc -_0809EFA0: .4byte 0x00000801 -_0809EFA4: .4byte 0x00000a01 -_0809EFA8: .4byte 0x00000c01 -_0809EFAC: .4byte REG_BG2CNT -_0809EFB0: .4byte 0x0000fffc -_0809EFB4: - ldr r0, _0809EFD4 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809EFDC - ldr r0, _0809EFD8 - ldrh r1, [r0] - adds r1, 0x20 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bne _0809F0C0 - b _0809F096 - .align 2, 0 -_0809EFD4: .4byte 0x02018000 -_0809EFD8: .4byte gUnknown_03004288 -_0809EFDC: - ldr r0, _0809EFF0 - ldrh r1, [r0] - adds r1, 0x20 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bne _0809F0C0 - b _0809F096 - .align 2, 0 -_0809EFF0: .4byte gUnknown_030042C0 -_0809EFF4: - ldr r1, _0809F030 - ldrb r3, [r1, 0xB] - adds r0, r3, 0x1 - adds r2, r1, 0 - adds r2, 0x7E - strb r0, [r2] - ldrb r2, [r1, 0x8] - subs r0, r2, 0x2 - lsls r0, 24 - lsrs r0, 24 - adds r5, r1, 0 - cmp r0, 0x1 - bhi _0809F034 - adds r1, 0x7F - movs r0, 0 - strb r0, [r1] - adds r4, r5, 0 - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A029C - adds r5, 0x79 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A0428 - ldrb r0, [r5] - bl sub_80A00F4 - b _0809F096 - .align 2, 0 -_0809F030: .4byte 0x02018000 -_0809F034: - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0809F056 - adds r0, r5, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - beq _0809F04E - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0809F056 -_0809F04E: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x6 - b _0809F06A -_0809F056: - ldrb r0, [r5, 0xB] - cmp r0, 0 - bne _0809F064 - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x7 - b _0809F06A -_0809F064: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0 -_0809F06A: - strb r0, [r1] - b _0809F096 -_0809F06E: - bl sub_80A0EE8 - bl sub_80A0DD0 - b _0809F096 -_0809F078: - ldr r0, _0809F0A0 - ldr r4, _0809F0A4 - ldrb r1, [r4, 0xB] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - adds r4, 0x80 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] -_0809F096: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _0809F0C0 - .align 2, 0 -_0809F0A0: .4byte gUnknown_083C1598 -_0809F0A4: .4byte 0x02018000 -_0809F0A8: - bl sub_8055870 - cmp r0, 0x1 - beq _0809F0C0 - ldr r1, _0809F0C8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809F0CC - ldr r1, [r1] - str r1, [r0] -_0809F0C0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809F0C8: .4byte gTasks -_0809F0CC: .4byte gUnknown_03005CF0 - thumb_func_end sub_809EE74 - - thumb_func_start sub_809F0D0 -sub_809F0D0: @ 809F0D0 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0809F110 - ldrb r0, [r1, 0xB] - adds r0, r4 - movs r5, 0 - strb r0, [r1, 0xB] - ldr r2, _0809F114 - ldr r1, _0809F118 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - ldr r0, [r6] - str r0, [r2] - bl sub_809FBE4 - strh r5, [r6, 0x8] - lsls r4, 24 - asrs r4, 24 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _0809F120 - ldr r0, _0809F11C - str r0, [r6] - b _0809F12A - .align 2, 0 -_0809F110: .4byte 0x02018000 -_0809F114: .4byte gUnknown_03005CF0 -_0809F118: .4byte gTasks -_0809F11C: .4byte sub_809EC38 -_0809F120: - ldr r1, _0809F130 - str r1, [r6] - adds r0, r7, 0 - bl _call_via_r1 -_0809F12A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809F130: .4byte sub_809EE74 - thumb_func_end sub_809F0D0 - - thumb_func_start sub_809F134 -sub_809F134: @ 809F134 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, _0809F1AC - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809F1A6 - lsls r0, r5, 24 - asrs r5, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - bne _0809F168 - adds r0, r4, 0 - subs r0, 0x10 - adds r1, r4, 0 - adds r1, 0x65 - ldrb r0, [r0, 0xB] - ldrb r1, [r1] - cmp r0, r1 - beq _0809F1A6 -_0809F168: - cmp r5, 0x1 - bne _0809F17C - adds r0, r4, 0 - subs r0, 0x10 - adds r1, r4, 0 - adds r1, 0x66 - ldrb r0, [r0, 0xB] - ldrb r1, [r1] - cmp r0, r1 - beq _0809F1A6 -_0809F17C: - ldr r0, _0809F1B0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809F1A6 - ldr r0, _0809F1B4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809F1A6 - movs r0, 0x5 - bl PlaySE - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_809F0D0 -_0809F1A6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809F1AC: .4byte 0x02018010 -_0809F1B0: .4byte sub_80A1334 -_0809F1B4: .4byte sub_80A1500 - thumb_func_end sub_809F134 - - thumb_func_start sub_809F1B8 -sub_809F1B8: @ 809F1B8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, _0809F1E4 - ldrb r1, [r0, 0xE] - adds r2, r0, 0 - cmp r1, 0x1 - bne _0809F202 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0809F1E8 - lsls r1, r4, 24 - asrs r1, 24 - movs r4, 0x1 - eors r1, r4 - negs r0, r1 - orrs r0, r1 - lsrs r4, r0, 31 - b _0809F1F4 - .align 2, 0 -_0809F1E4: .4byte 0x02018000 -_0809F1E8: - lsls r0, r4, 24 - asrs r0, 24 - movs r4, 0x3 - cmp r0, 0x1 - bne _0809F1F4 - movs r4, 0x2 -_0809F1F4: - ldr r0, [r2] - ldrb r1, [r2, 0x9] - ldrb r2, [r2, 0xA] - adds r3, r4, 0 - bl sub_8095DCC - b _0809F22C -_0809F202: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F224 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F224 - lsls r0, r4, 24 - asrs r0, 24 - bl sub_809F3CC - b _0809F22C -_0809F224: - lsls r0, r4, 24 - asrs r0, 24 - bl sub_809F284 -_0809F22C: - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0809F270 - movs r0, 0x5 - bl PlaySE - ldr r5, _0809F278 - adds r0, r5, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _0809F258 - movs r0, 0x2 - negs r0, r0 - bl sub_80A12D0 -_0809F258: - adds r0, r5, 0 - subs r0, 0x10 - strb r4, [r0, 0x9] - ldr r1, _0809F27C - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, [r0] - str r1, [r5, 0x74] - ldr r1, _0809F280 - str r1, [r0] -_0809F270: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809F278: .4byte 0x02018010 -_0809F27C: .4byte gTasks -_0809F280: .4byte sub_809F43C - thumb_func_end sub_809F1B8 - - thumb_func_start sub_809F284 -sub_809F284: @ 809F284 - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0809F2C0 - ldr r7, [r0] - movs r6, 0 - ldrb r1, [r0, 0xB] - adds r4, r0, 0 - cmp r1, 0 - bne _0809F2C4 - lsls r0, r3, 24 - asrs r2, r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r5, r0, 0 - cmp r2, r1 - bne _0809F2AC - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0809F2E4 -_0809F2AC: - asrs r0, r5, 24 - cmp r0, 0x1 - bne _0809F2BA - ldrb r0, [r4, 0x9] - ldrb r1, [r4, 0xA] - cmp r0, r1 - bcs _0809F2E4 -_0809F2BA: - ldrb r0, [r4, 0x9] - adds r0, r3 - b _0809F304 - .align 2, 0 -_0809F2C0: .4byte 0x02018000 -_0809F2C4: - lsls r5, r3, 24 -_0809F2C6: - lsls r0, r6, 24 - asrs r0, 24 - asrs r1, r5, 24 - adds r0, r1 - lsls r0, 24 - ldr r4, _0809F2EC - lsrs r6, r0, 24 - asrs r0, 24 - ldrb r2, [r4, 0x9] - adds r1, r0, r2 - cmp r1, 0 - blt _0809F2E4 - ldrb r0, [r4, 0xA] - cmp r1, r0 - ble _0809F2F0 -_0809F2E4: - movs r0, 0x1 - negs r0, r0 - b _0809F308 - .align 2, 0 -_0809F2EC: .4byte 0x02018000 -_0809F2F0: - movs r0, 0x64 - muls r0, r1 - adds r0, r7, r0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809F2C6 - ldrb r0, [r4, 0x9] - adds r0, r6 -_0809F304: - lsls r0, 24 - asrs r0, 24 -_0809F308: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809F284 - - thumb_func_start sub_809F310 -sub_809F310: @ 809F310 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0809F33C - ldr r0, _0809F338 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0809F332 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809F33C -_0809F332: - movs r0, 0x1 - b _0809F33E - .align 2, 0 -_0809F338: .4byte 0x02018000 -_0809F33C: - movs r0, 0 -_0809F33E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809F310 - - thumb_func_start sub_809F344 -sub_809F344: @ 809F344 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 -_0809F34A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - beq _0809F37C - ldr r0, _0809F374 - adds r5, r4, r0 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809F378 - adds r0, r1 - bl sub_809F310 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F34A - movs r0, 0 - ldrsb r0, [r5, r0] - b _0809F380 - .align 2, 0 -_0809F374: .4byte gUnknown_083C15A8 -_0809F378: .4byte gPlayerParty -_0809F37C: - movs r0, 0x1 - negs r0, r0 -_0809F380: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809F344 - - thumb_func_start sub_809F388 -sub_809F388: @ 809F388 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 -_0809F38E: - cmp r4, 0 - beq _0809F3C0 - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809F3B8 - adds r5, r4, r0 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809F3BC - adds r0, r1 - bl sub_809F310 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F38E - movs r0, 0 - ldrsb r0, [r5, r0] - b _0809F3C4 - .align 2, 0 -_0809F3B8: .4byte gUnknown_083C15A8 -_0809F3BC: .4byte gPlayerParty -_0809F3C0: - movs r0, 0x1 - negs r0, r0 -_0809F3C4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809F388 - - thumb_func_start sub_809F3CC -sub_809F3CC: @ 809F3CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0 - movs r1, 0 - ldr r3, _0809F41C - ldr r4, _0809F420 - ldrb r0, [r3] - ldrb r5, [r4, 0x9] - cmp r0, r5 - beq _0809F3FC - adds r5, r3, 0 - adds r3, r4, 0 -_0809F3E6: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x5 - bhi _0809F3FC - adds r0, r1, r5 - ldrb r0, [r0] - ldrb r4, [r3, 0x9] - cmp r0, r4 - bne _0809F3E6 - adds r2, r1, 0 -_0809F3FC: - lsls r0, r6, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0809F40C - cmp r2, 0 - beq _0809F414 -_0809F40C: - cmp r1, 0x1 - bne _0809F424 - cmp r2, 0x5 - bne _0809F42C -_0809F414: - movs r0, 0x1 - negs r0, r0 - b _0809F436 - .align 2, 0 -_0809F41C: .4byte gUnknown_083C15A8 -_0809F420: .4byte 0x02018000 -_0809F424: - adds r0, r2, 0 - bl sub_809F388 - b _0809F432 -_0809F42C: - adds r0, r2, 0 - bl sub_809F344 -_0809F432: - lsls r0, 24 - asrs r0, 24 -_0809F436: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809F3CC - - thumb_func_start sub_809F43C -sub_809F43C: @ 809F43C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809F45C - ldr r1, _0809F460 - adds r5, r0, r1 - ldrb r2, [r5] - adds r3, r0, 0 - cmp r2, 0x8 - bls _0809F452 - b _0809F5CC -_0809F452: - lsls r0, r2, 2 - ldr r1, _0809F464 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809F45C: .4byte gMain -_0809F460: .4byte 0x0000043c -_0809F464: .4byte _0809F468 - .align 2, 0 -_0809F468: - .4byte _0809F48C - .4byte _0809F492 - .4byte _0809F4BC - .4byte _0809F4D8 - .4byte _0809F4F4 - .4byte _0809F51C - .4byte _0809F578 - .4byte _0809F584 - .4byte _0809F5A0 -_0809F48C: - bl StopCryAndClearCrySongs - b _0809F5B2 -_0809F492: - ldr r0, _0809F4AC - ldrb r1, [r0, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809F4B0 - adds r0, r1 - bl DestroySpriteAndFreeResources - ldr r1, _0809F4B4 - ldr r0, _0809F4B8 - adds r1, r0 - b _0809F5B8 - .align 2, 0 -_0809F4AC: .4byte 0x02018000 -_0809F4B0: .4byte gSprites -_0809F4B4: .4byte gMain -_0809F4B8: .4byte 0x0000043c -_0809F4BC: - ldr r0, _0809F4D0 - ldrb r1, [r0, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809F4D4 - adds r0, r1 - bl DestroySpriteAndFreeResources - b _0809F5B2 - .align 2, 0 -_0809F4D0: .4byte 0x02018000 -_0809F4D4: .4byte gSprites -_0809F4D8: - ldr r0, _0809F4EC - adds r1, r0, 0 - adds r1, 0x74 - movs r2, 0 - strb r2, [r1] - adds r0, 0x79 - strb r2, [r0] - ldr r0, _0809F4F0 - adds r1, r3, r0 - b _0809F5B8 - .align 2, 0 -_0809F4EC: .4byte 0x02018000 -_0809F4F0: .4byte 0x0000043c -_0809F4F4: - ldr r4, _0809F518 - adds r0, r4, 0 - bl sub_809F678 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _0809F50E - movs r0, 0x2 - bl sub_80A12D0 -_0809F50E: - adds r0, r4, 0 - bl sub_80A0EA4 - b _0809F5B2 - .align 2, 0 -_0809F518: .4byte 0x02018010 -_0809F51C: - ldr r4, _0809F558 - adds r5, r4, 0 - adds r5, 0x64 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809F6B4 - adds r1, r4, 0 - subs r1, 0x10 - strb r0, [r1, 0xC] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0809F5EA - movs r0, 0 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - adds r1, r0, 0 - cmp r1, 0 - beq _0809F560 - ldr r1, _0809F55C - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - b _0809F564 - .align 2, 0 -_0809F558: .4byte 0x02018010 -_0809F55C: .4byte gUnknown_030041B0 -_0809F560: - ldr r0, _0809F56C - strh r1, [r0] -_0809F564: - ldr r1, _0809F570 - ldr r0, _0809F574 - adds r1, r0 - b _0809F5B8 - .align 2, 0 -_0809F56C: .4byte gUnknown_030041B0 -_0809F570: .4byte gMain -_0809F574: .4byte 0x0000043c -_0809F578: - ldr r0, _0809F580 - bl sub_80A1DCC - b _0809F5B2 - .align 2, 0 -_0809F580: .4byte 0x02018010 -_0809F584: - ldr r0, _0809F594 - bl sub_80A1DE8 - ldr r1, _0809F598 - ldr r0, _0809F59C - adds r1, r0 - b _0809F5B8 - .align 2, 0 -_0809F594: .4byte 0x02018010 -_0809F598: .4byte gMain -_0809F59C: .4byte 0x0000043c -_0809F5A0: - bl sub_809F5F8 - lsls r0, 24 - cmp r0, 0 - beq _0809F5EA - ldr r0, _0809F5C0 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] -_0809F5B2: - ldr r1, _0809F5C4 - ldr r2, _0809F5C8 - adds r1, r2 -_0809F5B8: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0809F5EA - .align 2, 0 -_0809F5C0: .4byte 0x02018000 -_0809F5C4: .4byte gMain -_0809F5C8: .4byte 0x0000043c -_0809F5CC: - bl sub_8055870 - cmp r0, 0x1 - beq _0809F5EA - movs r0, 0 - strb r0, [r5] - ldr r0, _0809F5F0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0809F5F4 - adds r0, 0x84 - ldr r0, [r0] - str r0, [r1] -_0809F5EA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809F5F0: .4byte gTasks -_0809F5F4: .4byte 0x02018000 - thumb_func_end sub_809F43C - - thumb_func_start sub_809F5F8 -sub_809F5F8: @ 809F5F8 - push {r4,lr} - ldr r2, _0809F61C - adds r4, r2, 0 - adds r4, 0x74 - ldrb r0, [r4] - cmp r0, 0 - beq _0809F624 - ldr r0, _0809F620 - ldrb r1, [r2, 0xB] - lsls r1, 2 - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - movs r0, 0x1 - b _0809F634 - .align 2, 0 -_0809F61C: .4byte 0x02018000 -_0809F620: .4byte gUnknown_083C1588 -_0809F624: - adds r0, r2, 0 - adds r0, 0x10 - bl sub_809FAC8 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 -_0809F634: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809F5F8 - - thumb_func_start sub_809F63C -sub_809F63C: @ 809F63C - push {r4,lr} - adds r4, r0, 0 - bl sub_809FE80 - adds r0, r4, 0 - bl sub_809FC34 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F63C - - thumb_func_start sub_809F650 -sub_809F650: @ 809F650 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A00A4 - adds r0, r4, 0 - bl sub_809FF64 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F650 - - thumb_func_start sub_809F664 -sub_809F664: @ 809F664 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A0390 - adds r0, r4, 0 - bl sub_80A015C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F664 - - thumb_func_start sub_809F678 -sub_809F678: @ 809F678 - push {lr} - adds r3, r0, 0 - ldr r1, _0809F698 - ldrb r0, [r1, 0xE] - cmp r0, 0 - bne _0809F69C - ldr r2, [r1] - ldrb r1, [r1, 0x9] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r3, 0 - movs r2, 0x64 - bl memcpy - b _0809F6AE - .align 2, 0 -_0809F698: .4byte 0x02018000 -_0809F69C: - ldr r0, [r1] - ldrb r2, [r1, 0x9] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - adds r1, r3, 0 - bl sub_803B4B4 -_0809F6AE: - pop {r0} - bx r0 - thumb_func_end sub_809F678 - - thumb_func_start sub_809F6B4 -sub_809F6B4: @ 809F6B4 - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r7, r1, 0 - ldrb r0, [r7] - cmp r0, 0 - beq _0809F6D2 - cmp r0, 0x1 - beq _0809F718 - adds r0, r4, 0 - bl sub_80A1808 - lsls r0, 24 - lsrs r0, 24 - b _0809F756 -_0809F6D2: - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - lsls r0, r5, 3 - ldr r1, _0809F70C - adds r0, r1 - ldr r1, _0809F710 - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0809F714 - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - bl sub_800D334 - b _0809F74E - .align 2, 0 -_0809F70C: .4byte gMonFrontPicTable -_0809F710: .4byte gMonFrontPicCoords -_0809F714: .4byte gUnknown_081FAF4C -_0809F718: - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r1, r0, 0 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - ldrh r0, [r4, 0x4] - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C -_0809F74E: - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - movs r0, 0xFF -_0809F756: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809F6B4 - - thumb_func_start sub_809F760 -sub_809F760: @ 809F760 - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _0809F780 - cmp r1, 0x1 - bgt _0809F776 - cmp r1, 0 - beq _0809F77C - b _0809F788 -_0809F776: - cmp r2, 0x2 - beq _0809F784 - b _0809F788 -_0809F77C: - movs r1, 0xD - b _0809F78A -_0809F780: - movs r1, 0xE - b _0809F78A -_0809F784: - movs r1, 0xF - b _0809F78A -_0809F788: - movs r1, 0x10 -_0809F78A: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_809F760 - - thumb_func_start sub_809F798 -sub_809F798: @ 809F798 - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _0809F7B8 - cmp r1, 0x1 - bgt _0809F7AE - cmp r1, 0 - beq _0809F7B4 - b _0809F7C0 -_0809F7AE: - cmp r2, 0x2 - beq _0809F7BC - b _0809F7C0 -_0809F7B4: - movs r1, 0x11 - b _0809F7C2 -_0809F7B8: - movs r1, 0x12 - b _0809F7C2 -_0809F7BC: - movs r1, 0x13 - b _0809F7C2 -_0809F7C0: - movs r1, 0x14 -_0809F7C2: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_809F798 - - thumb_func_start sub_809F7D0 -sub_809F7D0: @ 809F7D0 - push {r4,lr} - sub sp, 0x64 - mov r0, sp - bl sub_809F678 - ldr r4, _0809F804 - adds r0, r4, 0 - adds r0, 0x79 - ldrb r1, [r0] - mov r0, sp - bl sub_809F760 - lsls r0, 16 - lsrs r0, 16 - bl sub_806F7B8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F808 - ldrb r0, [r4, 0x8] - cmp r0, 0x3 - beq _0809F808 - movs r0, 0 - b _0809F80A - .align 2, 0 -_0809F804: .4byte 0x02018000 -_0809F808: - movs r0, 0x1 -_0809F80A: - add sp, 0x64 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809F7D0 - - thumb_func_start sub_809F814 -sub_809F814: @ 809F814 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r0, _0809F83C - mov r8, r0 - adds r4, r6, r0 - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0x3 - bgt _0809F840 - adds r0, r1, 0x1 - strh r0, [r4, 0x1C] - b _0809F9C0 - .align 2, 0 -_0809F83C: .4byte gUnknown_03004B28 -_0809F840: - ldr r7, _0809F874 - ldrh r1, [r7, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809F880 - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0809F878 - str r1, [r0] - movs r0, 0x4 - strh r0, [r4] - movs r0, 0x1 - strh r0, [r4, 0x1A] - ldr r2, _0809F87C - ldrh r0, [r4, 0x1E] - adds r2, 0x79 - strb r0, [r2] - movs r1, 0x1 - negs r1, r1 - adds r0, r5, 0 - bl sub_809E8F0 - b _0809F9C0 - .align 2, 0 -_0809F874: .4byte gMain -_0809F878: .4byte sub_809E260 -_0809F87C: .4byte 0x02018000 -_0809F880: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809F8B4 - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0809F8AC - str r1, [r0] - movs r0, 0x4 - strh r0, [r4] - movs r0, 0x1 - strh r0, [r4, 0x1A] - ldr r2, _0809F8B0 - ldrh r0, [r4, 0x1E] - adds r2, 0x79 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809F9C0 - .align 2, 0 -_0809F8AC: .4byte sub_809E260 -_0809F8B0: .4byte 0x02018000 -_0809F8B4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0809F8C8 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F918 -_0809F8C8: - ldr r1, _0809F90C - ldrb r0, [r1, 0xB] - cmp r0, 0x2 - beq _0809F9C0 - cmp r0, 0x3 - bne _0809F8F4 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809F8E8 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809F8F4 -_0809F8E8: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809F8F4: - ldr r1, _0809F910 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809F914 - str r1, [r0] - movs r1, 0x1 - negs r1, r1 - adds r0, r5, 0 - b _0809F972 - .align 2, 0 -_0809F90C: .4byte 0x02018000 -_0809F910: .4byte gTasks -_0809F914: .4byte sub_809E260 -_0809F918: - ldrh r1, [r7, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0809F92E - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809F994 -_0809F92E: - ldr r1, _0809F988 - adds r2, r1, 0 - adds r2, 0x76 - ldrb r0, [r1, 0xB] - ldrb r2, [r2] - cmp r0, r2 - beq _0809F9C0 - cmp r0, 0x2 - bne _0809F960 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809F954 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809F960 -_0809F954: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809F960: - ldr r1, _0809F98C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809F990 - str r1, [r0] - adds r0, r5, 0 - movs r1, 0x1 -_0809F972: - bl sub_809F134 - ldrb r1, [r4, 0x1E] - movs r0, 0x1 - bl sub_80A1488 - ldrb r1, [r4, 0x1E] - movs r0, 0x1 - bl sub_80A1654 - b _0809F9C0 - .align 2, 0 -_0809F988: .4byte 0x02018000 -_0809F98C: .4byte gTasks -_0809F990: .4byte sub_809E260 -_0809F994: - ldrh r1, [r7, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809F9A6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809F9C0 -_0809F9A6: - ldrb r1, [r4, 0x1E] - movs r0, 0x2 - bl sub_80A1488 - ldrb r1, [r4, 0x1E] - movs r0, 0x2 - bl sub_80A1654 - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0809F9CC - str r1, [r0] -_0809F9C0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809F9CC: .4byte sub_809E260 - thumb_func_end sub_809F814 - - thumb_func_start sub_809F9D0 -sub_809F9D0: @ 809F9D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _0809FA24 - adds r2, r4, r6 - movs r0, 0 - strh r0, [r2, 0x1C] - strh r1, [r2, 0x1E] - movs r5, 0x2 - negs r5, r5 - adds r0, r5, 0 - movs r1, 0x4 - bl sub_80A1488 - adds r0, r5, 0 - movs r1, 0x4 - bl sub_80A1654 - movs r0, 0xB - movs r1, 0xF - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - ldr r0, _0809FA28 - movs r1, 0xB - movs r2, 0xF - bl MenuPrint - subs r6, 0x8 - adds r4, r6 - ldr r0, _0809FA2C - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FA24: .4byte gUnknown_03004B28 -_0809FA28: .4byte gOtherText_CantForgetHMs -_0809FA2C: .4byte sub_809F814 - thumb_func_end sub_809F9D0 - - thumb_func_start sub_809FA30 -sub_809FA30: @ 809FA30 - ldr r0, _0809FA38 - adds r0, 0x7A - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809FA38: .4byte 0x02018000 - thumb_func_end sub_809FA30 - - thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing -GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C - push {r4,lr} - lsls r0, 24 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsrs r2, 23 - lsrs r3, 18 - ldr r4, _0809FA70 - adds r3, r4 - adds r2, r3 - lsrs r1, 12 - lsrs r0, 23 - movs r4, 0x80 - lsls r4, 2 - adds r3, r4, 0 - adds r0, r3 - adds r1, r0 - adds r0, r1, 0 - adds r0, 0x80 - strh r0, [r2] - adds r2, 0x40 - adds r1, 0x81 - strh r1, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809FA70: .4byte 0x0600f000 - thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing - - thumb_func_start GetStringCenterAlignXOffset -GetStringCenterAlignXOffset: @ 809FA74 - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0xF - adds r2, r4, 0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetStringCenterAlignXOffset - - thumb_func_start sub_809FA94 -sub_809FA94: @ 809FA94 - push {lr} - bl sub_8040CB4 - lsls r0, 24 - cmp r0, 0 - beq _0809FAB4 - ldr r0, _0809FAB0 - movs r1, 0x4 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x1 - b _0809FAC0 - .align 2, 0 -_0809FAB0: .4byte gUnknown_083C157E -_0809FAB4: - ldr r0, _0809FAC4 - movs r1, 0x4 - movs r2, 0x2 - bl LoadPalette - movs r0, 0 -_0809FAC0: - pop {r1} - bx r1 - .align 2, 0 -_0809FAC4: .4byte gUnknown_083C157C - thumb_func_end sub_809FA94 - - thumb_func_start sub_809FAC8 -sub_809FAC8: @ 809FAC8 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0809FB28 - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x4 - movs r3, 0x3 - bl MenuZeroFillWindowRect - movs r0, 0x3 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xC - movs r2, 0xB - movs r3, 0xF - bl MenuZeroFillWindowRect - ldr r4, _0809FB20 - adds r0, r5, 0 - adds r1, r4, 0 - bl GetMonNickname - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0x3 - movs r3, 0x10 - bl sub_80A1FF8 - ldr r0, _0809FB24 - movs r1, 0x4 - movs r2, 0x2 - bl LoadPalette - b _0809FBD6 - .align 2, 0 -_0809FB20: .4byte gStringVar1 -_0809FB24: .4byte gUnknown_083C157C -_0809FB28: - adds r0, r5, 0 - bl sub_809FA94 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl sub_80406D8 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0809FB6C - cmp r4, r0 - beq _0809FB96 - cmp r6, 0 - bne _0809FB70 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x2 - bl GetStringCenterAlignXOffset - movs r0, 0x11 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0xD - b _0809FB8C - .align 2, 0 -_0809FB6C: .4byte 0x0000ffff -_0809FB70: - movs r0, 0x2 - movs r1, 0x8 - movs r2, 0x1 - movs r3, 0x2 - bl GetStringCenterAlignXOffsetWithLetterSpacing - movs r0, 0x11 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x8 -_0809FB8C: - movs r2, 0x3 - movs r3, 0x2 - bl sub_80A1F98 - b _0809FBA2 -_0809FB96: - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x4 - movs r3, 0x3 - bl MenuZeroFillWindowRect -_0809FBA2: - ldr r1, _0809FBE0 - adds r0, r1, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r1, r0, 0 - adds r0, r5, 0 - bl GetMonNickname - adds r1, r0, 0 - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - movs r0, 0x3C - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0809FBE0 - movs r1, 0x1 - movs r2, 0xC - bl MenuPrint - adds r0, r5, 0 - bl sub_80A0958 -_0809FBD6: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FBE0: .4byte gStringVar1 - thumb_func_end sub_809FAC8 - - thumb_func_start sub_809FBE4 -sub_809FBE4: @ 809FBE4 - push {r4,lr} - movs r4, 0 -_0809FBE8: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1B - bls _0809FBE8 - movs r0, 0xB - movs r1, 0x4 - movs r2, 0x1D - movs r3, 0x12 - bl MenuZeroFillWindowRect - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809FBE4 - - thumb_func_start sub_809FC0C -sub_809FC0C: @ 809FC0C - push {lr} - ldr r0, _0809FC30 - movs r1, 0xB - movs r2, 0x6 - bl MenuPrint - movs r0, 0 - movs r1, 0x16 - movs r2, 0x4 - bl GetStringCenterAlignXOffset - movs r0, 0x2 - movs r1, 0x17 - movs r2, 0x4 - bl GetStringCenterAlignXOffset - pop {r0} - bx r0 - .align 2, 0 -_0809FC30: .4byte gOtherText_Type2 - thumb_func_end sub_809FC0C - - thumb_func_start sub_809FC34 -sub_809FC34: @ 809FC34 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r4, 0 -_0809FC3C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0809FC3C - movs r0, 0xB - movs r1, 0x9 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0809FD1C - ldr r5, _0809FCD0 - adds r0, r5, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r5, r0, 0 - ldr r1, _0809FCD4 - bl StringCopy - adds r5, r0, 0 - ldr r4, _0809FCD8 - adds r1, r4, 0 - bl StringCopy - adds r5, r0, 0 - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x4E - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x3] - ldr r0, _0809FCD0 - movs r1, 0xB - movs r2, 0x4 - bl MenuPrint - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0xC1 - movs r3, 0x20 - bl sub_80A1EF8 - movs r0, 0x9 - movs r1, 0x78 - movs r2, 0x30 - movs r3, 0 - bl sub_80A198C - adds r0, r6, 0 - movs r1, 0x20 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x5 - bhi _0809FCE0 - ldr r0, _0809FCDC - b _0809FCF2 - .align 2, 0 -_0809FCD0: .4byte gStringVar1 -_0809FCD4: .4byte gOtherText_OriginalTrainer -_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash -_0809FCDC: .4byte gOtherText_EggAbout -_0809FCE0: - cmp r0, 0xA - bhi _0809FCEC - ldr r0, _0809FCE8 - b _0809FCF2 - .align 2, 0 -_0809FCE8: .4byte gOtherText_EggSoon -_0809FCEC: - cmp r1, 0x28 - bhi _0809FD00 - ldr r0, _0809FCFC -_0809FCF2: - movs r1, 0xB - movs r2, 0x9 - bl MenuPrint - b _0809FD0A - .align 2, 0 -_0809FCFC: .4byte gOtherText_EggSomeTime -_0809FD00: - ldr r0, _0809FD18 - movs r1, 0xB - movs r2, 0x9 - bl MenuPrint -_0809FD0A: - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0xE - bl sub_80A0708 - b _0809FE4C - .align 2, 0 -_0809FD18: .4byte gOtherText_EggLongTime -_0809FD1C: - ldr r4, _0809FD64 - adds r0, r6, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - adds r0, r6, 0 - movs r1, 0x3 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - ldr r5, _0809FD68 - adds r0, r5, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r5, r0, 0 - ldr r1, _0809FD6C - bl StringCopy - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x31 - bl GetMonData - cmp r0, 0 - bne _0809FD70 - adds r0, r5, 0 - movs r1, 0x9 - b _0809FD74 - .align 2, 0 -_0809FD64: .4byte gStringVar2 -_0809FD68: .4byte gStringVar1 -_0809FD6C: .4byte gOtherText_OriginalTrainer -_0809FD70: - adds r0, r5, 0 - movs r1, 0xA -_0809FD74: - bl sub_80A1E58 - adds r5, r0, 0 - ldr r1, _0809FE54 - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x4E - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x3] - ldr r0, _0809FE58 - movs r1, 0xB - movs r2, 0x4 - bl MenuPrint - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - ldr r1, _0809FE5C - ands r1, r0 - movs r0, 0xC1 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0xD - movs r2, 0x5 - movs r3, 0x2 - bl sub_80A1F98 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r2, _0809FE60 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r5, r1, r2 - ldrb r4, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x78 - movs r2, 0x30 - movs r3, 0 - bl sub_80A198C - ldrb r0, [r5, 0x7] - cmp r4, r0 - beq _0809FDF8 - ldrb r0, [r5, 0x7] - movs r1, 0xA0 - movs r2, 0x30 - movs r3, 0x1 - bl sub_80A198C -_0809FDF8: - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x2E - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetAbilityBySpecies - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xD - muls r0, r4 - ldr r1, _0809FE64 - adds r0, r1 - movs r1, 0xD - movs r2, 0xB - movs r3, 0x9 - bl sub_80A1FF8 - ldr r0, _0809FE68 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0xB - movs r2, 0xB - bl MenuPrint - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0xE - bl sub_80A0798 -_0809FE4C: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FE54: .4byte gStringVar2 -_0809FE58: .4byte gStringVar1 -_0809FE5C: .4byte 0x0000ffff -_0809FE60: .4byte gBaseStats -_0809FE64: .4byte gAbilityNames -_0809FE68: .4byte gAbilityDescriptions - thumb_func_end sub_809FC34 - - thumb_func_start sub_809FE6C -sub_809FE6C: @ 809FE6C - push {r4,lr} - adds r4, r0, 0 - bl sub_809FC0C - adds r0, r4, 0 - bl sub_809FC34 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809FE6C - - thumb_func_start sub_809FE80 -sub_809FE80: @ 809FE80 - push {lr} - movs r0, 0xE - movs r1, 0x4 - movs r2, 0x12 - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0x19 - movs r1, 0x4 - movs r2, 0x1E - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0xB - movs r1, 0x9 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0xB - movs r1, 0xE - movs r2, 0x1C - movs r3, 0x11 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_809FE80 - - thumb_func_start sub_809FEB8 -sub_809FEB8: @ 809FEB8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0809FF40 - movs r1, 0xD - movs r2, 0xB - movs r3, 0xE - bl sub_80A1FF8 - ldr r0, _0809FF44 - movs r1, 0xD - movs r2, 0xB - movs r3, 0x10 - bl sub_80A1FF8 - ldr r0, _0809FF48 - movs r1, 0x15 - movs r2, 0x10 - bl MenuPrint - ldr r0, _0809FF4C - movs r4, 0x2A - str r4, [sp] - movs r1, 0xD - movs r2, 0xB - movs r3, 0x7 - bl sub_80A1F48 - ldr r0, _0809FF50 - str r4, [sp] - movs r1, 0xD - movs r2, 0xB - movs r3, 0x9 - bl sub_80A1F48 - ldr r0, _0809FF54 - str r4, [sp] - movs r1, 0xD - movs r2, 0xB - movs r3, 0xB - bl sub_80A1F48 - ldr r0, _0809FF58 - movs r4, 0x24 - str r4, [sp] - movs r1, 0xD - movs r2, 0x16 - movs r3, 0x7 - bl sub_80A1F48 - ldr r0, _0809FF5C - str r4, [sp] - movs r1, 0xD - movs r2, 0x16 - movs r3, 0x9 - bl sub_80A1F48 - ldr r0, _0809FF60 - str r4, [sp] - movs r1, 0xD - movs r2, 0x16 - movs r3, 0xB - bl sub_80A1F48 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809FF40: .4byte gOtherText_ExpPoints -_0809FF44: .4byte gOtherText_NextLv -_0809FF48: .4byte gOtherText_Terminator18 -_0809FF4C: .4byte gOtherText_HP -_0809FF50: .4byte gOtherText_Attack -_0809FF54: .4byte gOtherText_Defense -_0809FF58: .4byte gOtherText_SpAtk -_0809FF5C: .4byte gOtherText_SpDef -_0809FF60: .4byte gOtherText_Speed - thumb_func_end sub_809FEB8 - - thumb_func_start sub_809FF64 -sub_809FF64: @ 809FF64 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0809FF6A: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0809FF6A - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB - movs r2, 0x4 - bl sub_80A0BF4 - adds r0, r5, 0 - bl sub_80A0B88 - ldr r4, _080A008C - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1D - movs r2, 0xE - bl sub_8072B4C - adds r0, r5, 0 - movs r1, 0x17 - movs r2, 0x10 - bl sub_80A0C80 - adds r0, r5, 0 - movs r1, 0x3B - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x32 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3C - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0xB - movs r3, 0x32 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3E - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1B - movs r2, 0x7 - movs r3, 0x12 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3F - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1B - movs r2, 0x9 - movs r3, 0x12 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3D - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1B - movs r2, 0xB - movs r3, 0x12 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C14 - adds r4, r0, 0 - movs r0, 0xBA - strb r0, [r4] - adds r4, 0x1 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x30 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A008C - movs r1, 0x7E - movs r2, 0x38 - movs r3, 0x1 - bl sub_80729D8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A008C: .4byte gStringVar1 - thumb_func_end sub_809FF64 - - thumb_func_start sub_80A0090 -sub_80A0090: @ 80A0090 - push {r4,lr} - adds r4, r0, 0 - bl sub_809FEB8 - adds r0, r4, 0 - bl sub_809FF64 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A0090 - - thumb_func_start sub_80A00A4 -sub_80A00A4: @ 80A00A4 - push {lr} - movs r0, 0xB - movs r1, 0x4 - movs r2, 0x13 - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0x10 - movs r1, 0x7 - movs r2, 0x15 - movs r3, 0x8 - bl MenuZeroFillWindowRect - movs r0, 0x11 - movs r1, 0x9 - movs r2, 0x15 - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x1B - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x16 - movs r1, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuZeroFillWindowRect - movs r0, 0x17 - movs r1, 0x10 - movs r2, 0x1C - movs r3, 0x11 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80A00A4 - - thumb_func_start sub_80A00F4 -sub_80A00F4: @ 80A00F4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, _080A012C - adds r0, r2, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - bne _080A010A - cmp r1, 0x4 - beq _080A0150 -_080A010A: - ldrb r0, [r2, 0xB] - cmp r0, 0x2 - bne _080A0138 - ldr r0, _080A0130 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0xF - bl sub_80A1FF8 - ldr r0, _080A0134 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x11 - bl sub_80A1FF8 - b _080A0150 - .align 2, 0 -_080A012C: .4byte 0x02018000 -_080A0130: .4byte gOtherText_Power2 -_080A0134: .4byte gOtherText_Accuracy2 -_080A0138: - ldr r0, _080A0154 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0xF - bl sub_80A1FF8 - ldr r0, _080A0158 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x11 - bl sub_80A1FF8 -_080A0150: - pop {r0} - bx r0 - .align 2, 0 -_080A0154: .4byte gOtherText_Appeal2 -_080A0158: .4byte gOtherText_Jam2 - thumb_func_end sub_80A00F4 - - thumb_func_start sub_80A015C -sub_80A015C: @ 80A015C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - movs r7, 0 -_080A0168: - mov r0, r8 - adds r1, r7, 0 - bl sub_809F760 - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r8 - adds r1, r7, 0 - bl sub_809F798 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r6, 0 - bne _080A01B8 - adds r0, r7, 0 - movs r1, 0x1 - bl sub_80A1918 - lsls r4, r7, 25 - movs r0, 0x80 - lsls r0, 19 - adds r4, r0 - lsrs r4, 24 - ldr r0, _080A01B0 - movs r1, 0xD - movs r2, 0xF - adds r3, r4, 0 - bl sub_80A1FF8 - ldr r0, _080A01B4 - movs r1, 0x1A - adds r2, r4, 0 - bl MenuPrint - b _080A0276 - .align 2, 0 -_080A01B0: .4byte gOtherText_OneDash -_080A01B4: .4byte gOtherText_TwoDashes -_080A01B8: - ldr r0, _080A01E0 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A01E8 - ldr r1, _080A01E4 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r4, r7, 1 - adds r2, r4, 0x4 - lsls r2, 27 - lsrs r2, 24 - movs r1, 0x57 - adds r3, r7, 0 - bl sub_80A198C - b _080A020C - .align 2, 0 -_080A01E0: .4byte 0x02018000 -_080A01E4: .4byte gBattleMoves -_080A01E8: - ldr r1, _080A0290 - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 5 - movs r1, 0x90 - lsls r1, 21 - adds r0, r1 - lsrs r0, 24 - lsls r4, r7, 1 - adds r2, r4, 0x4 - lsls r2, 27 - lsrs r2, 24 - movs r1, 0x57 - adds r3, r7, 0 - bl sub_80A198C -_080A020C: - movs r0, 0xD - muls r0, r6 - ldr r1, _080A0294 - adds r0, r1 - adds r5, r4, 0x4 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0xD - movs r2, 0xF - adds r3, r5, 0 - bl sub_80A1FF8 - movs r0, 0x1 - movs r1, 0x18 - adds r2, r5, 0 - bl GetStringCenterAlignXOffset - mov r0, r8 - movs r1, 0x15 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - adds r2, r7, 0 - bl CalculatePPWithBonus - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A0298 - adds r0, r1, 0 - mov r1, r9 - movs r2, 0xE - movs r3, 0x1 - bl sub_8072C14 - adds r1, r0, 0 - movs r0, 0xBA - strb r0, [r1] - adds r1, 0x1 - adds r0, r1, 0 - adds r1, r4, 0 - movs r2, 0x20 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0298 - movs r1, 0x19 - adds r2, r5, 0 - bl MenuPrint -_080A0276: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bhi _080A0282 - b _080A0168 -_080A0282: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0290: .4byte gContestMoves -_080A0294: .4byte gMoveNames -_080A0298: .4byte gStringVar1 - thumb_func_end sub_80A015C - - thumb_func_start sub_80A029C -sub_80A029C: @ 80A029C - push {r4,r5,lr} - ldr r1, _080A02B8 - adds r4, r1, 0 - adds r4, 0x7C - ldrh r0, [r4] - cmp r0, 0 - bne _080A02C0 - ldr r0, _080A02BC - movs r1, 0xD - movs r2, 0xF - movs r3, 0xC - bl sub_80A1FF8 - b _080A037E - .align 2, 0 -_080A02B8: .4byte 0x02018000 -_080A02BC: .4byte gOtherText_CancelNoTerminator -_080A02C0: - ldrh r5, [r4] - ldrb r0, [r1, 0xB] - cmp r0, 0x2 - bne _080A02E4 - ldr r1, _080A02E0 - lsls r4, r5, 1 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - movs r1, 0x57 - movs r2, 0x60 - movs r3, 0x4 - bl sub_80A198C - b _080A0304 - .align 2, 0 -_080A02E0: .4byte gBattleMoves -_080A02E4: - ldr r1, _080A0320 - lsls r0, r5, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 5 - movs r1, 0x90 - lsls r1, 21 - adds r0, r1 - lsrs r0, 24 - movs r1, 0x57 - movs r2, 0x60 - movs r3, 0x4 - bl sub_80A198C - lsls r4, r5, 1 -_080A0304: - ldr r0, _080A0324 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A032C - movs r0, 0xD - muls r0, r5 - ldr r1, _080A0328 - adds r0, r1 - movs r1, 0xA - movs r2, 0xF - movs r3, 0xC - bl sub_80A1FF8 - b _080A033E - .align 2, 0 -_080A0320: .4byte gContestMoves -_080A0324: .4byte 0x02018000 -_080A0328: .4byte gMoveNames -_080A032C: - movs r0, 0xD - muls r0, r5 - ldr r1, _080A0384 - adds r0, r1 - movs r1, 0x9 - movs r2, 0xF - movs r3, 0xC - bl sub_80A1FF8 -_080A033E: - movs r0, 0x1 - movs r1, 0x18 - movs r2, 0xC - bl GetStringCenterAlignXOffset - ldr r2, _080A0388 - ldr r1, _080A038C - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x4] - adds r0, r2, 0 - adds r1, r4, 0 - movs r2, 0xE - movs r3, 0x1 - bl sub_8072C14 - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - adds r2, 0x1 - adds r0, r2, 0 - adds r1, r4, 0 - movs r2, 0x20 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0388 - movs r1, 0x19 - movs r2, 0xC - bl MenuPrint -_080A037E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0384: .4byte gMoveNames -_080A0388: .4byte gStringVar1 -_080A038C: .4byte gBattleMoves - thumb_func_end sub_80A029C - - thumb_func_start sub_80A0390 -sub_80A0390: @ 80A0390 - push {r4,lr} - movs r4, 0 -_080A0394: - lsls r3, r4, 1 - adds r1, r3, 0x4 - lsls r1, 24 - lsrs r1, 24 - adds r3, 0x5 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0xF - movs r2, 0x1C - bl MenuZeroFillWindowRect - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080A0394 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A0390 - - thumb_func_start sub_80A03BC -sub_80A03BC: @ 80A03BC - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x4 - beq _080A03D0 - bl sub_809F760 - lsls r0, 16 - lsrs r1, r0, 16 - b _080A03E0 -_080A03D0: - ldr r0, _080A03E8 - adds r2, r0, 0 - adds r2, 0x7C - ldrh r0, [r2] - ldr r1, _080A03EC - cmp r0, 0 - beq _080A03E0 - adds r1, r0, 0 -_080A03E0: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A03E8: .4byte 0x02018000 -_080A03EC: .4byte 0x0000ffff - thumb_func_end sub_80A03BC - - thumb_func_start sub_80A03F0 -sub_80A03F0: @ 80A03F0 - push {lr} - ldrb r1, [r1] - bl sub_80A03BC - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080A0414 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A041C - adds r0, r1, 0 - bl sub_80A04CC - ldr r0, _080A0418 - bl sub_80A057C - b _080A0422 - .align 2, 0 -_080A0414: .4byte 0x02018000 -_080A0418: .4byte 0x0000ffff -_080A041C: - adds r0, r1, 0 - bl sub_80A057C -_080A0422: - pop {r0} - bx r0 - thumb_func_end sub_80A03F0 - - thumb_func_start sub_80A0428 -sub_80A0428: @ 80A0428 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r1, [r6] - bl sub_80A03BC - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xB - movs r1, 0xF - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - ldr r0, _080A0454 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A0458 - adds r0, r4, 0 - bl sub_80A046C - b _080A045E - .align 2, 0 -_080A0454: .4byte 0x02018000 -_080A0458: - adds r0, r4, 0 - bl sub_80A0498 -_080A045E: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80A03F0 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A0428 - - thumb_func_start sub_80A046C -sub_80A046C: @ 80A046C - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080A0490 - cmp r1, r0 - beq _080A048A - ldr r0, _080A0494 - subs r1, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0xB - movs r2, 0xF - bl MenuPrint -_080A048A: - pop {r0} - bx r0 - .align 2, 0 -_080A0490: .4byte 0x0000ffff -_080A0494: .4byte gMoveDescriptions - thumb_func_end sub_80A046C - - thumb_func_start sub_80A0498 -sub_80A0498: @ 80A0498 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _080A04C0 - cmp r3, r0 - beq _080A04BC - ldr r2, _080A04C4 - ldr r1, _080A04C8 - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0xB - movs r2, 0xF - bl MenuPrint -_080A04BC: - pop {r0} - bx r0 - .align 2, 0 -_080A04C0: .4byte 0x0000ffff -_080A04C4: .4byte gUnknown_083CADD4 -_080A04C8: .4byte gContestMoves - thumb_func_end sub_80A0498 - - thumb_func_start sub_80A04CC -sub_80A04CC: @ 80A04CC - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080A0504 - cmp r4, r0 - beq _080A0572 - ldr r2, _080A0508 - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x1] - adds r5, r1, 0 - cmp r0, 0x1 - bhi _080A0514 - ldr r0, _080A050C - ldr r1, _080A0510 - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C74 - ldr r0, _080A050C - movs r1, 0x7 - movs r2, 0xF - bl MenuPrint - b _080A052A - .align 2, 0 -_080A0504: .4byte 0x0000ffff -_080A0508: .4byte gBattleMoves -_080A050C: .4byte gStringVar1 -_080A0510: .4byte gOtherText_ThreeDashes2 -_080A0514: - ldr r0, _080A0550 - ldrb r1, [r2, 0x1] - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0550 - movs r1, 0x7 - movs r2, 0xF - bl MenuPrint -_080A052A: - ldr r0, _080A0554 - adds r1, r5, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x3] - cmp r0, 0 - bne _080A055C - ldr r0, _080A0550 - ldr r1, _080A0558 - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C74 - ldr r0, _080A0550 - movs r1, 0x7 - movs r2, 0x11 - bl MenuPrint - b _080A0572 - .align 2, 0 -_080A0550: .4byte gStringVar1 -_080A0554: .4byte gBattleMoves -_080A0558: .4byte gOtherText_ThreeDashes2 -_080A055C: - ldr r0, _080A0578 - ldrb r1, [r1, 0x3] - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0578 - movs r1, 0x7 - movs r2, 0x11 - bl MenuPrint -_080A0572: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0578: .4byte gStringVar1 - thumb_func_end sub_80A04CC - - thumb_func_start sub_80A057C -sub_80A057C: @ 80A057C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080A0648 - mov r8, r0 - ldr r0, _080A064C - cmp r5, r0 - beq _080A063A - ldr r1, _080A0650 - ldr r2, _080A0654 - lsls r3, r5, 3 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - mov r10, r2 - mov r9, r3 - cmp r4, 0xFF - beq _080A05B8 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_080A05B8: - movs r2, 0 - movs r7, 0x3 - movs r6, 0xF3 - lsls r6, 2 -_080A05C0: - ldr r3, _080A0658 - cmp r4, 0xFF - beq _080A05CC - cmp r2, r4 - bcs _080A05CC - adds r3, 0x1 -_080A05CC: - lsrs r0, r2, 2 - lsls r0, 5 - adds r1, r2, 0 - ands r1, r7 - adds r1, r0 - lsls r1, 1 - add r1, r8 - adds r1, r6 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080A05C0 - ldr r0, _080A064C - cmp r5, r0 - beq _080A063A - mov r0, r9 - add r0, r10 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _080A0650 - adds r0, r1 - ldrb r4, [r0, 0x2] - cmp r4, 0xFF - beq _080A060C - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_080A060C: - movs r2, 0 - movs r6, 0x3 - ldr r5, _080A065C -_080A0612: - ldr r3, _080A0660 - cmp r4, 0xFF - beq _080A061E - cmp r2, r4 - bcs _080A061E - subs r3, 0x1 -_080A061E: - lsrs r0, r2, 2 - lsls r0, 5 - adds r1, r2, 0 - ands r1, r6 - adds r1, r0 - lsls r1, 1 - add r1, r8 - adds r1, r5 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080A0612 -_080A063A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0648: .4byte 0x06006800 -_080A064C: .4byte 0x0000ffff -_080A0650: .4byte gContestEffects -_080A0654: .4byte gContestMoves -_080A0658: .4byte 0x00001039 -_080A065C: .4byte 0x0000044c -_080A0660: .4byte 0x0000103d - thumb_func_end sub_80A057C - - thumb_func_start sub_80A0664 -sub_80A0664: @ 80A0664 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080A06A0 - ldr r1, [r0] - ldr r0, _080A06A4 - cmp r1, r0 - bne _080A06B0 - bl GetMultiplayerId - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A06A8 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldrh r5, [r0] - ldr r4, _080A06AC - adds r2, 0x8 - adds r1, r2 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - bl SkipExtCtrlCodes - b _080A06C2 - .align 2, 0 -_080A06A0: .4byte 0x02018000 -_080A06A4: .4byte gEnemyParty -_080A06A8: .4byte gLinkPlayers -_080A06AC: .4byte gStringVar1 -_080A06B0: - bl sub_80BFB94 - adds r5, r0, 0 - ldr r0, _080A06F0 - ands r5, r0 - ldr r0, _080A06F4 - ldr r1, _080A06F8 - bl StringCopy -_080A06C2: - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - ldr r1, _080A06F0 - ands r1, r0 - cmp r5, r1 - bne _080A06EA - ldr r4, _080A06FC - adds r0, r6, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, _080A06F4 - adds r1, r4, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080A0700 -_080A06EA: - movs r0, 0 - b _080A0702 - .align 2, 0 -_080A06F0: .4byte 0x0000ffff -_080A06F4: .4byte gStringVar1 -_080A06F8: .4byte gSaveBlock2 -_080A06FC: .4byte gStringVar2 -_080A0700: - movs r0, 0x1 -_080A0702: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A0664 - - thumb_func_start sub_80A0708 -sub_80A0708: @ 80A0708 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r9, r5 - lsls r2, 24 - lsrs r6, r2, 24 - mov r8, r6 - movs r1, 0x25 - bl GetMonData - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bls _080A073C - ldr r0, _080A0738 - b _080A076E - .align 2, 0 -_080A0738: .4byte gOtherText_EggObtainedInTrade -_080A073C: - adds r0, r4, 0 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xFF - bne _080A0754 - ldr r0, _080A0750 - b _080A076E - .align 2, 0 -_080A0750: .4byte gOtherText_EggNicePlace -_080A0754: - adds r0, r4, 0 - bl sub_80A0664 - lsls r0, 24 - cmp r0, 0 - bne _080A0768 - ldr r0, _080A0764 - b _080A076E - .align 2, 0 -_080A0764: .4byte gOtherText_EggObtainedInTrade -_080A0768: - cmp r7, 0xFD - bne _080A077C - ldr r0, _080A0778 -_080A076E: - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - b _080A0786 - .align 2, 0 -_080A0778: .4byte gOtherText_EggHotSprings -_080A077C: - ldr r0, _080A0794 - mov r1, r9 - mov r2, r8 - bl MenuPrint -_080A0786: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0794: .4byte gOtherText_EggDayCare - thumb_func_end sub_80A0708 - - thumb_func_start sub_80A0798 -sub_80A0798: @ 80A0798 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r5, _080A0838 - bl GetNature - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A083C - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - cmp r4, 0x5 - beq _080A07DA - cmp r4, 0x15 - beq _080A07DA - ldr r1, _080A0840 - bl StringCopy - adds r5, r0, 0 -_080A07DA: - ldr r1, _080A0844 - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - adds r0, r7, 0 - bl sub_80A0664 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0898 - adds r0, r7, 0 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - cmp r0, 0 - bne _080A0850 - adds r0, r5, 0 - movs r1, 0x5 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r4, _080A0848 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80FC02C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - ldr r1, _080A084C - bl StringCopy - b _080A0934 - .align 2, 0 -_080A0838: .4byte gStringVar4 -_080A083C: .4byte gNatureNames -_080A0840: .4byte gOtherText_Terminator4 -_080A0844: .4byte gOtherText_Nature -_080A0848: .4byte gStringVar1 -_080A084C: .4byte gOtherText_Egg2 -_080A0850: - cmp r6, 0x57 - bhi _080A08E8 - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r4, _080A0890 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80FC02C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - ldr r1, _080A0894 - bl StringCopy - b _080A0934 - .align 2, 0 -_080A0890: .4byte gStringVar1 -_080A0894: .4byte gOtherText_Met -_080A0898: - adds r0, r7, 0 - movs r1, 0x25 - bl GetMonData - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bhi _080A08E8 - adds r0, r7, 0 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _080A08E4 - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r1, _080A08E0 - b _080A08F0 - .align 2, 0 -_080A08E0: .4byte gOtherText_FatefulEncounter -_080A08E4: - cmp r6, 0x57 - bls _080A08FC -_080A08E8: - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r1, _080A08F8 -_080A08F0: - adds r0, r5, 0 - bl StringCopy - b _080A0934 - .align 2, 0 -_080A08F8: .4byte gOtherText_ObtainedInTrade -_080A08FC: - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r4, _080A094C - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80FC02C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - ldr r1, _080A0950 - bl StringCopy -_080A0934: - ldr r0, _080A0954 - mov r1, r9 - mov r2, r8 - bl MenuPrint - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A094C: .4byte gStringVar1 -_080A0950: .4byte gOtherText_Met2 -_080A0954: .4byte gStringVar4 - thumb_func_end sub_80A0798 - - thumb_func_start sub_80A0958 -sub_80A0958: @ 80A0958 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r8, r0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r2, _080A0A24 - adds r0, r2, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - movs r6, 0xFC - strb r6, [r2] - movs r0, 0x11 - strb r0, [r2, 0x1] - movs r0, 0x7 - strb r0, [r2, 0x2] - movs r0, 0xBA - strb r0, [r2, 0x3] - adds r2, 0x4 - movs r0, 0xB - adds r1, r4, 0 - muls r1, r0 - ldr r0, _080A0A28 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - strb r6, [r2] - movs r0, 0x13 - mov r10, r0 - strb r0, [r2, 0x1] - movs r0, 0x50 - strb r0, [r2, 0x2] - movs r0, 0xFF - mov r9, r0 - strb r0, [r2, 0x3] - ldr r5, _080A0A24 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - bl MenuPrint - movs r0, 0x3 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - mov r0, r8 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - movs r0, 0x34 - strb r0, [r2] - adds r2, 0x1 - adds r0, r2, 0 - adds r1, r4, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - strb r6, [r2] - mov r0, r10 - strb r0, [r2, 0x1] - movs r0, 0x20 - strb r0, [r2, 0x2] - mov r0, r9 - strb r0, [r2, 0x3] - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x10 - bl MenuPrint - mov r0, r8 - movs r1, 0x7 - movs r2, 0x10 - bl sub_80A0A2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0A24: .4byte gStringVar1 -_080A0A28: .4byte gSpeciesNames - thumb_func_end sub_80A0958 - - thumb_func_start sub_80A0A2C -sub_80A0A2C: @ 80A0A2C - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x20 - beq _080A0A84 - cmp r0, 0x1D - beq _080A0A84 - adds r0, r6, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080A0A6E - cmp r0, 0xFE - beq _080A0A78 - adds r3, r4, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl MenuZeroFillWindowRect - b _080A0A84 -_080A0A6E: - ldr r0, _080A0A74 - movs r1, 0xB - b _080A0A7C - .align 2, 0 -_080A0A74: .4byte gOtherText_MaleSymbol2 -_080A0A78: - ldr r0, _080A0A8C - movs r1, 0xC -_080A0A7C: - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_80A1FF8 -_080A0A84: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv - thumb_func_end sub_80A0A2C - - thumb_func_start sub_80A0A90 -sub_80A0A90: @ 80A0A90 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x32 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x33 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x34 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x35 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x36 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x43 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x44 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x45 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x46 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x47 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x48 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x49 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4A - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4B - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4C - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4D - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4E - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A0A90 - - thumb_func_start sub_80A0B88 -sub_80A0B88: @ 80A0B88 - push {r4,r5,lr} - bl sub_80A0A90 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A0BA8 - ldr r0, _080A0BA0 - ldr r1, _080A0BA4 - bl StringCopy - b _080A0BD8 - .align 2, 0 -_080A0BA0: .4byte gStringVar1 -_080A0BA4: .4byte gOtherText_None -_080A0BA8: - ldr r4, _080A0BE8 - ldr r1, _080A0BEC - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - bl StringLength - lsls r0, 24 - lsrs r0, 24 - subs r4, 0x2 - adds r0, r4 - movs r1, 0xFC - strb r1, [r0] - movs r1, 0x14 - strb r1, [r0, 0x1] - movs r1, 0x6 - strb r1, [r0, 0x2] - adds r0, 0x3 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN -_080A0BD8: - ldr r0, _080A0BF0 - movs r1, 0x15 - movs r2, 0x4 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0BE8: .4byte gStringVar1 -_080A0BEC: .4byte gOtherText_Ribbons00 -_080A0BF0: .4byte gUnknown_083C15AE - thumb_func_end sub_80A0B88 - - thumb_func_start sub_80A0BF4 -sub_80A0BF4: @ 80A0BF4 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - cmp r5, 0xAF - bne _080A0C48 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0C48 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0C48 - ldr r0, _080A0C40 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - beq _080A0C2E - cmp r0, 0x4 - beq _080A0C2E - cmp r0, 0x5 - bne _080A0C48 -_080A0C2E: - ldr r4, _080A0C44 - adds r0, r5, 0 - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - b _080A0C68 - .align 2, 0 -_080A0C40: .4byte 0x02018000 -_080A0C44: .4byte gStringVar1 -_080A0C48: - cmp r5, 0 - bne _080A0C60 - ldr r0, _080A0C58 - ldr r1, _080A0C5C - bl StringCopy - b _080A0C68 - .align 2, 0 -_080A0C58: .4byte gStringVar1 -_080A0C5C: .4byte gOtherText_None -_080A0C60: - ldr r1, _080A0C78 - adds r0, r5, 0 - bl itemid_copy_name -_080A0C68: - ldr r0, _080A0C7C - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0C78: .4byte gStringVar1 -_080A0C7C: .4byte gUnknown_083C15B4 - thumb_func_end sub_80A0BF4 - - thumb_func_start sub_80A0C80 -sub_80A0C80: @ 80A0C80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - movs r0, 0 - mov r9, r0 - movs r6, 0 - movs r7, 0 - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x63 - bhi _080A0D14 - ldr r3, _080A0D4C - adds r1, r5, 0x1 - lsls r1, 2 - ldr r2, _080A0D50 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r2, r0 - adds r1, r2 - adds r1, r3 - ldr r1, [r1] - mov r0, r8 - subs r0, r1, r0 - mov r9, r0 - lsls r0, r5, 2 - adds r0, r2 - adds r0, r3 - ldr r0, [r0] - subs r1, r0 - mov r2, r8 - subs r4, r2, r0 - lsls r0, r4, 6 - bl __udivsi3 - adds r6, r0, 0 - movs r7, 0 - adds r0, r7, 0 - orrs r0, r6 - cmp r0, 0 - bne _080A0D14 - cmp r4, 0 - beq _080A0D14 - movs r6, 0x1 - movs r7, 0 -_080A0D14: - ldr r4, _080A0D54 - adds r0, r4, 0 - mov r1, r9 - bl ConvertIntToDecimalString - mov r1, r10 - adds r1, 0x6 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp] - bl sub_8072B4C - ldr r0, _080A0D58 - mov r9, r0 - movs r2, 0 - mov r12, r2 - ldr r0, _080A0D5C - mov r8, r0 -_080A0D3A: - cmp r7, 0 - bgt _080A0D46 - cmp r7, 0 - bne _080A0D64 - cmp r6, 0x7 - bls _080A0D64 -_080A0D46: - ldr r1, _080A0D60 - b _080A0D96 - .align 2, 0 -_080A0D4C: .4byte gExperienceTables -_080A0D50: .4byte gBaseStats -_080A0D54: .4byte gStringVar1 -_080A0D58: .4byte 0x06004caa -_080A0D5C: .4byte 0x00002062 -_080A0D60: .4byte 0x0000206a -_080A0D64: - adds r5, r7, 0 - adds r4, r6, 0 - cmp r7, 0 - bge _080A0D74 - movs r4, 0x7 - movs r5, 0 - adds r4, r6 - adcs r5, r7 -_080A0D74: - lsls r3, r5, 29 - lsrs r2, r4, 3 - adds r0, r3, 0 - orrs r0, r2 - asrs r1, r5, 3 - lsrs r5, r0, 29 - lsls r4, r1, 3 - adds r3, r5, 0 - orrs r3, r4 - lsls r2, r0, 3 - adds r1, r7, 0 - adds r0, r6, 0 - subs r0, r2 - sbcs r1, r3 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 -_080A0D96: - mov r2, r12 - lsls r0, r2, 1 - add r0, r9 - strh r1, [r0] - movs r0, 0x8 - negs r0, r0 - asrs r1, r0, 31 - adds r6, r0 - adcs r7, r1 - cmp r7, 0 - bge _080A0DB0 - movs r6, 0 - movs r7, 0 -_080A0DB0: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x7 - bls _080A0D3A - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A0C80 - - thumb_func_start sub_80A0DD0 -sub_80A0DD0: @ 80A0DD0 - push {r4,r5,lr} - ldr r2, _080A0E3C - movs r5, 0xFC - strb r5, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x2 - strb r0, [r2, 0x2] - adds r2, 0x3 - adds r0, r2, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - ldr r1, _080A0E40 - ldr r4, _080A0E44 - adds r0, r4, 0 - adds r0, 0x7E - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - strb r5, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x58 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080A0E3C - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r4, 0x7F - ldrb r0, [r4] - cmp r0, 0 - beq _080A0E48 - movs r0, 0x5 - movs r1, 0x17 - movs r2, 0 - bl GetStringCenterAlignXOffset - movs r0, 0x6 - movs r1, 0x18 - movs r2, 0 - bl GetStringCenterAlignXOffset - b _080A0E54 - .align 2, 0 -_080A0E3C: .4byte gStringVar1 -_080A0E40: .4byte gUnknown_083C1068 -_080A0E44: .4byte 0x02018000 -_080A0E48: - movs r0, 0x17 - movs r1, 0 - movs r2, 0x18 - movs r3, 0x1 - bl MenuZeroFillWindowRect -_080A0E54: - ldr r2, _080A0E98 - adds r0, r2, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - ldr r1, _080A0E9C - ldr r0, _080A0EA0 - adds r0, 0x7F - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x28 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080A0E98 - movs r1, 0x19 - movs r2, 0 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0E98: .4byte gStringVar1 -_080A0E9C: .4byte gUnknown_083C1068 -_080A0EA0: .4byte 0x02018000 - thumb_func_end sub_80A0DD0 - - thumb_func_start sub_80A0EA4 -sub_80A0EA4: @ 80A0EA4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080A0ECC - ldr r6, _080A0ED0 - movs r1, 0 - bl sub_8040110 - lsls r0, 24 - cmp r0, 0 - bne _080A0ED4 - adds r0, r4, 0 - movs r1, 0 - bl sub_8040178 - lsls r0, 24 - cmp r0, 0 - beq _080A0ED4 - movs r0, 0x2C - b _080A0ED8 - .align 2, 0 -_080A0ECC: .4byte 0x0600e444 -_080A0ED0: .4byte 0x0600ec44 -_080A0ED4: - ldr r1, _080A0EE4 - adds r0, r1, 0 -_080A0ED8: - strh r0, [r5] - strh r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0EE4: .4byte 0x0000081a - thumb_func_end sub_80A0EA4 - - thumb_func_start sub_80A0EE8 -sub_80A0EE8: @ 80A0EE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r3, 0 - ldr r6, _080A0F24 - adds r5, r6, 0 - ldr r1, _080A0F28 - mov r8, r1 - ldr r2, _080A0F2C - mov r10, r2 -_080A0F02: - adds r0, r5, 0 - adds r0, 0x75 - ldrb r0, [r0] - cmp r3, r0 - bcs _080A0F30 - lsls r1, r3, 1 - lsls r0, r3, 2 - add r0, sp - mov r4, r8 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 1 - mov r7, sp - adds r0, r7, r1 - strh r4, [r0] - b _080A0FE2 - .align 2, 0 -_080A0F24: .4byte 0x02018000 -_080A0F28: .4byte 0x00004040 -_080A0F2C: .4byte 0x0000404a -_080A0F30: - movs r0, 0x76 - adds r0, r6 - mov r12, r0 - ldrb r1, [r0] - cmp r3, r1 - bls _080A0F52 - lsls r1, r3, 1 - lsls r0, r3, 2 - add r0, sp - mov r2, r10 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 1 - mov r4, sp - adds r0, r4, r1 - strh r2, [r0] - b _080A0FE2 -_080A0F52: - ldrb r4, [r5, 0xB] - cmp r3, r4 - bcs _080A0F6E - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r7, sp - adds r2, r7, r0 - ldr r0, _080A0F88 - strh r0, [r2] - adds r1, 0x1 - lsls r1, 1 - add r1, sp - adds r0, 0x1 - strh r0, [r1] -_080A0F6E: - cmp r3, r4 - bne _080A0FA6 - mov r0, r12 - ldrb r0, [r0] - cmp r3, r0 - beq _080A0F90 - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r4, sp - adds r2, r4, r0 - ldr r0, _080A0F8C - b _080A0F9A - .align 2, 0 -_080A0F88: .4byte 0x00004046 -_080A0F8C: .4byte 0x00004041 -_080A0F90: - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r7, sp - adds r2, r7, r0 - ldr r0, _080A0FC4 -_080A0F9A: - strh r0, [r2] - adds r1, 0x1 - lsls r1, 1 - add r1, sp - adds r0, 0x1 - strh r0, [r1] -_080A0FA6: - ldrb r0, [r5, 0xB] - cmp r3, r0 - bls _080A0FE2 - adds r0, r6, 0 - adds r0, 0x76 - ldrb r0, [r0] - cmp r3, r0 - beq _080A0FCC - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r4, sp - adds r2, r4, r0 - ldr r0, _080A0FC8 - b _080A0FD6 - .align 2, 0 -_080A0FC4: .4byte 0x0000404b -_080A0FC8: .4byte 0x00004043 -_080A0FCC: - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r7, sp - adds r2, r7, r0 - ldr r0, _080A1034 -_080A0FD6: - strh r0, [r2] - adds r1, 0x1 - lsls r1, 1 - add r1, sp - adds r0, 0x1 - strh r0, [r1] -_080A0FE2: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080A0F02 - ldr r1, _080A1038 - ldr r0, _080A103C - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _080A1040 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r3, 0 -_080A0FFE: - lsls r0, r3, 1 - mov r4, sp - adds r1, r4, r0 - ldrh r0, [r1] - adds r0, 0x10 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x7 - bls _080A0FFE - ldr r1, _080A1044 - ldr r0, _080A103C - str r4, [r0] - str r1, [r0, 0x4] - ldr r1, _080A1040 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1034: .4byte 0x00004048 -_080A1038: .4byte 0x0600e016 -_080A103C: .4byte 0x040000d4 -_080A1040: .4byte 0x80000008 -_080A1044: .4byte 0x0600e056 - thumb_func_end sub_80A0EE8 - - thumb_func_start sub_80A1048 -sub_80A1048: @ 80A1048 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _080A10A0 - adds r6, r0, r1 - ldrh r0, [r6] - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r6, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _080A106E - b _080A1224 -_080A106E: - movs r5, 0x2 - ldrsh r2, [r6, r5] - ldr r0, _080A10A4 - subs r0, r2 - lsls r0, 1 - ldr r1, _080A10A8 - adds r4, r0, r1 - ldr r5, _080A10AC - lsls r2, 1 - movs r0, 0x80 - lsls r0, 5 - adds r7, r1, 0 - cmp r2, r0 - bhi _080A10B4 - ldr r0, _080A10B0 - str r4, [r0] - str r5, [r0, 0x4] - lsrs r1, r2, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A10E0 - .align 2, 0 -_080A10A0: .4byte gUnknown_03004B28 -_080A10A4: .4byte 0x0000024a -_080A10A8: .4byte gUnknown_08E73508 -_080A10AC: .4byte 0x0600e480 -_080A10B0: .4byte 0x040000d4 -_080A10B4: - ldr r3, _080A110C - str r4, [r3] - str r5, [r3, 0x4] - ldr r0, _080A1110 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r4, r0 - adds r5, r0 - ldr r1, _080A1114 - adds r2, r1 - cmp r2, r0 - bhi _080A10B4 - str r4, [r3] - str r5, [r3, 0x4] - lsrs r0, r2, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] -_080A10E0: - movs r5, 0x2 - ldrsh r0, [r6, r5] - ldr r1, _080A1118 - subs r1, r0 - lsls r1, 1 - adds r3, r1, r7 - ldr r4, _080A111C - lsls r1, r0, 1 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bhi _080A1120 - ldr r0, _080A110C - str r3, [r0] - str r4, [r0, 0x4] - lsrs r1, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A114C - .align 2, 0 -_080A110C: .4byte 0x040000d4 -_080A1110: .4byte 0x80000800 -_080A1114: .4byte 0xfffff000 -_080A1118: .4byte 0x0000026a -_080A111C: .4byte 0x0600e4c0 -_080A1120: - ldr r2, _080A1178 - str r3, [r2] - str r4, [r2, 0x4] - ldr r0, _080A117C - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r3, r0 - adds r4, r0 - ldr r5, _080A1180 - adds r1, r5 - cmp r1, r0 - bhi _080A1120 - str r3, [r2] - str r4, [r2, 0x4] - lsrs r0, r1, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] -_080A114C: - movs r1, 0x2 - ldrsh r0, [r6, r1] - ldr r1, _080A1184 - subs r1, r0 - lsls r1, 1 - adds r3, r1, r7 - ldr r4, _080A1188 - lsls r1, r0, 1 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bhi _080A118C - ldr r0, _080A1178 - str r3, [r0] - str r4, [r0, 0x4] - lsrs r1, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A11B8 - .align 2, 0 -_080A1178: .4byte 0x040000d4 -_080A117C: .4byte 0x80000800 -_080A1180: .4byte 0xfffff000 -_080A1184: .4byte 0x0000024a -_080A1188: .4byte 0x0600ec80 -_080A118C: - ldr r2, _080A11E4 - str r3, [r2] - str r4, [r2, 0x4] - ldr r0, _080A11E8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r3, r0 - adds r4, r0 - ldr r5, _080A11EC - adds r1, r5 - cmp r1, r0 - bhi _080A118C - str r3, [r2] - str r4, [r2, 0x4] - lsrs r0, r1, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] -_080A11B8: - movs r1, 0x2 - ldrsh r0, [r6, r1] - ldr r1, _080A11F0 - subs r1, r0 - lsls r1, 1 - adds r3, r1, r7 - ldr r4, _080A11F4 - lsls r1, r0, 1 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bhi _080A11F8 - ldr r0, _080A11E4 - str r3, [r0] - str r4, [r0, 0x4] - lsrs r1, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A1224 - .align 2, 0 -_080A11E4: .4byte 0x040000d4 -_080A11E8: .4byte 0x80000800 -_080A11EC: .4byte 0xfffff000 -_080A11F0: .4byte 0x0000026a -_080A11F4: .4byte 0x0600ecc0 -_080A11F8: - ldr r2, _080A12B0 - str r3, [r2] - str r4, [r2, 0x4] - ldr r0, _080A12B4 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r3, r0 - adds r4, r0 - ldr r5, _080A12B8 - adds r1, r5 - cmp r1, r0 - bhi _080A11F8 - str r3, [r2] - str r4, [r2, 0x4] - lsrs r0, r1, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] -_080A1224: - ldrb r4, [r6, 0x2] - ldrh r7, [r6, 0x2] - ldrh r0, [r6] - mov r12, r0 - cmp r4, 0x9 - bhi _080A1272 - adds r3, r6, 0x4 - ldr r2, _080A12B0 - ldr r5, _080A12BC -_080A1236: - lsls r1, r4, 1 - ldr r6, _080A12C0 - adds r0, r1, r6 - str r3, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r6, 0x40 - adds r0, r1, r6 - str r3, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r6, _080A12C4 - adds r0, r1, r6 - str r3, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080A12C8 - adds r1, r0 - str r3, [r2] - str r1, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080A1236 -_080A1272: - mov r1, r12 - lsls r0, r1, 16 - cmp r0, 0 - beq _080A1286 - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0 - ble _080A1286 - cmp r0, 0x9 - ble _080A12A4 -_080A1286: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _080A129A - ldr r0, _080A12CC - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x12 - bl sub_80A1FF8 -_080A129A: - bl sub_80A1D18 - mov r0, r8 - bl DestroyTask -_080A12A4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A12B0: .4byte 0x040000d4 -_080A12B4: .4byte 0x80000800 -_080A12B8: .4byte 0xfffff000 -_080A12BC: .4byte 0x80000001 -_080A12C0: .4byte 0x0600e480 -_080A12C4: .4byte 0x0600ec80 -_080A12C8: .4byte 0x0600ecc0 -_080A12CC: .4byte gOtherText_Status - thumb_func_end sub_80A1048 - - thumb_func_start sub_80A12D0 -sub_80A12D0: @ 80A12D0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x1D - bl sub_80A18E4 - ldr r0, _080A1310 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A1314 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0x8] - cmp r4, 0 - bge _080A1318 - movs r0, 0xA - b _080A131A - .align 2, 0 -_080A1310: .4byte sub_80A1048 -_080A1314: .4byte gTasks -_080A1318: - movs r0, 0 -_080A131A: - strh r0, [r1, 0xA] - ldr r0, _080A1330 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0xC] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1330: .4byte gTasks - thumb_func_end sub_80A12D0 - - thumb_func_start sub_80A1334 -sub_80A1334: @ 80A1334 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, 2 - add r0, r10 - lsls r0, 3 - ldr r1, _080A13E4 - adds r7, r0, r1 - ldrh r0, [r7] - ldrh r1, [r7, 0x2] - adds r0, r1 - strh r0, [r7, 0x2] - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0 - cmp r1, 0 - blt _080A136A - movs r0, 0xA - cmp r1, 0xA - bgt _080A136A - ldrh r0, [r7, 0x2] -_080A136A: - lsls r0, 16 - asrs r2, r0, 16 - mov r9, r0 - cmp r2, 0 - ble _080A13A6 - movs r0, 0xA - subs r0, r2 - lsls r0, 1 - ldr r1, _080A13E8 - adds r4, r0, r1 - movs r5, 0 - adds r6, r2, 0 - ldr r0, _080A13EC - mov r8, r0 -_080A1386: - adds r0, r5, 0 - adds r0, 0xD - lsls r0, 6 - ldr r1, _080A13F0 - adds r0, r1 - adds r1, r4, 0 - mov r2, r8 - ands r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A1386 -_080A13A6: - mov r1, r9 - asrs r2, r1, 16 - cmp r2, 0x9 - bgt _080A13F4 - ldr r4, _080A13E8 - movs r5, 0 - mov r8, sp - movs r0, 0xA - subs r6, r0, r2 - ldr r0, _080A13EC - ands r6, r0 - movs r0, 0x80 - lsls r0, 17 - mov r9, r0 -_080A13C2: - ldrh r0, [r7, 0x4] - mov r1, r8 - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - mov r2, r9 - orrs r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A13C2 - b _080A1400 - .align 2, 0 -_080A13E4: .4byte gUnknown_03004B28 -_080A13E8: .4byte 0x06005b40 -_080A13EC: .4byte 0x001fffff -_080A13F0: .4byte gUnknown_08E73E88 -_080A13F4: - movs r0, 0 - movs r1, 0x13 - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A1400: - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080A1410 - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0 - bge _080A144A -_080A1410: - ldr r4, _080A1480 - ldrb r0, [r4, 0xB] - cmp r0, 0x2 - bne _080A1444 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A0958 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _080A1444 - ldr r0, _080A1484 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x12 - bl sub_80A1FF8 -_080A1444: - mov r0, r10 - bl DestroyTask -_080A144A: - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0x9 - ble _080A1470 - ldr r4, _080A1480 - ldrb r0, [r4, 0xB] - cmp r0, 0x2 - bne _080A1460 - ldrb r0, [r7, 0x6] - bl sub_80A00F4 -_080A1460: - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r7, 0x6 - bl sub_80A0428 - mov r0, r10 - bl DestroyTask -_080A1470: - 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 -_080A1480: .4byte 0x02018000 -_080A1484: .4byte gOtherText_Status - thumb_func_end sub_80A1334 - - thumb_func_start sub_80A1488 -sub_80A1488: @ 80A1488 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080A14DC - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A14A6 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A14A6: - ldr r5, _080A14E0 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - bne _080A14C2 - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 -_080A14C2: - ldr r1, _080A14E4 - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r1 - lsls r0, r6, 24 - asrs r0, 24 - strh r0, [r3, 0x8] - cmp r0, 0 - bge _080A14E8 - movs r0, 0xA - b _080A14EA - .align 2, 0 -_080A14DC: .4byte 0x02018000 -_080A14E0: .4byte sub_80A1334 -_080A14E4: .4byte gTasks -_080A14E8: - movs r0, 0 -_080A14EA: - strh r0, [r3, 0xA] - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - strh r7, [r0, 0xE] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A1488 - - thumb_func_start sub_80A1500 -sub_80A1500: @ 80A1500 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, 2 - add r0, r10 - lsls r0, 3 - ldr r1, _080A15B0 - adds r7, r0, r1 - ldrh r0, [r7] - ldrh r1, [r7, 0x2] - adds r0, r1 - strh r0, [r7, 0x2] - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0 - cmp r1, 0 - blt _080A1536 - movs r0, 0xA - cmp r1, 0xA - bgt _080A1536 - ldrh r0, [r7, 0x2] -_080A1536: - lsls r0, 16 - asrs r2, r0, 16 - mov r9, r0 - cmp r2, 0 - ble _080A1572 - movs r0, 0xA - subs r0, r2 - lsls r0, 1 - ldr r1, _080A15B4 - adds r4, r0, r1 - movs r5, 0 - adds r6, r2, 0 - ldr r0, _080A15B8 - mov r8, r0 -_080A1552: - adds r0, r5, 0 - adds r0, 0xD - lsls r0, 6 - ldr r1, _080A15BC - adds r0, r1 - adds r1, r4, 0 - mov r2, r8 - ands r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A1552 -_080A1572: - mov r1, r9 - asrs r2, r1, 16 - cmp r2, 0x9 - bgt _080A15C0 - ldr r4, _080A15B4 - movs r5, 0 - mov r8, sp - movs r0, 0xA - subs r6, r0, r2 - ldr r0, _080A15B8 - ands r6, r0 - movs r0, 0x80 - lsls r0, 17 - mov r9, r0 -_080A158E: - ldrh r0, [r7, 0x4] - mov r1, r8 - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - mov r2, r9 - orrs r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A158E - b _080A15CC - .align 2, 0 -_080A15B0: .4byte gUnknown_03004B28 -_080A15B4: .4byte 0x06006b40 -_080A15B8: .4byte 0x001fffff -_080A15BC: .4byte gUnknown_08E74688 -_080A15C0: - movs r0, 0 - movs r1, 0x13 - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A15CC: - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080A15DC - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0 - bge _080A1616 -_080A15DC: - ldr r4, _080A164C - ldrb r0, [r4, 0xB] - cmp r0, 0x3 - bne _080A1610 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A0958 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _080A1610 - ldr r0, _080A1650 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x12 - bl sub_80A1FF8 -_080A1610: - mov r0, r10 - bl DestroyTask -_080A1616: - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0x9 - ble _080A163C - ldr r4, _080A164C - ldrb r0, [r4, 0xB] - cmp r0, 0x3 - bne _080A162C - ldrb r0, [r7, 0x6] - bl sub_80A00F4 -_080A162C: - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r7, 0x6 - bl sub_80A0428 - mov r0, r10 - bl DestroyTask -_080A163C: - 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 -_080A164C: .4byte 0x02018000 -_080A1650: .4byte gOtherText_Status - thumb_func_end sub_80A1500 - - thumb_func_start sub_80A1654 -sub_80A1654: @ 80A1654 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080A16A8 - ldrb r0, [r0, 0xB] - cmp r0, 0x3 - bne _080A1672 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A1672: - ldr r5, _080A16AC - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - bne _080A168E - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 -_080A168E: - ldr r1, _080A16B0 - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r1 - lsls r0, r6, 24 - asrs r0, 24 - strh r0, [r3, 0x8] - cmp r0, 0 - bge _080A16B4 - movs r0, 0xA - b _080A16B6 - .align 2, 0 -_080A16A8: .4byte 0x02018000 -_080A16AC: .4byte sub_80A1500 -_080A16B0: .4byte gTasks -_080A16B4: - movs r0, 0 -_080A16B6: - strh r0, [r3, 0xA] - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - strh r7, [r0, 0xE] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A1654 - - thumb_func_start sub_80A16CC -sub_80A16CC: @ 80A16CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080A1724 - mov r12, r0 - mov r1, r9 - cmp r1, 0 - bne _080A172C - movs r5, 0 - ldr r7, _080A1728 - movs r0, 0x80 - lsls r0, 5 - adds r6, r0, 0 - movs r1, 0x40 - adds r1, r7 - mov r8, r1 -_080A16F4: - lsls r2, r5, 1 - mov r0, r12 - adds r3, r2, r0 - adds r4, r2, r7 - ldrh r1, [r4] - adds r0, r6, r1 - strh r0, [r3] - adds r1, r3, 0 - adds r1, 0x40 - ldrh r4, [r4] - adds r0, r6, r4 - strh r0, [r1] - adds r3, 0x80 - add r2, r8 - ldrh r2, [r2] - adds r0, r6, r2 - strh r0, [r3] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A16F4 - b _080A1768 - .align 2, 0 -_080A1724: .4byte 0x06006ad4 -_080A1728: .4byte gUnknown_08E94510 -_080A172C: - movs r5, 0 - ldr r6, _080A17B0 - movs r7, 0x80 - lsls r7, 5 - adds r4, r7, 0 - movs r0, 0x40 - adds r0, r6 - mov r8, r0 -_080A173C: - lsls r1, r5, 1 - mov r7, r12 - adds r2, r1, r7 - adds r0, r1, r6 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r3, r2, 0 - adds r3, 0x40 - add r1, r8 - ldrh r7, [r1] - adds r0, r4, r7 - strh r0, [r3] - adds r2, 0x80 - ldrh r1, [r1] - adds r0, r4, r1 - strh r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A173C -_080A1768: - ldr r0, _080A17B4 - mov r12, r0 - mov r1, r9 - cmp r1, 0 - bne _080A17BC - movs r5, 0 - ldr r7, _080A17B8 - movs r0, 0xC0 - lsls r0, 6 - adds r6, r0, 0 - movs r1, 0x40 - adds r1, r7 - mov r8, r1 -_080A1782: - lsls r2, r5, 1 - mov r0, r12 - adds r3, r2, r0 - adds r4, r2, r7 - ldrh r1, [r4] - adds r0, r6, r1 - strh r0, [r3] - adds r1, r3, 0 - adds r1, 0x40 - ldrh r4, [r4] - adds r0, r6, r4 - strh r0, [r1] - adds r3, 0x80 - add r2, r8 - ldrh r2, [r2] - adds r0, r6, r2 - strh r0, [r3] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A1782 - b _080A17F8 - .align 2, 0 -_080A17B0: .4byte gUnknown_08E94550 -_080A17B4: .4byte 0x06005ad4 -_080A17B8: .4byte gUnknown_08E94510 -_080A17BC: - movs r5, 0 - ldr r6, _080A1804 - movs r7, 0xC0 - lsls r7, 6 - adds r4, r7, 0 - movs r0, 0x40 - adds r0, r6 - mov r8, r0 -_080A17CC: - lsls r1, r5, 1 - mov r7, r12 - adds r2, r1, r7 - adds r0, r1, r6 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r3, r2, 0 - adds r3, 0x40 - add r1, r8 - ldrh r7, [r1] - adds r0, r4, r7 - strh r0, [r3] - adds r2, 0x80 - ldrh r1, [r1] - adds r0, r4, r1 - strh r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A17CC -_080A17F8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1804: .4byte gUnknown_08E94550 - thumb_func_end sub_80A16CC - - thumb_func_start sub_80A1808 -sub_80A1808: @ 80A1808 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r1, 0x41 - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080A1860 - movs r1, 0x28 - movs r2, 0x40 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - ldr r5, _080A1864 - adds r7, r4, r5 - adds r0, r7, 0 - bl FreeSpriteOamMatrix - strh r6, [r7, 0x2E] - adds r5, 0x1C - adds r4, r5 - ldr r0, _080A1868 - str r0, [r4] - adds r0, r6, 0 - bl sub_8040A3C - lsls r0, 24 - cmp r0, 0 - bne _080A186C - adds r0, r7, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _080A187A - .align 2, 0 -_080A1860: .4byte gUnknown_02024E8C -_080A1864: .4byte gSprites -_080A1868: .4byte sub_80A1888 -_080A186C: - adds r2, r7, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080A187A: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A1808 - - thumb_func_start sub_80A1888 -sub_80A1888: @ 80A1888 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A18B8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A18B0 - ldr r0, _080A18BC - str r0, [r4, 0x1C] - ldr r0, _080A18C0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080A18B0 - ldrh r0, [r4, 0x2E] - movs r1, 0 - bl PlayCry1 -_080A18B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A18B8: .4byte gPaletteFade -_080A18BC: .4byte SpriteCallbackDummy -_080A18C0: .4byte 0x02018010 - thumb_func_end sub_80A1888 - - thumb_func_start sub_80A18C4 -sub_80A18C4: @ 80A18C4 - push {lr} - movs r1, 0 - ldr r3, _080A18E0 - movs r2, 0xFF -_080A18CC: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bls _080A18CC - pop {r0} - bx r0 - .align 2, 0 -_080A18E0: .4byte 0x0201a000 - thumb_func_end sub_80A18C4 - - thumb_func_start sub_80A18E4 -sub_80A18E4: @ 80A18E4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A1910 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080A1908 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A1914 - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080A1908: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1910: .4byte 0x0201a000 -_080A1914: .4byte gSprites - thumb_func_end sub_80A18E4 - - thumb_func_start sub_80A1918 -sub_80A1918: @ 80A1918 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080A1948 - ldr r2, _080A194C - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_080A1948: .4byte gSprites -_080A194C: .4byte 0x0201a000 - thumb_func_end sub_80A1918 - - thumb_func_start sub_80A1950 -sub_80A1950: @ 80A1950 - push {r4,r5,lr} - movs r5, 0 -_080A1954: - ldr r0, _080A1984 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080A196C - ldr r0, _080A1988 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl CreateSprite - strb r0, [r4] -_080A196C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080A1954 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1984: .4byte 0x0201a000 -_080A1988: .4byte gSpriteTemplate_83C11C0 - thumb_func_end sub_80A1950 - - thumb_func_start sub_80A198C -sub_80A198C: @ 80A198C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r10, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080A1A24 - mov r8, r1 - add r8, r10 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A1A28 - mov r9, r1 - add r0, r9 - adds r1, r4, 0 - bl StartSpriteAnim - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldr r0, _080A1A2C - adds r4, r0 - ldrb r2, [r4] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r5, 0x10 - strh r5, [r0, 0x20] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r6, 0x8 - strh r6, [r0, 0x22] - mov r0, r10 - movs r1, 0 - bl sub_80A1918 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1A24: .4byte 0x0201a000 -_080A1A28: .4byte gSprites -_080A1A2C: .4byte gUnknown_083C11D8 - thumb_func_end sub_80A198C - - thumb_func_start sub_80A1A30 -sub_80A1A30: @ 80A1A30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - mov r9, r0 - ldr r1, _080A1A98 - ldrb r0, [r1, 0xB] - cmp r0, 0x1 - bls _080A1B0A - cmp r4, 0x9 - bne _080A1A52 - movs r3, 0x1 - mov r9, r3 -_080A1A52: - movs r5, 0 - movs r0, 0x80 - lsls r0, 6 - adds r0, r1 - mov r8, r0 - ldr r6, _080A1A9C - mov r10, r5 -_080A1A60: - lsls r1, r5, 20 - movs r3, 0xB0 - lsls r3, 15 - adds r1, r3 - asrs r1, 16 - ldr r0, _080A1AA0 - movs r2, 0x28 - mov r3, r9 - bl CreateSprite - adds r1, r4, r5 - mov r3, r8 - adds r2, r1, r3 - strb r0, [r2] - adds r7, r1, 0 - cmp r5, 0 - bne _080A1AA4 - adds r0, r4, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartSpriteAnim - b _080A1AD0 - .align 2, 0 -_080A1A98: .4byte 0x02018000 -_080A1A9C: .4byte gSprites -_080A1AA0: .4byte gSpriteTemplate_83C1280 -_080A1AA4: - cmp r5, 0x9 - bne _080A1AC0 - adds r0, r4, 0 - adds r0, 0x9 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartSpriteAnim - b _080A1AD0 -_080A1AC0: - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartSpriteAnim -_080A1AD0: - mov r0, r8 - adds r2, r7, r0 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080A1B18 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r10 - strh r1, [r0, 0x30] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _080A1A60 -_080A1B0A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1B18: .4byte sub_80A1BC0 - thumb_func_end sub_80A1A30 - - thumb_func_start sub_80A1B1C -sub_80A1B1C: @ 80A1B1C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_080A1B24: - adds r0, r5, r4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A18E4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080A1B24 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A1B1C - - thumb_func_start sub_80A1B40 -sub_80A1B40: @ 80A1B40 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 24 - ldr r0, _080A1BB4 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, _080A1BB8 - adds r0, r2 - lsrs r7, r1, 24 - movs r2, 0x80 - lsls r2, 19 - adds r1, r2 - lsrs r1, 24 - bl StartSpriteAnim - movs r4, 0 - adds r0, r7, 0x6 - lsls r0, 24 - mov r8, r0 -_080A1B74: - ldr r6, _080A1BBC - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080A1BB8 - adds r0, r5 - mov r2, r8 - lsrs r1, r2, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080A1B74 - ldrb r1, [r6, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r1, r7, 0x5 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1BB4: .4byte 0x0201a009 -_080A1BB8: .4byte gSprites -_080A1BBC: .4byte 0x0201a00a - thumb_func_end sub_80A1B40 - - thumb_func_start sub_80A1BC0 -sub_80A1BC0: @ 80A1BC0 - push {lr} - adds r2, r0, 0 - adds r0, 0x2A - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _080A1BF8 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x30] - cmp r0, 0x18 - ble _080A1BEC - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - b _080A1C06 -_080A1BEC: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - b _080A1C04 -_080A1BF8: - movs r0, 0 - strh r0, [r2, 0x30] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - subs r0, 0x5 -_080A1C04: - ands r0, r1 -_080A1C06: - strb r0, [r3] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x9 - bne _080A1C1C - ldr r0, _080A1C18 - adds r0, 0x79 - b _080A1C20 - .align 2, 0 -_080A1C18: .4byte 0x02018000 -_080A1C1C: - ldr r0, _080A1C2C - adds r0, 0x7A -_080A1C20: - ldrb r0, [r0] - lsls r0, 4 - strh r0, [r2, 0x26] - pop {r0} - bx r0 - .align 2, 0 -_080A1C2C: .4byte 0x02018000 - thumb_func_end sub_80A1BC0 - - thumb_func_start sub_80A1C30 -sub_80A1C30: @ 80A1C30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 25 - lsrs r3, r0, 24 - adds r4, r3, 0 - adds r0, r3, 0 - adds r0, 0xA - cmp r3, r0 - bge _080A1C82 - ldr r5, _080A1C88 - movs r7, 0x5 - negs r7, r7 - ldr r6, _080A1C8C -_080A1C50: - adds r2, r3, r6 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, 0 - adds r0, 0xA - cmp r3, r0 - blt _080A1C50 -_080A1C82: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1C88: .4byte gSprites -_080A1C8C: .4byte 0x0201a009 - thumb_func_end sub_80A1C30 - - thumb_func_start pokemon_ailments_get_primary -pokemon_ailments_get_primary: @ 80A1C90 - push {lr} - adds r1, r0, 0 - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - beq _080A1CA0 - movs r0, 0x1 - b _080A1CD2 -_080A1CA0: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080A1CAC - movs r0, 0x2 - b _080A1CD2 -_080A1CAC: - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080A1CB8 - movs r0, 0x3 - b _080A1CD2 -_080A1CB8: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A1CC4 - movs r0, 0x4 - b _080A1CD2 -_080A1CC4: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080A1CD0 - movs r0, 0 - b _080A1CD2 -_080A1CD0: - movs r0, 0x5 -_080A1CD2: - pop {r1} - bx r1 - thumb_func_end pokemon_ailments_get_primary - - thumb_func_start sub_80A1CD8 -sub_80A1CD8: @ 80A1CD8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A1CEA - movs r0, 0x7 - b _080A1D12 -_080A1CEA: - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A1D12 - adds r0, r4, 0 - movs r1, 0 - bl sub_8040110 - lsls r0, 24 - cmp r0, 0 - bne _080A1D10 - movs r0, 0 - b _080A1D12 -_080A1D10: - movs r0, 0x6 -_080A1D12: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A1CD8 - - thumb_func_start sub_80A1D18 -sub_80A1D18: @ 80A1D18 - push {r4,r5,lr} - sub sp, 0x64 - mov r0, sp - bl sub_809F678 - mov r0, sp - bl sub_80A1CD8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080A1D58 - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A1D50 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080A1D60 - ldr r0, _080A1D54 - movs r1, 0x40 - movs r2, 0x98 - movs r3, 0 - bl CreateSprite - strb r0, [r4] - b _080A1D60 - .align 2, 0 -_080A1D50: .4byte 0x0201a01d -_080A1D54: .4byte gSpriteTemplate_83C1304 -_080A1D58: - movs r0, 0x1D - bl sub_80A18E4 - b _080A1D74 -_080A1D60: - ldr r0, _080A1D7C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A1D80 - adds r0, r1 - adds r1, r5, 0 - bl StartSpriteAnim -_080A1D74: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1D7C: .4byte 0x0201a01d -_080A1D80: .4byte gSprites - thumb_func_end sub_80A1D18 - - thumb_func_start sub_80A1D84 -sub_80A1D84: @ 80A1D84 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, _080A1DC0 - ldr r2, _080A1DC4 - adds r0, r1, 0 - bl sub_80F7920 - adds r4, r0, 0 - ldr r6, _080A1DC8 - str r4, [r6] - cmp r4, 0 - beq _080A1DBA - adds r0, r5, 0 - movs r1, 0x8 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, [r6] - movs r0, 0x3C - strh r0, [r1, 0x20] - movs r0, 0x1A - strh r0, [r1, 0x22] -_080A1DBA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1DC0: .4byte 0x00007533 -_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette -_080A1DC8: .4byte gUnknown_020384F4 - thumb_func_end sub_80A1D84 - - thumb_func_start sub_80A1DCC -sub_80A1DCC: @ 80A1DCC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A1DE4 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - bl sub_80A1D84 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1DE4: .4byte gUnknown_020384F4 - thumb_func_end sub_80A1DCC - - thumb_func_start sub_80A1DE8 -sub_80A1DE8: @ 80A1DE8 - push {r4,lr} - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80478DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A1E48 - adds r0, r1 - movs r1, 0x6 - movs r2, 0x88 - movs r3, 0 - bl CreateSprite - ldr r2, _080A1E4C - strb r0, [r2, 0xD] - ldr r3, _080A1E50 - ldrb r1, [r2, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080A1E54 - str r1, [r0] - ldrb r1, [r2, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1E48: .4byte gSpriteTemplate_820AAB4 -_080A1E4C: .4byte 0x02018000 -_080A1E50: .4byte gSprites -_080A1E54: .4byte SpriteCallbackDummy - thumb_func_end sub_80A1DE8 - - thumb_func_start sub_80A1E58 -sub_80A1E58: @ 80A1E58 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - beq _080A1E92 - ldr r3, _080A1E6C - ldrb r0, [r3] - adds r4, r2, 0x5 - b _080A1E74 - .align 2, 0 -_080A1E6C: .4byte gUnknown_083C15BC -_080A1E70: - adds r3, 0x4 - ldrb r0, [r3] -_080A1E74: - cmp r0, 0xFF - beq _080A1E7C - cmp r0, r1 - bne _080A1E70 -_080A1E7C: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x4 - strb r0, [r2, 0x1] - ldrb r0, [r3, 0x1] - strb r0, [r2, 0x2] - ldrb r0, [r3, 0x2] - strb r0, [r2, 0x3] - ldrb r0, [r3, 0x3] - strb r0, [r2, 0x4] - adds r2, r4, 0 -_080A1E92: - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A1E58 - - thumb_func_start sub_80A1E9C -sub_80A1E9C: @ 80A1E9C - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - mov r1, sp - adds r1, 0x1 - mov r2, sp - adds r2, 0x2 - mov r0, sp - bl sub_8072CD4 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80A1E58 - adds r6, r0, 0 - adds r1, r5, 0 - bl StringCopy - adds r6, r0, 0 - cmp r4, 0xFF - beq _080A1EEC - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x4 - strb r0, [r6, 0x1] - mov r0, sp - ldrb r0, [r0] - strb r0, [r6, 0x2] - mov r0, sp - ldrb r0, [r0, 0x1] - strb r0, [r6, 0x3] - mov r0, sp - ldrb r0, [r0, 0x2] - strb r0, [r6, 0x4] - movs r0, 0xFF - strb r0, [r6, 0x5] - adds r6, 0x5 -_080A1EEC: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A1E9C - - thumb_func_start sub_80A1EF8 -sub_80A1EF8: @ 80A1EF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080A1F44 - mov r8, r0 - mov r1, r9 - adds r2, r4, 0 - str r3, [sp] - bl sub_80A1E9C - ldr r3, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80729D8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1F44: .4byte gStringVar4 - thumb_func_end sub_80A1EF8 - - thumb_func_start sub_80A1F48 -sub_80A1F48: @ 80A1F48 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _080A1F94 - mov r8, r0 - mov r1, r9 - adds r2, r4, 0 - str r3, [sp] - bl sub_80A1E9C - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - ldr r3, [sp] - bl sub_8072BD8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1F94: .4byte gStringVar4 - thumb_func_end sub_80A1F48 - - thumb_func_start sub_80A1F98 -sub_80A1F98: @ 80A1F98 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - mov r8, r1 - adds r4, r2, 0 - adds r2, r3, 0 - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080A1FF4 - mov r9, r0 - mov r1, r10 - adds r3, r4, 0 - bl ConvertIntToDecimalStringN - str r7, [sp] - mov r0, r9 - mov r1, r8 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_80A1EF8 - 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 -_080A1FF4: .4byte gStringVar1 - thumb_func_end sub_80A1F98 - - thumb_func_start sub_80A1FF8 -sub_80A1FF8: @ 80A1FF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _080A2038 - mov r8, r0 - mov r1, r9 - adds r2, r4, 0 - bl sub_80A1E9C - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2038: .4byte gStringVar4 - thumb_func_end sub_80A1FF8 - - thumb_func_start sub_80A203C -sub_80A203C: @ 80A203C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x34 - strb r0, [r4] - adds r4, 0x1 - cmp r1, 0 - bne _080A2052 - movs r1, 0x5 -_080A2052: - mov r0, sp - bl ConvertIntToDecimalString - adds r0, r4, 0 - mov r1, sp - movs r2, 0xE - bl sub_80A1E9C - adds r4, r0, 0 - ldr r1, _080A2074 - bl StringCopy - adds r4, r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A2074: .4byte gOtherText_Comma - thumb_func_end sub_80A203C - - thumb_func_start BgFrame_FillTileMap -BgFrame_FillTileMap: @ 80A2078 - push {lr} - ldr r3, _080A209C - ldr r2, _080A20A0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, [r1] - str r2, [r3] - ldr r2, _080A20A4 - str r2, [r1] - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080A209C: .4byte gUnknown_03005CF0 -_080A20A0: .4byte gTasks -_080A20A4: .4byte sub_80A20A8 - thumb_func_end BgFrame_FillTileMap - - thumb_func_start sub_80A20A8 -sub_80A20A8: @ 80A20A8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8055870 - cmp r0, 0x1 - beq _080A20C6 - ldr r1, _080A20CC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A20D0 - ldr r1, [r1] - str r1, [r0] -_080A20C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A20CC: .4byte gTasks -_080A20D0: .4byte gUnknown_03005CF0 - thumb_func_end sub_80A20A8 - - thumb_func_start exec_movement -exec_movement: @ 80A20D4 - push {r4,lr} - sub sp, 0x4 - adds r4, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _080A20F6 - movs r0, 0x1 - b _080A211E -_080A20F6: - ldr r0, _080A2128 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _080A2108 - movs r0, 0x32 - bl sub_80A2198 -_080A2108: - bl sub_80A21E0 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - ldrb r1, [r1] - adds r2, r4, 0 - bl sub_80A21F4 - lsls r0, 24 - lsrs r0, 24 -_080A211E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A2128: .4byte sub_80A244C - thumb_func_end exec_movement - - thumb_func_start sub_80A212C -sub_80A212C: @ 80A212C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080A216E - bl sub_80A21E0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80A2260 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x10 - beq _080A216E - adds r0, r4, 0 - bl sub_80A2370 - lsls r0, 24 - lsrs r0, 24 - b _080A2170 -_080A216E: - movs r0, 0x1 -_080A2170: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A212C - - thumb_func_start sub_80A2178 -sub_80A2178: @ 80A2178 - push {r4,lr} - bl sub_80A21E0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080A2192 - adds r0, r4, 0 - bl sub_80A2408 - adds r0, r4, 0 - bl DestroyTask -_080A2192: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2178 - - thumb_func_start sub_80A2198 -sub_80A2198: @ 80A2198 - push {r4,r5,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080A21D4 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1 - lsls r1, r0, 2 - adds r1, r0 - lsls r3, r1, 3 - ldr r5, _080A21D8 - ldr r0, _080A21DC - adds r4, r0, 0 -_080A21B8: - lsls r0, r2, 1 - adds r0, r3 - adds r0, r5 - ldrh r1, [r0] - orrs r1, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080A21B8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A21D4: .4byte sub_80A244C -_080A21D8: .4byte gUnknown_03004B28 -_080A21DC: .4byte 0x0000ffff - thumb_func_end sub_80A2198 - - thumb_func_start sub_80A21E0 -sub_80A21E0: @ 80A21E0 - push {lr} - ldr r0, _080A21F0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080A21F0: .4byte sub_80A244C - thumb_func_end sub_80A21E0 - - thumb_func_start sub_80A21F4 -sub_80A21F4: @ 80A21F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r8, r6 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80A2260 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x10 - beq _080A2230 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A2370 - lsls r0, 24 - cmp r0, 0 - beq _080A2250 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - b _080A2246 -_080A2230: - adds r0, r7, 0 - movs r1, 0xFF - bl sub_80A2260 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x10 - beq _080A2250 - adds r0, r7, 0 - adds r1, r4, 0 - mov r2, r8 -_080A2246: - mov r3, r9 - bl sub_80A23C8 - movs r0, 0 - b _080A2252 -_080A2250: - movs r0, 0x1 -_080A2252: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A21F4 - - thumb_func_start sub_80A2260 -sub_80A2260: @ 80A2260 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A2284 - adds r1, r0 - adds r1, 0x2 - movs r2, 0 -_080A2278: - ldrb r0, [r1] - cmp r0, r3 - bne _080A2288 - adds r0, r2, 0 - b _080A2296 - .align 2, 0 -_080A2284: .4byte gUnknown_03004B28 -_080A2288: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 - cmp r2, 0xF - bls _080A2278 - movs r0, 0x10 -_080A2296: - pop {r1} - bx r1 - thumb_func_end sub_80A2260 - - thumb_func_start sub_80A229C -sub_80A229C: @ 80A229C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A22CC - adds r1, r0 - adds r1, 0x2 - str r1, [r2] - movs r0, 0 - cmp r0, r3 - bcs _080A22C8 -_080A22BA: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, 0x1 - cmp r0, r3 - bcc _080A22BA - str r1, [r2] -_080A22C8: - pop {r0} - bx r0 - .align 2, 0 -_080A22CC: .4byte gUnknown_03004B28 - thumb_func_end sub_80A229C - - thumb_func_start sub_80A22D0 -sub_80A22D0: @ 80A22D0 - push {r4,lr} - sub sp, 0x4 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - mov r2, sp - bl sub_80A229C - ldr r0, [sp] - strb r4, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A22D0 - - thumb_func_start sub_80A22F4 -sub_80A22F4: @ 80A22F4 - push {r4,lr} - sub sp, 0x4 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r2, sp - bl sub_80A229C - ldr r0, [sp] - ldrb r0, [r0] - strb r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A22F4 - - thumb_func_start sub_80A2318 -sub_80A2318: @ 80A2318 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r2, _080A2340 - lsrs r1, 22 - adds r1, r2 - ldr r2, [r1] - mvns r2, r2 - lsls r2, 16 - lsrs r2, 16 - ldr r3, _080A2344 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0x8] - ands r2, r0 - strh r2, [r1, 0x8] - bx lr - .align 2, 0 -_080A2340: .4byte gBitTable -_080A2344: .4byte gTasks - thumb_func_end sub_80A2318 - - thumb_func_start sub_80A2348 -sub_80A2348: @ 80A2348 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _080A2368 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldr r0, _080A236C - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldrh r1, [r2, 0x8] - orrs r0, r1 - strh r0, [r2, 0x8] - bx lr - .align 2, 0 -_080A2368: .4byte gTasks -_080A236C: .4byte gBitTable - thumb_func_end sub_80A2348 - - thumb_func_start sub_80A2370 -sub_80A2370: @ 80A2370 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _080A2398 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldr r0, _080A239C - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldrh r1, [r2, 0x8] - ands r0, r1 - cmp r0, 0 - bne _080A23A0 - movs r0, 0 - b _080A23A2 - .align 2, 0 -_080A2398: .4byte gTasks -_080A239C: .4byte gBitTable -_080A23A0: - movs r0, 0x1 -_080A23A2: - pop {r1} - bx r1 - thumb_func_end sub_80A2370 - - thumb_func_start npc_obj_offscreen_culling_and_flag_update -npc_obj_offscreen_culling_and_flag_update: @ 80A23A8 - lsls r0, 24 - ldr r2, _080A23B4 - lsrs r0, 22 - adds r0, r2 - str r1, [r0] - bx lr - .align 2, 0 -_080A23B4: .4byte gUnknown_020384F8 - thumb_func_end npc_obj_offscreen_culling_and_flag_update - - thumb_func_start sub_80A23B8 -sub_80A23B8: @ 80A23B8 - lsls r0, 24 - ldr r1, _080A23C4 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_080A23C4: .4byte gUnknown_020384F8 - thumb_func_end sub_80A23B8 - - thumb_func_start sub_80A23C8 -sub_80A23C8: @ 80A23C8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A2318 - adds r0, r4, 0 - mov r1, r8 - bl npc_obj_offscreen_culling_and_flag_update - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_80A22D0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A23C8 - - thumb_func_start sub_80A2408 -sub_80A2408: @ 80A2408 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A2444 - adds r1, r0 - adds r4, r1, 0x2 - movs r5, 0 -_080A241C: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080A2432 - adds r1, r0, 0 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A2448 - adds r0, r1 - bl npc_sync_anim_pause_bits -_080A2432: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x1 - cmp r5, 0xF - bls _080A241C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2444: .4byte gUnknown_03004B28 -_080A2448: .4byte gMapObjects - thumb_func_end sub_80A2408 - - thumb_func_start sub_80A244C -sub_80A244C: @ 80A244C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 - mov r6, sp -_080A2458: - adds r0, r7, 0 - adds r1, r5, 0 - mov r2, sp - bl sub_80A22F4 - ldrb r0, [r6] - cmp r0, 0xFF - beq _080A247C - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_80A23B8 - adds r3, r0, 0 - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_80A2490 -_080A247C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080A2458 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A244C - - thumb_func_start sub_80A2490 -sub_80A2490: @ 80A2490 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r3, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - mov r8, r6 - lsls r2, 24 - lsrs r2, 24 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r1, _080A24E0 - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080A24C8 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080A24FA -_080A24C8: - ldrb r1, [r5] - cmp r1, 0xFE - bne _080A24E4 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80A2348 - adds r0, r4, 0 - bl sub_80643A4 - b _080A24FA - .align 2, 0 -_080A24E0: .4byte gMapObjects -_080A24E4: - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - lsls r0, 24 - cmp r0, 0 - bne _080A24FA - adds r5, 0x1 - mov r0, r8 - adds r1, r5, 0 - bl npc_obj_offscreen_culling_and_flag_update -_080A24FA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A2490 - - thumb_func_start SetUpFieldMove_Cut -SetUpFieldMove_Cut: @ 80A2504 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x52 - bl npc_before_player_of_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A2534 - ldr r1, _080A2524 - ldr r0, _080A2528 - str r0, [r1] - ldr r1, _080A252C - ldr r0, _080A2530 - b _080A25A8 - .align 2, 0 -_080A2524: .4byte gUnknown_0300485C -_080A2528: .4byte sub_808AB90 -_080A252C: .4byte gUnknown_03005CE4 -_080A2530: .4byte sub_80A2634 -_080A2534: - ldr r4, _080A25B0 - adds r1, r4, 0x2 - adds r0, r4, 0 - bl PlayerGetDestCoords - movs r7, 0 - mov r8, r4 -_080A2542: - ldr r1, _080A25B4 - adds r0, r7, r1 - mov r2, r8 - ldrh r2, [r2, 0x2] - adds r0, r2 - movs r6, 0 - lsls r0, 16 - asrs r5, r0, 16 -_080A2552: - ldr r1, _080A25B4 - adds r0, r6, r1 - mov r2, r8 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - movs r1, 0x4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _080A25C8 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8056E14 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A259E - adds r0, r4, 0 - bl MetatileBehavior_IsAsh - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A25C8 -_080A259E: - ldr r1, _080A25B8 - ldr r0, _080A25BC - str r0, [r1] - ldr r1, _080A25C0 - ldr r0, _080A25C4 -_080A25A8: - str r0, [r1] - movs r0, 0x1 - b _080A25DE - .align 2, 0 -_080A25B0: .4byte gUnknown_0203923C -_080A25B4: .4byte 0x0000ffff -_080A25B8: .4byte gUnknown_0300485C -_080A25BC: .4byte sub_808AB90 -_080A25C0: .4byte gUnknown_03005CE4 -_080A25C4: .4byte sub_80A25E8 -_080A25C8: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _080A2552 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _080A2542 - movs r0, 0 -_080A25DE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Cut - - thumb_func_start sub_80A25E8 -sub_80A25E8: @ 80A25E8 - push {lr} - movs r0, 0x1 - bl FieldEffectStart - ldr r0, _080A25FC - ldr r1, _080A2600 - ldrb r1, [r1] - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080A25FC: .4byte gUnknown_0202FF84 -_080A2600: .4byte gUnknown_03005CE0 - thumb_func_end sub_80A25E8 - - thumb_func_start FldEff_UseCutOnGrass -FldEff_UseCutOnGrass: @ 80A2604 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A262C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A2630 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x12 - bl sav12_xor_increment - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A262C: .4byte gTasks -_080A2630: .4byte sub_80A2684 - thumb_func_end FldEff_UseCutOnGrass - - thumb_func_start sub_80A2634 -sub_80A2634: @ 80A2634 - push {lr} - ldr r1, _080A2648 - ldr r0, _080A264C - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080A2650 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080A2648: .4byte gUnknown_0202FF84 -_080A264C: .4byte gUnknown_03005CE0 -_080A2650: .4byte UseCutScript - thumb_func_end sub_80A2634 - - thumb_func_start FldEff_UseCutOnTree -FldEff_UseCutOnTree: @ 80A2654 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A267C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A2680 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x12 - bl sav12_xor_increment - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A267C: .4byte gTasks -_080A2680: .4byte sub_80A2B00 - thumb_func_end FldEff_UseCutOnTree - - thumb_func_start sub_80A2684 -sub_80A2684: @ 80A2684 - push {lr} - movs r0, 0x1 - bl FieldEffectActiveListRemove - movs r0, 0x3A - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80A2684 - - thumb_func_start FldEff_CutGrass -FldEff_CutGrass: @ 80A2698 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - movs r0, 0x80 - bl PlaySE - ldr r4, _080A2790 - adds r1, r4, 0x2 - adds r0, r4, 0 - bl PlayerGetDestCoords - mov r8, r4 -_080A26B2: - ldr r1, _080A2794 - adds r0, r7, r1 - mov r2, r8 - ldrh r2, [r2, 0x2] - adds r0, r2 - movs r6, 0 - lsls r0, 16 - asrs r5, r0, 16 -_080A26C2: - ldr r1, _080A2794 - adds r0, r6, r1 - mov r2, r8 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - movs r1, 0x4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _080A270E - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80578F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A270E - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A27A8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805BCC0 -_080A270E: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _080A26C2 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _080A26B2 - ldr r1, _080A2790 - ldrh r0, [r1] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r1, 0x2] - subs r1, 0x2 - lsls r1, 16 - asrs r1, 16 - bl sub_80A28F4 - bl DrawWholeMapView - movs r7, 0 - ldr r4, _080A2798 -_080A2740: - ldr r0, _080A279C - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r2, 0x80 - lsls r2, 12 - adds r1, r2 - asrs r1, 16 - ldrb r2, [r0] - adds r2, 0x14 - ldr r0, _080A27A0 - movs r3, 0 - bl CreateSprite - ldr r1, _080A27A4 - adds r1, r7, r1 - strb r0, [r1] - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - lsls r1, r7, 5 - strh r1, [r0, 0x32] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x7 - bls _080A2740 - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080A2790: .4byte gUnknown_0203923C -_080A2794: .4byte 0x0000ffff -_080A2798: .4byte gSprites -_080A279C: .4byte gPlayerAvatar -_080A27A0: .4byte gSpriteTemplate_CutGrass -_080A27A4: .4byte 0x0201fff0 - thumb_func_end FldEff_CutGrass - - thumb_func_start sub_80A27A8 -sub_80A27A8: @ 80A27A8 - push {r4-r7,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r6, r0, 16 - asrs r4, r0, 16 - lsrs r7, r1, 16 - asrs r5, r1, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, _080A27E0 - cmp r1, r0 - bgt _080A27F4 - subs r0, 0x1 - cmp r1, r0 - bge _080A286C - cmp r1, 0x25 - beq _080A288E - cmp r1, 0x25 - bgt _080A27E4 - cmp r1, 0xD - beq _080A2834 - cmp r1, 0x15 - beq _080A2834 - b _080A2898 - .align 2, 0 -_080A27E0: .4byte 0x00000207 -_080A27E4: - movs r0, 0xE3 - lsls r0, 1 - cmp r1, r0 - beq _080A2844 - adds r0, 0x1 - cmp r1, r0 - beq _080A284A - b _080A2898 -_080A27F4: - ldr r0, _080A280C - cmp r1, r0 - beq _080A287C - cmp r1, r0 - bgt _080A2810 - subs r0, 0xA - cmp r1, r0 - beq _080A2834 - adds r0, 0x2 - cmp r1, r0 - beq _080A287C - b _080A2898 - .align 2, 0 -_080A280C: .4byte 0x00000212 -_080A2810: - ldr r0, _080A2824 - cmp r1, r0 - beq _080A285C - cmp r1, r0 - bgt _080A2828 - subs r0, 0x1 - cmp r1, r0 - beq _080A2854 - b _080A2898 - .align 2, 0 -_080A2824: .4byte 0x00000282 -_080A2828: - ldr r0, _080A2830 - cmp r1, r0 - beq _080A2864 - b _080A2898 - .align 2, 0 -_080A2830: .4byte 0x00000283 -_080A2834: - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r7, 16 - asrs r1, 16 - movs r2, 0x1 - bl MapGridSetMetatileIdAt - b _080A2898 -_080A2844: - movs r2, 0xE7 - lsls r2, 1 - b _080A286E -_080A284A: - ldr r2, _080A2850 - b _080A286E - .align 2, 0 -_080A2850: .4byte 0x000001cf -_080A2854: - ldr r2, _080A2858 - b _080A286E - .align 2, 0 -_080A2858: .4byte 0x00000279 -_080A285C: - ldr r2, _080A2860 - b _080A286E - .align 2, 0 -_080A2860: .4byte 0x0000027a -_080A2864: - ldr r2, _080A2868 - b _080A286E - .align 2, 0 -_080A2868: .4byte 0x0000027b -_080A286C: - ldr r2, _080A2878 -_080A286E: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _080A2898 - .align 2, 0 -_080A2878: .4byte 0x00000271 -_080A287C: - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r7, 16 - asrs r1, 16 - movs r2, 0x86 - lsls r2, 2 - bl MapGridSetMetatileIdAt - b _080A2898 -_080A288E: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xE - bl MapGridSetMetatileIdAt -_080A2898: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A27A8 - - thumb_func_start sub_80A28A0 -sub_80A28A0: @ 80A28A0 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - cmp r1, 0x1 - bne _080A28BC - movs r0, 0x1 - b _080A28EE -_080A28BC: - ldr r0, _080A28C8 - cmp r1, r0 - bne _080A28CC - movs r0, 0x2 - b _080A28EE - .align 2, 0 -_080A28C8: .4byte 0x00000279 -_080A28CC: - ldr r0, _080A28D8 - cmp r1, r0 - bne _080A28DC - movs r0, 0x3 - b _080A28EE - .align 2, 0 -_080A28D8: .4byte 0x0000027a -_080A28DC: - ldr r0, _080A28E8 - cmp r2, r0 - beq _080A28EC - movs r0, 0 - b _080A28EE - .align 2, 0 -_080A28E8: .4byte 0x0000027b -_080A28EC: - movs r0, 0x4 -_080A28EE: - pop {r1} - bx r1 - thumb_func_end sub_80A28A0 - - thumb_func_start sub_80A28F4 -sub_80A28F4: @ 80A28F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 16 - movs r2, 0xC0 - lsls r2, 10 - adds r0, r1, r2 - lsrs r0, 16 - mov r9, r0 - movs r4, 0 - asrs r7, r1, 16 -_080A2914: - mov r1, r10 - lsls r0, r1, 16 - asrs r0, 16 - lsls r4, 16 - asrs r1, r4, 16 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r5, r0, 16 - adds r0, r5, 0 - adds r1, r7, 0 - bl MapGridGetMetatileIdAt - mov r8, r4 - cmp r0, 0x15 - bne _080A2996 - adds r4, r7, 0x1 - lsls r1, r4, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_80A28A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080A296A - cmp r0, 0x2 - bgt _080A2952 - cmp r0, 0x1 - beq _080A295C - b _080A2996 -_080A2952: - cmp r0, 0x3 - beq _080A297C - cmp r0, 0x4 - beq _080A298C - b _080A2996 -_080A295C: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x82 - lsls r2, 2 - bl MapGridSetMetatileIdAt - b _080A2996 -_080A296A: - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2978 - bl MapGridSetMetatileIdAt - b _080A2996 - .align 2, 0 -_080A2978: .4byte 0x00000281 -_080A297C: - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2988 - bl MapGridSetMetatileIdAt - b _080A2996 - .align 2, 0 -_080A2988: .4byte 0x00000282 -_080A298C: - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A30 - bl MapGridSetMetatileIdAt -_080A2996: - lsls r0, r6, 16 - asrs r5, r0, 16 - mov r2, r9 - lsls r0, r2, 16 - asrs r4, r0, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - cmp r0, 0x1 - bne _080A2A10 - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x82 - lsls r1, 2 - cmp r0, r1 - bne _080A29C8 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl MapGridSetMetatileIdAt -_080A29C8: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, _080A2A34 - cmp r0, r1 - bne _080A29E0 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A38 - bl MapGridSetMetatileIdAt -_080A29E0: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, _080A2A3C - cmp r0, r1 - bne _080A29F8 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A40 - bl MapGridSetMetatileIdAt -_080A29F8: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, _080A2A30 - cmp r0, r1 - bne _080A2A10 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A44 - bl MapGridSetMetatileIdAt -_080A2A10: - movs r0, 0x80 - lsls r0, 9 - add r0, r8 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bgt _080A2A20 - b _080A2914 -_080A2A20: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A2A30: .4byte 0x00000283 -_080A2A34: .4byte 0x00000281 -_080A2A38: .4byte 0x00000279 -_080A2A3C: .4byte 0x00000282 -_080A2A40: .4byte 0x0000027a -_080A2A44: .4byte 0x0000027b - thumb_func_end sub_80A28F4 - - thumb_func_start sub_80A2A48 -sub_80A2A48: @ 80A2A48 - movs r2, 0 - movs r1, 0x8 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x34] - ldr r1, _080A2A58 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A2A58: .4byte objc_8097BBC - thumb_func_end sub_80A2A48 - - thumb_func_start objc_8097BBC -objc_8097BBC: @ 80A2A5C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x2E] - adds r1, 0x1 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 18 - adds r1, r0 - strh r1, [r4, 0x2E] - adds r2, 0x1 - strh r2, [r4, 0x34] - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x1C - beq _080A2AA8 - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080A2AAC -_080A2AA8: - ldr r0, _080A2AB4 - str r0, [r4, 0x1C] -_080A2AAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2AB4: .4byte sub_80A2AB8 - thumb_func_end objc_8097BBC - - thumb_func_start sub_80A2AB8 -sub_80A2AB8: @ 80A2AB8 - push {r4-r6,lr} - movs r4, 0x1 -_080A2ABC: - ldr r6, _080A2AF8 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080A2AFC - adds r0, r5 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080A2ABC - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x3A - bl FieldEffectStop - bl sub_8064E2C - bl ScriptContext2_Disable - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2AF8: .4byte 0x0201fff0 -_080A2AFC: .4byte gSprites - thumb_func_end sub_80A2AB8 - - thumb_func_start sub_80A2B00 -sub_80A2B00: @ 80A2B00 - push {lr} - movs r0, 0x80 - bl PlaySE - movs r0, 0x2 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80A2B00 - - thumb_func_start sub_80A2B18 -sub_80A2B18: @ 80A2B18 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080A2B3C -_080A2B1E: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl sub_80A2B40 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080A2B1E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2B3C: .4byte gSaveBlock1 + 0x2B4C - thumb_func_end sub_80A2B18 - - thumb_func_start sub_80A2B40 -sub_80A2B40: @ 80A2B40 - push {r4-r6,lr} - adds r3, r0, 0 - ldr r0, _080A2B90 - adds r4, r0, 0 - adds r1, r3, 0 - movs r2, 0x8 -_080A2B4C: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080A2B4C - movs r2, 0 - adds r6, r3, 0 - adds r6, 0x1A - adds r4, r3, 0 - adds r4, 0x12 - movs r5, 0xFF -_080A2B66: - adds r1, r4, r2 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _080A2B66 - adds r1, r6, 0 - movs r2, 0 - adds r0, r1, 0x3 -_080A2B7A: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _080A2B7A - movs r1, 0 - movs r0, 0x1 - strh r0, [r3, 0x1E] - strh r1, [r3, 0x20] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2B90: .4byte 0x0000ffff - thumb_func_end sub_80A2B40 - - thumb_func_start sub_80A2B94 -sub_80A2B94: @ 80A2B94 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _080A2BBC - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - cmp r0, 0xFF - beq _080A2BBC - movs r0, 0x1 - b _080A2BBE -_080A2BBC: - movs r0, 0 -_080A2BBE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A2B94 - - thumb_func_start sub_80A2BC4 -sub_80A2BC4: @ 80A2BC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - lsls r1, 16 - lsrs r0, r1, 16 - str r0, [sp, 0x8] - mov r0, sp - movs r2, 0 - ldrb r3, [r0, 0x8] - strb r3, [r0] - lsrs r1, 24 - strb r1, [r0, 0x1] - add r3, sp, 0x4 - strb r2, [r3] - mov r10, r3 - ldr r4, _080A2D00 - mov r9, r4 - mov r8, r3 - adds r2, r3, 0 -_080A2BF2: - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldr r5, _080A2D04 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _080A2C08 - b _080A2D24 -_080A2C08: - movs r3, 0 - ldr r0, _080A2D08 - mov r12, r0 - mov r4, r10 - ldr r6, _080A2D0C - ldr r1, _080A2D10 - adds r5, r1, 0 -_080A2C16: - lsls r2, r3, 1 - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - adds r2, r6 - ldrh r0, [r2] - orrs r0, r5 - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _080A2C16 - movs r3, 0 - mov r2, r10 - ldr r4, _080A2D14 -_080A2C3A: - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r4 - mov r5, r12 - adds r1, r3, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x6 - bls _080A2C3A - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, _080A2D14 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - mov r2, r8 - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r3, _080A2D14 - adds r0, r3 - movs r1, 0 - bl sub_814A518 - movs r3, 0 - mov r2, r10 - ldr r5, _080A2D18 - ldr r4, _080A2D1C -_080A2C88: - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r5 - adds r1, r3, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080A2C88 - adds r0, r7, 0 - movs r1, 0xB - bl GetBoxMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_80A2D44 - mov r4, r8 - ldrb r2, [r4] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - add r1, r9 - ldr r5, _080A2D20 - adds r1, r5 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldr r1, _080A2D04 - adds r0, r1 - mov r2, sp - ldrh r2, [r2, 0x8] - strh r2, [r0] - adds r0, r7, 0 - movs r1, 0x40 - mov r2, r8 - bl SetMonData - adds r0, r7, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _080A2D32 - .align 2, 0 -_080A2D00: .4byte gSaveBlock1 -_080A2D04: .4byte 0x00002b6c -_080A2D08: .4byte gSaveBlock2 -_080A2D0C: .4byte gSaveBlock1 + 0x2B4C -_080A2D10: .4byte 0x0000ffff -_080A2D14: .4byte gSaveBlock1 + 0x2B5E -_080A2D18: .4byte gSaveBlock1 + 0x2B66 -_080A2D1C: .4byte gSaveBlock2 + 0xA -_080A2D20: .4byte 0x00002b6a -_080A2D24: - adds r0, r1, 0x1 - strb r0, [r3] - ldrb r0, [r2] - cmp r0, 0x5 - bhi _080A2D30 - b _080A2BF2 -_080A2D30: - movs r0, 0xFF -_080A2D32: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A2BC4 - - thumb_func_start sub_80A2D44 -sub_80A2D44: @ 80A2D44 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC9 - bne _080A2D5C - adds r0, r1, 0 - bl sub_809D474 - lsls r0, 16 - ldr r1, _080A2D60 - adds r0, r1 - lsrs r0, 16 -_080A2D5C: - pop {r1} - bx r1 - .align 2, 0 -_080A2D60: .4byte 0x75300000 - thumb_func_end sub_80A2D44 - - thumb_func_start sub_80A2D64 -sub_80A2D64: @ 80A2D64 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _080A2D7C - adds r2, r3, r0 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x1B - bhi _080A2D80 - movs r0, 0xC9 - strh r2, [r1] - b _080A2D82 - .align 2, 0 -_080A2D7C: .4byte 0xffff8ad0 -_080A2D80: - adds r0, r3, 0 -_080A2D82: - pop {r1} - bx r1 - thumb_func_end sub_80A2D64 - - thumb_func_start sub_80A2D88 -sub_80A2D88: @ 80A2D88 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r7, r1, 0 - ldrh r5, [r7, 0x20] - adds r1, r5, 0 - bl sub_80A2BC4 - add r4, sp, 0x4 - strb r0, [r4] - ldrb r2, [r4] - cmp r2, 0xFF - beq _080A2DE8 - ldr r0, _080A2DE0 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r0, _080A2DE4 - adds r1, r0 - adds r0, r7, 0 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r6, 0 - movs r1, 0x40 - adds r2, r4, 0 - bl SetMonData - mov r0, sp - strb r5, [r0] - mov r1, sp - lsrs r0, r5, 8 - strb r0, [r1, 0x1] - adds r0, r6, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _080A2DEA - .align 2, 0 -_080A2DE0: .4byte gSaveBlock1 -_080A2DE4: .4byte 0x00002b4c -_080A2DE8: - movs r0, 0xFF -_080A2DEA: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A2D88 - - thumb_func_start unref_sub_80A2DF4 -unref_sub_80A2DF4: @ 80A2DF4 - movs r0, 0 - bx lr - thumb_func_end unref_sub_80A2DF4 - - thumb_func_start sub_80A2DF8 -sub_80A2DF8: @ 80A2DF8 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl sub_80A2B94 - lsls r0, 24 - cmp r0, 0 - beq _080A2E46 - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - add r2, sp, 0x4 - strb r0, [r2] - ldr r3, _080A2E50 - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080A2E54 - adds r0, r1 - movs r3, 0 - movs r1, 0 - strh r1, [r0] - movs r0, 0xFF - strb r0, [r2] - mov r0, sp - strb r3, [r0] - strb r3, [r0, 0x1] - adds r0, r4, 0 - movs r1, 0x40 - bl SetMonData - adds r0, r4, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData -_080A2E46: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2E50: .4byte gSaveBlock1 -_080A2E54: .4byte 0x00002b6c - thumb_func_end sub_80A2DF8 - - thumb_func_start unref_sub_80A2E58 -unref_sub_80A2E58: @ 80A2E58 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A2E70 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080A2E74 - adds r1, r0 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080A2E70: .4byte gSaveBlock1 -_080A2E74: .4byte 0x00002b6c - thumb_func_end unref_sub_80A2E58 - - thumb_func_start sub_80A2E78 -sub_80A2E78: @ 80A2E78 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - adds r5, r0, 0 - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - add r1, sp, 0x4 - movs r0, 0xFF - strb r0, [r1] - movs r7, 0x6 - mov r9, r1 - ldr r0, _080A2F04 - mov r8, r0 - ldr r2, _080A2F08 - add r2, r8 -_080A2E9E: - lsls r0, r7, 3 - adds r0, r7 - lsls r4, r0, 2 - mov r1, r8 - adds r0, r4, r1 - ldr r3, _080A2F0C - adds r0, r3 - ldrh r6, [r0] - cmp r6, 0 - bne _080A2F10 - adds r4, r2 - adds r0, r5, 0 - movs r1, 0x40 - str r2, [sp, 0x8] - bl GetMonData - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r2, [sp, 0x8] - adds r1, r2 - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - adds r0, r5, 0 - movs r1, 0x40 - bl GetMonData - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldr r0, _080A2F0C - adds r1, r0 - strh r6, [r1] - adds r0, r5, 0 - movs r1, 0x40 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r7, 0 - b _080A2F1C - .align 2, 0 -_080A2F04: .4byte gSaveBlock1 -_080A2F08: .4byte 0x00002b4c -_080A2F0C: .4byte 0x00002b6c -_080A2F10: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xF - bls _080A2E9E - movs r0, 0xFF -_080A2F1C: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A2E78 - - thumb_func_start itemid_is_mail -itemid_is_mail: @ 80A2F2C - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bgt _080A2F3E - cmp r0, 0x79 - blt _080A2F3E - movs r0, 0x1 - b _080A2F40 -_080A2F3E: - movs r0, 0 -_080A2F40: - pop {r1} - bx r1 - thumb_func_end itemid_is_mail - - thumb_func_start unref_sub_80A2F44 -unref_sub_80A2F44: @ 80A2F44 - push {lr} - bl sub_8071C20 - bl AddMapNamePopUpWindowTask - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end unref_sub_80A2F44 - - thumb_func_start AddMapNamePopUpWindowTask -AddMapNamePopUpWindowTask: @ 80A2F54 - push {r4,r5,lr} - movs r0, 0x80 - lsls r0, 7 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A2FE4 - ldr r4, _080A2FAC - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A2FBC - adds r0, r4, 0 - movs r1, 0x5A - bl CreateTask - ldr r4, _080A2FB0 - strb r0, [r4] - ldr r1, _080A2FB4 - movs r0, 0x20 - strh r0, [r1] - bl sub_80A30E0 - ldr r2, _080A2FB8 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r5, [r0, 0x8] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x20 - strh r1, [r0, 0xC] - b _080A2FE4 - .align 2, 0 -_080A2FAC: .4byte sub_80A2FF4 -_080A2FB0: .4byte gUnknown_02038538 -_080A2FB4: .4byte REG_BG0VOFS -_080A2FB8: .4byte gTasks -_080A2FBC: - ldr r3, _080A2FEC - ldr r2, _080A2FF0 - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r4, 0x8 - ldrsh r0, [r1, r4] - cmp r0, 0x2 - beq _080A2FD6 - movs r0, 0x2 - strh r0, [r1, 0x8] -_080A2FD6: - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080A2FE4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2FEC: .4byte gTasks -_080A2FF0: .4byte gUnknown_02038538 - thumb_func_end AddMapNamePopUpWindowTask - - thumb_func_start sub_80A2FF4 -sub_80A2FF4: @ 80A2FF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r3, _080A3018 - adds r4, r1, r3 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080A304C - cmp r2, 0x1 - bgt _080A301C - cmp r2, 0 - beq _080A3026 - b _080A3092 - .align 2, 0 -_080A3018: .4byte gTasks -_080A301C: - cmp r2, 0x2 - beq _080A3064 - cmp r2, 0x4 - beq _080A308C - b _080A3092 -_080A3026: - ldrh r0, [r4, 0xC] - subs r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _080A3092 - movs r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080A3048 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r2, [r0, 0xA] - b _080A3092 - .align 2, 0 -_080A3048: .4byte gUnknown_02038538 -_080A304C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _080A3092 - movs r0, 0 - strh r0, [r4, 0xA] - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080A3092 -_080A3064: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - movs r5, 0 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - ble _080A3092 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A3086 - bl sub_80A30E0 - strh r5, [r4, 0x8] - strh r5, [r4, 0xE] - b _080A3092 -_080A3086: - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080A3098 -_080A308C: - bl HideMapNamePopUpWindow - b _080A3098 -_080A3092: - ldr r1, _080A30A0 - ldrh r0, [r4, 0xC] - strh r0, [r1] -_080A3098: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A30A0: .4byte REG_BG0VOFS - thumb_func_end sub_80A2FF4 - - thumb_func_start HideMapNamePopUpWindow -HideMapNamePopUpWindow: @ 80A30A4 - push {lr} - ldr r0, _080A30D4 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _080A30D0 - bl MenuLoadTextWindowGraphics - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x3 - bl MenuZeroFillWindowRect - ldr r1, _080A30D8 - movs r0, 0 - strh r0, [r1] - ldr r0, _080A30DC - ldrb r0, [r0] - bl DestroyTask -_080A30D0: - pop {r0} - bx r0 - .align 2, 0 -_080A30D4: .4byte sub_80A2FF4 -_080A30D8: .4byte REG_BG0VOFS -_080A30DC: .4byte gUnknown_02038538 - thumb_func_end HideMapNamePopUpWindow - - thumb_func_start sub_80A30E0 -sub_80A30E0: @ 80A30E0 - push {lr} - sub sp, 0x14 - movs r0, 0 - bl MenuLoadTextWindowGraphics_OverrideFrameType - ldr r0, _080A3114 - ldrb r1, [r0, 0x14] - mov r0, sp - movs r2, 0 - bl sub_80FBFB4 - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x3 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x60 - bl sub_8072BD8 - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_080A3114: .4byte gMapHeader - thumb_func_end sub_80A30E0 - - thumb_func_start sub_80A3118 -sub_80A3118: @ 80A3118 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl sub_80A740C - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80A3118 - - thumb_func_start sub_80A3134 -sub_80A3134: @ 80A3134 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _080A3168 - ldr r2, _080A316C - ldr r0, _080A3170 - str r1, [r0] - str r2, [r0, 0x4] - ldr r3, _080A3174 - str r3, [r0, 0x8] - ldr r2, [r0, 0x8] - movs r2, 0x80 - lsls r2, 4 - adds r1, r2 - ldr r2, _080A3178 - str r1, [r0] - str r2, [r0, 0x4] - str r3, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_080A3168: .4byte gBG1TilemapBuffer -_080A316C: .4byte 0x06002000 -_080A3170: .4byte 0x040000d4 -_080A3174: .4byte 0x80000400 -_080A3178: .4byte 0x06006000 - thumb_func_end sub_80A3134 - - thumb_func_start sub_80A317C -sub_80A317C: @ 80A317C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _080A3198 - ldr r1, _080A319C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x10 - bls _080A318E - b _080A34A8 -_080A318E: - lsls r0, 2 - ldr r1, _080A31A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A3198: .4byte gMain -_080A319C: .4byte 0x0000043c -_080A31A0: .4byte _080A31A4 - .align 2, 0 -_080A31A4: - .4byte _080A31E8 - .4byte _080A31F2 - .4byte _080A3208 - .4byte _080A320E - .4byte _080A3228 - .4byte _080A324C - .4byte _080A3252 - .4byte _080A3270 - .4byte _080A327C - .4byte _080A3298 - .4byte _080A32A4 - .4byte _080A3328 - .4byte _080A338C - .4byte _080A33F4 - .4byte _080A3404 - .4byte _080A345C - .4byte _080A347C -_080A31E8: - bl sub_80F9438 - bl sub_80A34E8 - b _080A3464 -_080A31F2: - bl remove_some_task - ldr r1, _080A3200 - ldr r0, _080A3204 - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3200: .4byte gMain -_080A3204: .4byte 0x0000043c -_080A3208: - bl gpu_pal_allocator_reset__manage_upper_four - b _080A3464 -_080A320E: - bl sub_80F9020 - ldr r0, _080A3220 - ldr r1, _080A3224 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _080A3464 - .align 2, 0 -_080A3220: .4byte 0x02000000 -_080A3224: .4byte 0x0001ffff -_080A3228: - bl ResetPaletteFade - ldr r2, _080A3240 - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080A3244 - ldr r0, _080A3248 - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3240: .4byte gPaletteFade -_080A3244: .4byte gMain -_080A3248: .4byte 0x0000043c -_080A324C: - bl ResetSpriteData - b _080A3464 -_080A3252: - bl sub_80A3520 - lsls r0, 24 - cmp r0, 0 - bne _080A325E - b _080A34A8 -_080A325E: - ldr r1, _080A3268 - ldr r0, _080A326C - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3268: .4byte gMain -_080A326C: .4byte 0x0000043c -_080A3270: - ldr r0, _080A3278 - bl SetUpWindowConfig - b _080A3464 - .align 2, 0 -_080A3278: .4byte gWindowConfig_81E6DFC -_080A327C: - ldr r0, _080A328C - bl MultistepInitMenuWindowBegin - ldr r1, _080A3290 - ldr r0, _080A3294 - adds r1, r0 - b _080A346A - .align 2, 0 -_080A328C: .4byte gWindowConfig_81E6DFC -_080A3290: .4byte gMain -_080A3294: .4byte 0x0000043c -_080A3298: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _080A32A2 - b _080A34A8 -_080A32A2: - b _080A3464 -_080A32A4: - bl sub_80F944C - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - movs r0, 0 - movs r1, 0xAC - movs r2, 0xC - bl sub_80F953C - movs r0, 0x1 - movs r1, 0xAC - movs r2, 0x94 - bl sub_80F953C - movs r0, 0x2 - movs r1, 0x1C - movs r2, 0x58 - bl sub_80F953C - movs r0, 0x3 - movs r1, 0x64 - movs r2, 0x58 - bl sub_80F953C - movs r0, 0 - movs r1, 0x2 - bl sub_80F9988 - movs r0, 0x1 - movs r1, 0x2 - bl sub_80F9988 - movs r0, 0x2 - movs r1, 0x2 - bl sub_80F9988 - movs r0, 0x3 - movs r1, 0x2 - bl sub_80F9988 - ldr r0, _080A331C - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A3312 - movs r0, 0x2 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x3 - movs r1, 0x1 - bl sub_80F979C -_080A3312: - ldr r1, _080A3320 - ldr r0, _080A3324 - adds r1, r0 - b _080A346A - .align 2, 0 -_080A331C: .4byte gUnknown_03000701 -_080A3320: .4byte gMain -_080A3324: .4byte 0x0000043c -_080A3328: - ldr r1, _080A3378 - movs r0, 0x10 - strb r0, [r1] - ldr r4, _080A337C - ldr r5, _080A3380 - ldrb r1, [r5] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80A39B8 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_80A3AC0 - bl sub_80A3D08 - ldr r4, _080A3384 - ldr r0, [r4, 0x10] - ldr r1, [r4, 0x14] - bl sub_80A3C34 - ldr r0, [r4, 0x18] - ldr r1, [r4, 0x1C] - bl sub_80A3C34 - bl sub_80A3D40 - ldr r1, _080A3388 - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 3 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - bl sub_80A362C - b _080A3464 - .align 2, 0 -_080A3378: .4byte gUnknown_0203855A -_080A337C: .4byte gBG2TilemapBuffer -_080A3380: .4byte gUnknown_02038559 -_080A3384: .4byte gUnknown_083C1618 -_080A3388: .4byte gUnknown_03005D24 -_080A338C: - ldr r0, _080A33D4 - movs r1, 0 - movs r2, 0x7 - bl sub_80A48E8 - ldr r1, _080A33D8 - ldr r4, _080A33DC - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A33E0 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_80A490C - bl sub_80A736C - ldr r1, _080A33E4 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _080A33E8 - movs r0, 0 - strb r0, [r1] - ldr r1, _080A33EC - ldr r0, _080A33F0 - adds r1, r0 - b _080A346A - .align 2, 0 -_080A33D4: .4byte 0x0000ffff -_080A33D8: .4byte gUnknown_03005D10 -_080A33DC: .4byte gUnknown_02038559 -_080A33E0: .4byte gUnknown_03005D24 -_080A33E4: .4byte gUnknown_0203855B -_080A33E8: .4byte gUnknown_0203855C -_080A33EC: .4byte gMain -_080A33F0: .4byte 0x0000043c -_080A33F4: - bl sub_80A7B10 - movs r0, 0 - bl sub_80A7C20 - bl sub_80A3740 - b _080A3464 -_080A3404: - ldr r3, _080A3444 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _080A3448 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _080A344C - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _080A3450 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080A3454 - ldr r0, _080A3458 - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3444: .4byte 0x04000208 -_080A3448: .4byte 0x04000200 -_080A344C: .4byte REG_DISPSTAT -_080A3450: .4byte gPaletteFade -_080A3454: .4byte gMain -_080A3458: .4byte 0x0000043c -_080A345C: - bl sub_8055870 - cmp r0, 0x1 - beq _080A34A8 -_080A3464: - ldr r1, _080A3474 - ldr r2, _080A3478 - adds r1, r2 -_080A346A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080A34A8 - .align 2, 0 -_080A3474: .4byte gMain -_080A3478: .4byte 0x0000043c -_080A347C: - ldr r0, _080A34A0 - bl SetVBlankCallback - ldr r0, _080A34A4 - bl SetMainCallback2 - bl sub_80A751C - bl sub_80A7630 - bl sub_80A770C - bl sub_80A7828 - bl sub_80A78B8 - movs r0, 0x1 - b _080A34AA - .align 2, 0 -_080A34A0: .4byte sub_80A3134 -_080A34A4: .4byte sub_80A3118 -_080A34A8: - movs r0, 0 -_080A34AA: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A317C - - thumb_func_start sub_80A34B4 -sub_80A34B4: @ 80A34B4 - push {lr} -_080A34B6: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A34D2 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A34B6 - movs r0, 0 - b _080A34DE -_080A34D2: - ldr r1, _080A34E4 - movs r0, 0 - strb r0, [r1] - bl ResetTasks - movs r0, 0x1 -_080A34DE: - pop {r1} - bx r1 - .align 2, 0 -_080A34E4: .4byte gUnknown_03000700 - thumb_func_end sub_80A34B4 - - thumb_func_start sub_80A34E8 -sub_80A34E8: @ 80A34E8 - push {lr} - bl sub_80F9368 - ldr r1, _080A3514 - ldr r2, _080A3518 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080A351C - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x50 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A3514: .4byte REG_BG2CNT -_080A3518: .4byte 0x00000c06 -_080A351C: .4byte 0x00000405 - thumb_func_end sub_80A34E8 - - thumb_func_start sub_80A3520 -sub_80A3520: @ 80A3520 - push {lr} - ldr r0, _080A353C - ldr r1, _080A3540 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080A3530 - b _080A3624 -_080A3530: - lsls r0, 2 - ldr r1, _080A3544 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A353C: .4byte 0x02000000 -_080A3540: .4byte 0x0001ffff -_080A3544: .4byte _080A3548 - .align 2, 0 -_080A3548: - .4byte _080A355C - .4byte _080A3570 - .4byte _080A3588 - .4byte _080A35C0 - .4byte _080A3604 -_080A355C: - ldr r0, _080A3568 - ldr r1, _080A356C - bl LZDecompressVram - b _080A35EA - .align 2, 0 -_080A3568: .4byte gBagScreen_Gfx -_080A356C: .4byte 0x06004000 -_080A3570: - ldr r0, _080A3580 - ldr r1, _080A3584 - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - b _080A35EA - .align 2, 0 -_080A3580: .4byte gUnknown_08E77004 -_080A3584: .4byte gBG2TilemapBuffer -_080A3588: - ldr r0, _080A35A4 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080A3598 - ldr r0, _080A35A8 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080A35B0 -_080A3598: - ldr r0, _080A35AC - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _080A35EA - .align 2, 0 -_080A35A4: .4byte gSaveBlock2 -_080A35A8: .4byte gUnknown_03000701 -_080A35AC: .4byte gBagScreenMale_Pal -_080A35B0: - ldr r0, _080A35BC - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _080A35EA - .align 2, 0 -_080A35BC: .4byte gBagScreenFemale_Pal -_080A35C0: - ldr r0, _080A35D8 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080A35D0 - ldr r0, _080A35DC - ldrb r0, [r0] - cmp r0, 0x7 - bne _080A35E4 -_080A35D0: - ldr r0, _080A35E0 - bl LoadCompressedObjectPic - b _080A35EA - .align 2, 0 -_080A35D8: .4byte gSaveBlock2 -_080A35DC: .4byte gUnknown_03000701 -_080A35E0: .4byte gUnknown_083C1CC8 -_080A35E4: - ldr r0, _080A35F8 - bl LoadCompressedObjectPic -_080A35EA: - ldr r1, _080A35FC - ldr r0, _080A3600 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080A3624 - .align 2, 0 -_080A35F8: .4byte gUnknown_083C1CD0 -_080A35FC: .4byte 0x02000000 -_080A3600: .4byte 0x0001ffff -_080A3604: - ldr r0, _080A3618 - bl LoadCompressedObjectPalette - ldr r0, _080A361C - ldr r1, _080A3620 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _080A3626 - .align 2, 0 -_080A3618: .4byte gUnknown_083C1CD8 -_080A361C: .4byte 0x02000000 -_080A3620: .4byte 0x0001ffff -_080A3624: - movs r0, 0 -_080A3626: - pop {r1} - bx r1 - thumb_func_end sub_80A3520 - - thumb_func_start sub_80A362C -sub_80A362C: @ 80A362C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _080A3648 - ldr r5, _080A364C -_080A3634: - ldrb r0, [r6] - cmp r0, 0x5 - bne _080A3650 - lsls r1, r4, 2 - adds r0, r1, r5 - ldrb r0, [r0, 0x2] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - b _080A3656 - .align 2, 0 -_080A3648: .4byte gUnknown_03000701 -_080A364C: .4byte gUnknown_03005D10 -_080A3650: - lsls r1, r4, 2 - adds r0, r1, r5 - ldrb r3, [r0, 0x2] -_080A3656: - adds r1, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080A366C - ldrb r2, [r1, 0x3] - adds r0, r2 - cmp r0, r3 - ble _080A3674 - subs r0, r3, r2 - strb r0, [r1, 0x1] - b _080A3674 -_080A366C: - ldrb r0, [r1] - cmp r0, r3 - bls _080A3674 - strb r3, [r1] -_080A3674: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080A3634 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A362C - - thumb_func_start sub_80A3684 -sub_80A3684: @ 80A3684 - push {r4,lr} - movs r2, 0 - ldr r4, _080A36B0 - ldr r3, _080A36B4 - movs r1, 0 -_080A368E: - lsls r0, r2, 2 - adds r0, r3 - strb r1, [r0] - strb r1, [r0, 0x1] - strb r1, [r0, 0x2] - strb r1, [r0, 0x3] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _080A368E - movs r0, 0 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A36B0: .4byte gUnknown_02038559 -_080A36B4: .4byte gUnknown_03005D10 - thumb_func_end sub_80A3684 - - thumb_func_start sub_80A36B8 -sub_80A36B8: @ 80A36B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, [sp, 0x18] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - lsls r0, 24 - lsrs r0, 24 - lsrs r2, 24 - adds r0, r2, r0 - cmp r2, r0 - bgt _080A370A - adds r7, r0, 0 -_080A36DE: - mov r1, r8 - mov r3, r12 - adds r0, r1, r3 - adds r4, r2, 0x1 - cmp r1, r0 - bgt _080A3702 - lsls r3, r2, 5 - movs r5, 0 - adds r2, r0, 0 -_080A36F0: - adds r0, r1, r3 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - ble _080A36F0 -_080A3702: - lsls r0, r4, 16 - lsrs r2, r0, 16 - cmp r2, r7 - ble _080A36DE -_080A370A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A36B8 - - thumb_func_start sub_80A3714 -sub_80A3714: @ 80A3714 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080A373C -_080A371A: - lsls r1, r4, 3 - adds r1, r5 - ldr r0, [r1] - ldrb r1, [r1, 0x4] - bl sub_80A9684 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080A371A - bl sub_80A3684 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A373C: .4byte gUnknown_083C1618 - thumb_func_end sub_80A3714 - - thumb_func_start sub_80A3740 -sub_80A3740: @ 80A3740 - push {lr} - sub sp, 0x4 - ldr r1, _080A376C - mov r0, sp - movs r2, 0x4 - bl memcpy - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A376C: .4byte gUnknown_083C1704 - thumb_func_end sub_80A3740 - - thumb_func_start sub_80A3770 -sub_80A3770: @ 80A3770 - push {lr} - ldr r0, _080A379C - ldrb r0, [r0] - cmp r0, 0 - bne _080A37B6 - ldr r3, _080A37A0 - ldr r2, _080A37A4 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldr r1, _080A37A8 - adds r0, r1 - str r0, [r3] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x3 - beq _080A37B0 - ldr r1, _080A37AC - movs r0, 0x4 - b _080A37B4 - .align 2, 0 -_080A379C: .4byte gUnknown_03000701 -_080A37A0: .4byte gUnknown_03000704 -_080A37A4: .4byte gUnknown_02038559 -_080A37A8: .4byte gUnknown_083C1690 -_080A37AC: .4byte gUnknown_02038564 -_080A37B0: - ldr r1, _080A37BC - movs r0, 0x6 -_080A37B4: - strb r0, [r1] -_080A37B6: - pop {r0} - bx r0 - .align 2, 0 -_080A37BC: .4byte gUnknown_02038564 - thumb_func_end sub_80A3770 - - thumb_func_start sub_80A37C0 -sub_80A37C0: @ 80A37C0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A37F0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080A37F4 - str r0, [r1] - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - movs r0, 0x2 - bl sub_80F98DC - movs r0, 0x3 - bl sub_80F98DC - pop {r0} - bx r0 - .align 2, 0 -_080A37F0: .4byte gTasks -_080A37F4: .4byte sub_80A50C8 - thumb_func_end sub_80A37C0 - - thumb_func_start sub_80A37F8 -sub_80A37F8: @ 80A37F8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _080A3854 - ldrb r5, [r6] - cmp r5, 0xF - bhi _080A3868 - adds r0, r5, 0x1 - strb r0, [r6] - ldr r4, _080A3858 - ldrb r2, [r6] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x4F - bl sub_80A396C - ldr r0, _080A385C - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6] - lsrs r2, 1 - ldr r3, _080A3860 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r3 - movs r3, 0x12 - ldrsb r3, [r0, r3] - adds r0, r4, 0 - bl sub_80A39E4 - ldr r4, _080A3864 - movs r0, 0x1 - strb r0, [r4] - lsrs r1, r5, 1 - ldrb r2, [r6] - lsrs r2, 1 - subs r2, 0x1 - adds r0, r7, 0 - bl sub_80A48E8 - movs r0, 0 - strb r0, [r4] - b _080A3932 - .align 2, 0 -_080A3854: .4byte gUnknown_0203855A -_080A3858: .4byte gBG2TilemapBuffer -_080A385C: .4byte gUnknown_02038559 -_080A3860: .4byte gTasks -_080A3864: .4byte gUnknown_02038558 -_080A3868: - ldr r0, _080A38A0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A38B4 - ldr r1, _080A38A4 - ldr r0, _080A38A8 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A38AC - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldr r4, _080A38B0 - ldrb r1, [r4] - bl sub_80A49AC - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080A38F2 - .align 2, 0 -_080A38A0: .4byte gLinkOpen -_080A38A4: .4byte gUnknown_03005D10 -_080A38A8: .4byte gUnknown_02038559 -_080A38AC: .4byte gUnknown_03005D24 -_080A38B0: .4byte gUnknown_02038562 -_080A38B4: - ldr r1, _080A3938 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _080A38F2 - ldr r5, _080A393C - adds r4, r1, 0 -_080A38C0: - ldr r0, _080A3940 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A3944 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldrb r1, [r4] - bl sub_80A49AC - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _080A38C0 -_080A38F2: - ldr r0, _080A3938 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080A3932 - ldr r1, _080A3948 - movs r0, 0x10 - strb r0, [r1] - ldr r1, _080A394C - ldr r0, _080A3940 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080A3950 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl sub_80A37C0 - adds r0, r7, 0 - bl DestroyTask - bl sub_80A736C - movs r0, 0x2 - movs r1, 0 - bl sub_80F979C - movs r0, 0x3 - movs r1, 0 - bl sub_80F979C -_080A3932: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3938: .4byte gUnknown_02038562 -_080A393C: .4byte gUnknown_03005D10 -_080A3940: .4byte gUnknown_02038559 -_080A3944: .4byte gUnknown_03005D24 -_080A3948: .4byte gUnknown_0203855A -_080A394C: .4byte gUnknown_0203855B -_080A3950: .4byte sub_80A4F68 - thumb_func_end sub_80A37F8 - - thumb_func_start sub_80A3954 -sub_80A3954: @ 80A3954 - push {lr} - adds r1, r0, 0 - ldr r0, _080A3968 - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - pop {r0} - bx r0 - .align 2, 0 -_080A3968: .4byte gUnknown_08E77004 - thumb_func_end sub_80A3954 - - thumb_func_start sub_80A396C -sub_80A396C: @ 80A396C - push {r4-r7,lr} - lsls r1, 24 - lsrs r5, r1, 24 - adds r4, r5, 0 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r1, r4, 0x2 - lsls r1, 6 - adds r1, 0x1C - adds r2, r0, r1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r7, r4 - bls _080A39B2 -_080A398E: - movs r1, 0 - adds r3, r5, 0x1 - adds r4, r2, 0 - adds r4, 0x40 -_080A3996: - lsls r0, r1, 1 - adds r0, r2 - strh r6, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xE - bls _080A3996 - adds r2, r4, 0 - adds r1, r5, 0 - lsls r0, r3, 24 - lsrs r5, r0, 24 - cmp r7, r1 - bhi _080A398E -_080A39B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A396C - - thumb_func_start sub_80A39B8 -sub_80A39B8: @ 80A39B8 - push {lr} - sub sp, 0x10 - lsls r1, 25 - lsrs r1, 24 - ldr r3, _080A39E0 - movs r2, 0 - str r2, [sp] - str r1, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x4 - movs r2, 0xA - bl sub_809D104 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080A39E0: .4byte gUnknown_08E96EC8 - thumb_func_end sub_80A39B8 - - thumb_func_start sub_80A39E4 -sub_80A39E4: @ 80A39E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - adds r5, r6, 0 - lsls r2, r1, 1 - mov r9, r2 - lsls r3, 24 - asrs r3, 24 - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _080A3A5C - adds r0, r1, 0x1 - lsls r7, r0, 1 - cmp r1, 0x5 - bne _080A3A18 - movs r7, 0x2 -_080A3A18: - ldr r0, _080A3A58 - mov r10, r0 - movs r4, 0x8 - subs r4, r6 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp] - str r2, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x2 - mov r9, r0 - str r0, [sp, 0xC] - mov r0, r8 - movs r1, 0x4 - movs r2, 0xA - mov r3, r10 - bl sub_809D104 - adds r1, r6, 0x4 - movs r0, 0 - str r0, [sp] - str r7, [sp, 0x4] - str r4, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - mov r0, r8 - movs r2, 0xA - mov r3, r10 - bl sub_809D104 - b _080A3AAA - .align 2, 0 -_080A3A58: .4byte gUnknown_08E96EC8 -_080A3A5C: - cmp r3, 0x1 - bne _080A3AAA - subs r0, r4, 0x1 - lsls r0, 17 - lsrs r7, r0, 16 - cmp r4, 0x1 - bne _080A3A6C - movs r7, 0xA -_080A3A6C: - ldr r6, _080A3ABC - str r5, [sp] - str r7, [sp, 0x4] - movs r0, 0x8 - subs r0, r5 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - movs r4, 0x2 - str r4, [sp, 0xC] - mov r0, r8 - movs r1, 0x4 - movs r2, 0xA - adds r3, r6, 0 - bl sub_809D104 - movs r1, 0xC - subs r1, r5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - mov r0, r9 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - mov r0, r8 - movs r2, 0xA - adds r3, r6, 0 - bl sub_809D104 -_080A3AAA: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3ABC: .4byte gUnknown_08E96EC8 - thumb_func_end sub_80A39E4 - - thumb_func_start sub_80A3AC0 -sub_80A3AC0: @ 80A3AC0 - push {r4-r6,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - movs r2, 0 - ldr r1, _080A3AE4 - ldr r0, _080A3AE8 - adds r6, r0, 0 - subs r0, 0x1 - adds r5, r0, 0 -_080A3AD4: - cmp r2, r4 - bne _080A3AEC - lsls r0, r2, 1 - adds r0, r3 - adds r0, r1 - strh r6, [r0] - b _080A3AF4 - .align 2, 0 -_080A3AE4: .4byte 0x0000024a -_080A3AE8: .4byte 0x0000107d -_080A3AEC: - lsls r0, r2, 1 - adds r0, r3 - adds r0, r1 - strh r5, [r0] -_080A3AF4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _080A3AD4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A3AC0 - - thumb_func_start sub_80A3B04 -sub_80A3B04: @ 80A3B04 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080A3BA4 - ldrb r0, [r4] - lsls r1, 24 - asrs r6, r1, 24 - adds r0, r6, r0 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080A3B20 - movs r0, 0 - strb r0, [r4] -_080A3B20: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bge _080A3B2C - movs r0, 0x4 - strb r0, [r4] -_080A3B2C: - bl sub_80A76A0 - bl sub_80A7590 - ldr r2, _080A3BA8 - ldr r1, _080A3BAC - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldrb r0, [r4] - bl sub_80A3D24 - ldr r0, _080A3BB0 - movs r4, 0 - strb r4, [r0] - adds r0, r5, 0 - bl sub_80A3954 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0x3 - bl sub_80A396C - adds r0, r5, 0 - movs r1, 0 - bl sub_80A39B8 - ldr r1, _080A3BB4 - movs r0, 0x6 - strb r0, [r1] - ldr r0, _080A3BB8 - strb r4, [r0] - ldr r4, _080A3BBC - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080A3B90 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_080A3B90: - ldr r1, _080A3BC0 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x12] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3BA4: .4byte gUnknown_02038559 -_080A3BA8: .4byte gUnknown_03005D24 -_080A3BAC: .4byte gUnknown_083C1618 -_080A3BB0: .4byte gUnknown_0203855A -_080A3BB4: .4byte gUnknown_0203855B -_080A3BB8: .4byte gUnknown_02038562 -_080A3BBC: .4byte sub_80A37F8 -_080A3BC0: .4byte gTasks - thumb_func_end sub_80A3B04 - - thumb_func_start swap32 -swap32: @ 80A3BC4 - ldr r3, [r0] - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - thumb_func_end swap32 - - thumb_func_start sub_80A3BD0 -sub_80A3BD0: @ 80A3BD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r1, 0 - adds r6, r0, 0 - movs r3, 0 - b _080A3C1A -_080A3BE0: - adds r0, r3, 0x1 - lsls r1, r0, 16 - lsrs r4, r1, 16 - lsls r1, r2, 24 - lsrs r1, 24 - mov r8, r0 - cmp r4, r1 - bcs _080A3C14 - lsls r0, r3, 2 - adds r5, r0, r6 - adds r2, r1, 0 -_080A3BF6: - ldrh r0, [r5, 0x2] - cmp r0, 0 - bne _080A3C0A - lsls r1, r4, 2 - adds r1, r6 - adds r0, r5, 0 - str r2, [sp] - bl swap32 - ldr r2, [sp] -_080A3C0A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bcc _080A3BF6 -_080A3C14: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 -_080A3C1A: - adds r2, r7, 0 - lsls r0, r2, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r3, r0 - blt _080A3BE0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A3BD0 - - thumb_func_start sub_80A3C34 -sub_80A3C34: @ 80A3C34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r1, 0 - adds r6, r0, 0 - adds r2, r7, 0 - lsls r0, r2, 24 - movs r3, 0 - cmp r0, 0 - beq _080A3C9C -_080A3C4A: - adds r0, r3, 0x1 - lsls r1, r0, 16 - lsrs r4, r1, 16 - lsls r1, r2, 24 - lsrs r1, 24 - mov r8, r0 - cmp r4, r1 - bcs _080A3C8C - lsls r0, r3, 2 - adds r5, r0, r6 - adds r2, r1, 0 -_080A3C60: - ldrh r0, [r5, 0x2] - cmp r0, 0 - beq _080A3C82 - lsls r0, r4, 2 - adds r1, r0, r6 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080A3C82 - ldrh r0, [r5] - ldrh r3, [r1] - cmp r0, r3 - bls _080A3C82 - adds r0, r5, 0 - str r2, [sp] - bl swap32 - ldr r2, [sp] -_080A3C82: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bcc _080A3C60 -_080A3C8C: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - adds r2, r7, 0 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r3, r0 - bcc _080A3C4A -_080A3C9C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A3C34 - - thumb_func_start sub_80A3CA8 -sub_80A3CA8: @ 80A3CA8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A3D00 - lsls r0, r6, 2 - adds r3, r0, r1 - movs r0, 0 - strb r0, [r3, 0x2] - movs r4, 0 - ldr r0, _080A3D04 - lsls r2, r6, 3 - adds r1, r2, r0 - mov r12, r0 - ldrb r1, [r1, 0x4] - cmp r4, r1 - bcs _080A3CEC - mov r7, r12 - adds r5, r3, 0 -_080A3CCC: - adds r3, r2, r7 - ldr r0, [r3] - lsls r1, r4, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080A3CE0 - ldrb r0, [r5, 0x2] - adds r0, 0x1 - strb r0, [r5, 0x2] -_080A3CE0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r3, [r3, 0x4] - cmp r4, r3 - bcc _080A3CCC -_080A3CEC: - lsls r0, r6, 3 - add r0, r12 - ldr r1, [r0, 0x4] - ldr r0, [r0] - bl sub_80A3BD0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3D00: .4byte gUnknown_03005D10 -_080A3D04: .4byte gUnknown_083C1618 - thumb_func_end sub_80A3CA8 - - thumb_func_start sub_80A3D08 -sub_80A3D08: @ 80A3D08 - push {r4,lr} - movs r4, 0 -_080A3D0C: - adds r0, r4, 0 - bl sub_80A3CA8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080A3D0C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3D08 - - thumb_func_start sub_80A3D24 -sub_80A3D24: @ 80A3D24 - push {lr} - lsls r0, 24 - ldr r1, _080A3D3C - lsrs r0, 22 - adds r1, r0, r1 - ldrb r0, [r1, 0x2] - cmp r0, 0x6 - bls _080A3D36 - movs r0, 0x7 -_080A3D36: - strb r0, [r1, 0x3] - pop {r0} - bx r0 - .align 2, 0 -_080A3D3C: .4byte gUnknown_03005D10 - thumb_func_end sub_80A3D24 - - thumb_func_start sub_80A3D40 -sub_80A3D40: @ 80A3D40 - push {r4,lr} - movs r4, 0 -_080A3D44: - adds r0, r4, 0 - bl sub_80A3D24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080A3D44 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3D40 - - thumb_func_start sub_80A3D5C -sub_80A3D5C: @ 80A3D5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A3DF4 - mov r9, r1 - ldr r2, _080A3DF8 - mov r8, r2 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x1] - ldrb r1, [r1] - adds r2, r1 - ldr r7, _080A3DFC - ldr r1, [r7] - lsls r6, r2, 2 - adds r3, r6, r1 - ldr r2, _080A3E00 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r3, 0x2] - ldrh r1, [r1, 0xA] - subs r0, r1 - strh r0, [r3, 0x2] - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _080A3DE0 - ldr r0, _080A3E04 - ldr r1, _080A3E08 - adds r5, r0, r1 - ldrh r0, [r5] - ldrh r3, [r3] - cmp r0, r3 - bne _080A3DB4 - bl sub_80A40D0 - strh r4, [r5] -_080A3DB4: - ldr r0, [r7] - adds r0, r6, r0 - strh r4, [r0] - mov r2, r8 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - mov r3, r9 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - adds r0, r1, 0x7 - ldrb r3, [r2, 0x2] - cmp r0, r3 - bne _080A3DD8 - cmp r1, 0 - beq _080A3DD8 - subs r0, r1, 0x1 - strb r0, [r2, 0x1] -_080A3DD8: - ldr r0, _080A3DF8 - ldrb r0, [r0] - bl sub_80A3CA8 -_080A3DE0: - ldr r0, _080A3DF8 - ldrb r0, [r0] - bl sub_80A3D24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3DF4: .4byte gUnknown_03005D10 -_080A3DF8: .4byte gUnknown_02038559 -_080A3DFC: .4byte gUnknown_03005D24 -_080A3E00: .4byte gTasks -_080A3E04: .4byte gSaveBlock1 -_080A3E08: .4byte 0x00000496 - thumb_func_end sub_80A3D5C - - thumb_func_start sub_80A3E0C -sub_80A3E0C: @ 80A3E0C - push {lr} - ldr r3, _080A3E60 - ldr r2, _080A3E64 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A3E68 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A3E52 - strh r0, [r1] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - adds r0, r1, 0x7 - ldrb r3, [r2, 0x2] - cmp r0, r3 - bne _080A3E4A - cmp r1, 0 - beq _080A3E4A - subs r0, r1, 0x1 - strb r0, [r2, 0x1] -_080A3E4A: - ldr r0, _080A3E64 - ldrb r0, [r0] - bl sub_80A3CA8 -_080A3E52: - ldr r0, _080A3E64 - ldrb r0, [r0] - bl sub_80A3D24 - pop {r0} - bx r0 - .align 2, 0 -_080A3E60: .4byte gUnknown_03005D10 -_080A3E64: .4byte gUnknown_02038559 -_080A3E68: .4byte gUnknown_03005D24 - thumb_func_end sub_80A3E0C - - thumb_func_start nullsub_16 -nullsub_16: @ 80A3E6C - bx lr - thumb_func_end nullsub_16 - - thumb_func_start sub_80A3E70 -sub_80A3E70: @ 80A3E70 - lsls r0, 24 - lsls r1, 24 - ldr r2, _080A3E8C - ldr r2, [r2] - lsrs r0, 22 - adds r0, r2 - ldr r3, [r0] - lsrs r1, 22 - adds r1, r2 - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - .align 2, 0 -_080A3E8C: .4byte gUnknown_03005D24 - thumb_func_end sub_80A3E70 - - thumb_func_start sub_80A3E90 -sub_80A3E90: @ 80A3E90 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - bl nullsub_16 - ldr r0, _080A3EE8 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - ldrb r0, [r5, 0x1C] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080A3EEC - ldr r1, _080A3EF0 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r2, 2 - adds r2, r3 - ldrb r1, [r2, 0x1] - ldrb r2, [r2] - adds r1, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_80A3E70 - movs r0, 0 - strh r0, [r5, 0x1C] - bl sub_80A763C - movs r0, 0 - bl sub_80A7528 - bl sub_80A736C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3EE8: .4byte gTasks -_080A3EEC: .4byte gUnknown_03005D10 -_080A3EF0: .4byte gUnknown_02038559 - thumb_func_end sub_80A3E90 - - thumb_func_start sub_80A3EF4 -sub_80A3EF4: @ 80A3EF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl PlaySE - bl nullsub_16 - ldr r0, _080A3F44 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r2, _080A3F48 - ldr r0, _080A3F4C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - mvns r0, r0 - ldrb r2, [r1, 0x1C] - adds r0, r2 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0 - strh r0, [r1, 0x1C] - cmp r2, 0x7 - bhi _080A3F38 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 -_080A3F38: - movs r0, 0 - bl sub_80A7528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A3F44: .4byte gTasks -_080A3F48: .4byte gUnknown_03005D10 -_080A3F4C: .4byte gUnknown_02038559 - thumb_func_end sub_80A3EF4 - - thumb_func_start sub_80A3F50 -sub_80A3F50: @ 80A3F50 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A3F94 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - adds r3, r1 - ldr r5, _080A3F98 - ldr r4, _080A3F9C - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - ldrb r1, [r1] - adds r2, r1 - adds r2, 0x1 - strh r2, [r3, 0x1C] - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1] - adds r1, r2, 0 - bl sub_80A48E8 - movs r0, 0x1 - bl sub_80A7528 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3F94: .4byte gTasks -_080A3F98: .4byte gUnknown_03005D10 -_080A3F9C: .4byte gUnknown_02038559 - thumb_func_end sub_80A3F50 - - thumb_func_start sub_80A3FA0 -sub_80A3FA0: @ 80A3FA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - ldr r0, [sp, 0x18] - ldr r4, [sp, 0x1C] - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r6, r4, 16 - lsrs r2, 24 - adds r0, r2, r0 - cmp r2, r0 - bge _080A3FFC - mov r8, r5 - adds r4, r5, r3 - mov r12, r0 -_080A3FCC: - adds r0, r5, 0 - lsls r3, r2, 16 - cmp r8, r4 - bge _080A3FEE - asrs r2, r3, 11 -_080A3FD6: - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r1, r2 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, r4 - blt _080A3FD6 -_080A3FEE: - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r12 - blt _080A3FCC -_080A3FFC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A3FA0 - - thumb_func_start sub_80A4008 -sub_80A4008: @ 80A4008 - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - bl sub_80A3FA0 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4008 - - thumb_func_start sub_80A4030 -sub_80A4030: @ 80A4030 - ldr r1, _080A4058 - lsls r0, 7 - adds r1, r0, r1 - movs r0, 0x5A - strh r0, [r1] - movs r0, 0x5B - strh r0, [r1, 0x2] - movs r0, 0x5C - strh r0, [r1, 0x4] - adds r2, r1, 0 - adds r2, 0x40 - movs r0, 0x6A - strh r0, [r2] - adds r2, 0x2 - movs r0, 0x6B - strh r0, [r2] - adds r1, 0x44 - movs r0, 0x6C - strh r0, [r1] - bx lr - .align 2, 0 -_080A4058: .4byte gBG2TilemapBuffer + 0xB4 - thumb_func_end sub_80A4030 - - thumb_func_start sub_80A405C -sub_80A405C: @ 80A405C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080A40A8 - movs r0, 0 - adds r4, r2, 0 - movs r1, 0x4F -_080A406A: - strh r1, [r2] - strh r1, [r2, 0x2] - strh r1, [r2, 0x4] - adds r2, 0x40 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF - bls _080A406A - lsls r0, r3, 7 - adds r2, r0, r4 - movs r0, 0x5A - strh r0, [r2] - movs r0, 0x5B - strh r0, [r2, 0x2] - movs r0, 0x5C - strh r0, [r2, 0x4] - adds r1, r2, 0 - adds r1, 0x40 - movs r0, 0x6A - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6B - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6C - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A40A8: .4byte gBG2TilemapBuffer + 0xB4 - thumb_func_end sub_80A405C - - thumb_func_start sub_80A40AC -sub_80A40AC: @ 80A40AC - lsls r0, 24 - ldr r1, _080A40CC - lsrs r0, 17 - adds r1, r0, r1 - movs r2, 0x4F - strh r2, [r1] - strh r2, [r1, 0x2] - strh r2, [r1, 0x4] - adds r0, r1, 0 - adds r0, 0x40 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r1, 0x44 - strh r2, [r1] - bx lr - .align 2, 0 -_080A40CC: .4byte gBG2TilemapBuffer + 0xB4 - thumb_func_end sub_80A40AC - - thumb_func_start sub_80A40D0 -sub_80A40D0: @ 80A40D0 - push {r4-r7,lr} - movs r4, 0 - ldr r2, _080A4114 - ldr r3, _080A4118 - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - adds r7, r2, 0 - adds r6, r3, 0 - ldrb r0, [r0, 0x2] - cmp r1, r0 - beq _080A4136 - ldr r5, _080A411C -_080A40EE: - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r3, r0, r7 - ldrb r2, [r3, 0x1] - adds r1, r2, r4 - ldr r0, _080A4120 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - ldrh r1, [r5] - cmp r0, r1 - bne _080A4124 - adds r0, r4, 0 - bl sub_80A40AC - b _080A4136 - .align 2, 0 -_080A4114: .4byte gUnknown_03005D10 -_080A4118: .4byte gUnknown_02038559 -_080A411C: .4byte gSaveBlock1 + 0x496 -_080A4120: .4byte gUnknown_03005D24 -_080A4124: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _080A4136 - adds r0, r2, r4 - ldrb r3, [r3, 0x2] - cmp r0, r3 - bne _080A40EE -_080A4136: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A40D0 - - thumb_func_start sub_80A413C -sub_80A413C: @ 80A413C - push {lr} - bl sub_80A40D0 - ldr r1, _080A415C - ldr r0, _080A4160 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - bl sub_80A405C - pop {r0} - bx r0 - .align 2, 0 -_080A415C: .4byte gUnknown_03005D10 -_080A4160: .4byte gUnknown_02038559 - thumb_func_end sub_80A413C - - thumb_func_start sub_80A4164 -sub_80A4164: @ 80A4164 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0xB9 - strb r4, [r0] - adds r0, 0x1 - movs r4, 0xFC - strb r4, [r0] - movs r4, 0x14 - strb r4, [r0, 0x1] - movs r4, 0x6 - strb r4, [r0, 0x2] - adds r0, 0x3 - bl ConvertIntToDecimalStringN - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4164 - - thumb_func_start sub_80A418C -sub_80A418C: @ 80A418C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r4, r0, 0 - mov r9, r1 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x18] - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _080A41D0 - mov r8, r0 - adds r1, r4, 0 - mov r2, r9 - bl sub_80A4164 - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A41D0: .4byte gStringVar1 - thumb_func_end sub_80A418C - - thumb_func_start sub_80A41D4 -sub_80A41D4: @ 80A41D4 - push {lr} - bl sub_80A763C - pop {r0} - bx r0 - thumb_func_end sub_80A41D4 - - thumb_func_start sub_80A41E0 -sub_80A41E0: @ 80A41E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - mov r9, r2 - adds r5, r3, 0 - ldr r4, [sp, 0x1C] - lsls r1, 16 - lsrs r1, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xFC - mov r8, r0 - strb r0, [r7] - movs r6, 0x13 - strb r6, [r7, 0x1] - movs r0, 0x8 - strb r0, [r7, 0x2] - adds r7, 0x3 - adds r0, r7, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r1, r8 - strb r1, [r0] - strb r6, [r0, 0x1] - movs r1, 0x18 - strb r1, [r0, 0x2] - adds r7, r0, 0x3 - adds r4, 0x1 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - movs r2, 0x78 - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r7, 0 - mov r1, r9 - movs r3, 0 - bl sub_8072C74 - movs r1, 0xB9 - strb r1, [r0] - adds r7, r0, 0x1 - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0x78 - movs r3, 0x1 - bl sub_8072C14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A41E0 - - thumb_func_start sub_80A425C -sub_80A425C: @ 80A425C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080A42A4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r0, 0x1C - ldrsh r1, [r1, r0] - ldr r3, _080A42A8 - ldr r0, _080A42AC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - subs r1, r0 - subs r1, 0x1 - cmp r1, r2 - bne _080A429C - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - movs r0, 0x2 - strb r0, [r4, 0x2] - adds r4, 0x3 -_080A429C: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A42A4: .4byte gTasks -_080A42A8: .4byte gUnknown_03005D10 -_080A42AC: .4byte gUnknown_02038559 - thumb_func_end sub_80A425C - - thumb_func_start sub_80A42B0 -sub_80A42B0: @ 80A42B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r0, _080A4344 - mov r8, r0 - ldr r1, _080A4348 - ldr r0, _080A434C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - adds r1, r6 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bgt _080A4370 - cmp r1, r0 - bne _080A4374 - ldr r0, _080A4350 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A4370 - lsls r0, r6, 25 - movs r1, 0x80 - lsls r1, 18 - adds r0, r1 - lsrs r5, r0, 24 - ldr r4, _080A4354 - ldr r1, _080A4358 - adds r0, r4, 0 - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - lsls r0, r5, 6 - ldr r1, _080A435C - adds r0, r1 - movs r2, 0x4F - strh r2, [r0] - strh r2, [r0, 0x2] - adds r1, r0, 0 - adds r1, 0x40 - strh r2, [r1] - adds r0, 0x42 - strh r2, [r0] - cmp r6, 0x7 - beq _080A4370 - cmp r7, 0x1 - bne _080A432E - mov r1, r8 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _080A4332 -_080A432E: - cmp r7, 0x2 - bne _080A4360 -_080A4332: - adds r1, r5, 0x2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1D - movs r3, 0xD - bl MenuFillWindowRectWithBlankTile - b _080A4370 - .align 2, 0 -_080A4344: .4byte gUnknown_02038540 -_080A4348: .4byte gUnknown_03005D10 -_080A434C: .4byte gUnknown_02038559 -_080A4350: .4byte gUnknown_03000701 -_080A4354: .4byte gStringVar1 -_080A4358: .4byte gOtherText_CloseBag -_080A435C: .4byte gBG2TilemapBuffer + 0x1C -_080A4360: - adds r1, r5, 0x2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1D - movs r3, 0x11 - bl MenuFillWindowRectWithBlankTile -_080A4370: - movs r0, 0x1 - b _080A4376 -_080A4374: - movs r0, 0 -_080A4376: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A42B0 - - thumb_func_start sub_80A4380 -sub_80A4380: @ 80A4380 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r2, [sp] - mov r10, r3 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080A43A0 - mov r8, r0 - b _080A441A - .align 2, 0 -_080A43A0: .4byte gUnknown_03005D24 -_080A43A4: - ldr r1, _080A4440 - ldr r0, _080A4444 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - adds r4, r7, r4 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r7, 25 - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - lsrs r5, 24 - ldr r6, _080A4448 - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_80A425C - adds r6, r0, 0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r6, 0 - movs r2, 0x66 - movs r3, 0 - bl sub_8072C74 - adds r6, r0, 0 - movs r0, 0xB9 - strb r0, [r6] - adds r6, 0x1 - mov r1, r8 - ldr r0, [r1] - adds r4, r0 - ldrh r1, [r4, 0x2] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A4448 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080A441A: - ldr r0, [sp] - cmp r7, r0 - bgt _080A4430 - adds r0, r7, 0 - mov r1, r10 - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A43A4 -_080A4430: - 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 -_080A4440: .4byte gUnknown_03005D10 -_080A4444: .4byte gUnknown_02038559 -_080A4448: .4byte gStringVar1 - thumb_func_end sub_80A4380 - - thumb_func_start sub_80A444C -sub_80A444C: @ 80A444C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - str r2, [sp] - str r3, [sp, 0x4] - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _080A446C - mov r9, r0 - b _080A4520 - .align 2, 0 -_080A446C: .4byte gSaveBlock1 + 0x496 -_080A4470: - ldr r1, _080A44E8 - ldr r0, _080A44EC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - adds r4, r6, r4 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r6, 25 - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - lsrs r5, 24 - ldr r7, _080A44F0 - mov r2, r10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_80A425C - adds r7, r0, 0 - ldr r0, _080A44F4 - mov r8, r0 - ldr r0, [r0] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r7, 0 - movs r2, 0x60 - movs r3, 0 - bl sub_8072C74 - ldr r0, _080A44F0 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - ldr r0, _080A44F8 - ldrb r0, [r0] - cmp r0, 0 - beq _080A44FC - mov r1, r8 - ldr r0, [r1] - adds r0, r4, r0 - ldrh r0, [r0] - mov r2, r9 - ldrh r2, [r2] - cmp r0, r2 - bne _080A451A - adds r0, r6, 0 - bl sub_80A4030 - b _080A451A - .align 2, 0 -_080A44E8: .4byte gUnknown_03005D10 -_080A44EC: .4byte gUnknown_02038559 -_080A44F0: .4byte gStringVar1 -_080A44F4: .4byte gUnknown_03005D24 -_080A44F8: .4byte gUnknown_02038558 -_080A44FC: - mov r1, r8 - ldr r0, [r1] - adds r0, r4, r0 - ldrh r0, [r0] - mov r2, r9 - ldrh r2, [r2] - cmp r0, r2 - bne _080A4514 - adds r0, r6, 0 - bl sub_80A405C - b _080A451A -_080A4514: - adds r0, r6, 0 - bl sub_80A40AC -_080A451A: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080A4520: - ldr r0, [sp] - cmp r6, r0 - bgt _080A4536 - adds r0, r6, 0 - ldr r1, [sp, 0x4] - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4470 -_080A4536: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A444C - - thumb_func_start sub_80A4548 -sub_80A4548: @ 80A4548 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, _080A456C - mov r9, r0 - b _080A46C2 - .align 2, 0 -_080A456C: .4byte gBG2TilemapBuffer -_080A4570: - ldr r1, _080A461C - ldr r0, _080A4620 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - add r4, r8 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r0, r1, 25 - movs r3, 0x80 - lsls r3, 18 - adds r0, r3 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r0, 5 - adds r0, 0xE - adds r5, r0, 0 - ldr r6, _080A4624 - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r6, 0 - mov r2, r8 - bl sub_80A425C - adds r6, r0, 0 - ldr r3, _080A4628 - mov r10, r3 - ldr r0, [r3] - lsls r7, r4, 2 - adds r3, r7, r0 - ldrh r1, [r3] - movs r0, 0xA9 - lsls r0, 1 - cmp r1, r0 - bhi _080A4634 - lsls r0, r5, 1 - add r0, r9 - movs r1, 0x59 - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 1 - add r0, r9 - movs r2, 0x4F - strh r2, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - add r0, r9 - movs r1, 0x69 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x21 - lsls r0, 1 - add r0, r9 - strh r2, [r0] - ldrh r0, [r3] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - adds r2, r0, 0 - muls r2, r1 - ldr r0, _080A462C - adds r2, r0 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldr r3, _080A4630 - adds r1, r3, 0 - ldrh r3, [r0] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - ldrh r3, [r0, 0x2] - movs r0, 0x2 - str r0, [sp] - adds r0, r6, 0 - bl sub_80A41E0 - b _080A46AE - .align 2, 0 -_080A461C: .4byte gUnknown_03005D10 -_080A4620: .4byte gUnknown_02038559 -_080A4624: .4byte gStringVar1 -_080A4628: .4byte gUnknown_03005D24 -_080A462C: .4byte gMoveNames -_080A4630: .4byte 0xfffffee0 -_080A4634: - lsls r0, r5, 1 - add r0, r9 - ldr r1, _080A46EC - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 1 - add r0, r9 - adds r1, 0x1 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - add r0, r9 - adds r1, 0xF - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x21 - lsls r0, 1 - add r0, r9 - adds r1, 0x1 - strh r1, [r0] - movs r0, 0xFC - strb r0, [r6] - movs r4, 0x13 - strb r4, [r6, 0x1] - movs r0, 0x11 - strb r0, [r6, 0x2] - adds r6, 0x3 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r3, _080A46F0 - adds r1, r3 - adds r0, r6, 0 - bl ConvertIntToDecimalString - adds r6, r0, 0 - movs r0, 0xFC - strb r0, [r6] - strb r4, [r6, 0x1] - movs r0, 0x18 - strb r0, [r6, 0x2] - adds r6, 0x3 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r0, [r0] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _080A46F4 - adds r1, r0 - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 -_080A46AE: - ldr r0, _080A46F8 - movs r1, 0xE - ldr r2, [sp, 0x10] - bl MenuPrint - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080A46C2: - ldr r3, [sp, 0x8] - cmp r8, r3 - bgt _080A46DA - mov r0, r8 - ldr r1, [sp, 0xC] - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A46DA - b _080A4570 -_080A46DA: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A46EC: .4byte 0x0000105d -_080A46F0: .4byte 0xfffffeae -_080A46F4: .4byte gMoveNames -_080A46F8: .4byte gStringVar1 - thumb_func_end sub_80A4548 - - thumb_func_start sub_80A46FC -sub_80A46FC: @ 80A46FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _080A4724 - mov r10, r0 - ldr r1, _080A4728 - mov r9, r1 - ldr r0, _080A472C - mov r8, r0 - b _080A47B4 - .align 2, 0 -_080A4724: .4byte gBG2TilemapBuffer -_080A4728: .4byte gStringVar2 -_080A472C: .4byte gUnknown_03005D24 -_080A4730: - ldr r1, _080A47DC - ldr r0, _080A47E0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - adds r4, r6, r4 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r6, 25 - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - lsrs r5, 24 - lsls r0, r5, 5 - adds r0, 0xE - lsls r1, r0, 1 - add r1, r10 - movs r2, 0x59 - strh r2, [r1] - adds r0, 0x20 - lsls r0, 1 - add r0, r10 - movs r1, 0x69 - strh r1, [r0] - ldr r7, _080A47E4 - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_80A425C - adds r7, r0, 0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - mov r1, r9 - bl itemid_copy_name - mov r1, r8 - ldr r0, [r1] - adds r4, r0 - ldrh r1, [r4] - subs r1, 0x84 - lsls r1, 16 - lsrs r1, 16 - ldrh r3, [r4, 0x2] - movs r0, 0x3 - str r0, [sp] - adds r0, r7, 0 - mov r2, r9 - bl sub_80A41E0 - ldr r0, _080A47E4 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080A47B4: - ldr r0, [sp, 0x8] - cmp r6, r0 - bgt _080A47CA - adds r0, r6, 0 - ldr r1, [sp, 0xC] - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4730 -_080A47CA: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A47DC: .4byte gUnknown_03005D10 -_080A47E0: .4byte gUnknown_02038559 -_080A47E4: .4byte gStringVar1 - thumb_func_end sub_80A46FC - - thumb_func_start sub_80A47E8 -sub_80A47E8: @ 80A47E8 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080A4808 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _080A4852 - lsls r0, 2 - ldr r1, _080A480C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A4808: .4byte gUnknown_02038559 -_080A480C: .4byte _080A4810 - .align 2, 0 -_080A4810: - .4byte _080A4824 - .4byte _080A4824 - .4byte _080A483C - .4byte _080A4848 - .4byte _080A4830 -_080A4824: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A4380 - b _080A4852 -_080A4830: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A444C - b _080A4852 -_080A483C: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A4548 - b _080A4852 -_080A4848: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A46FC -_080A4852: - ldr r1, _080A4870 - ldr r0, _080A4874 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080A4878 - movs r0, 0 - movs r1, 0 - bl sub_80F979C - b _080A4880 - .align 2, 0 -_080A4870: .4byte gUnknown_03005D10 -_080A4874: .4byte gUnknown_02038559 -_080A4878: - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C -_080A4880: - ldr r0, _080A48A4 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A48B0 - ldr r1, _080A48A8 - ldr r0, _080A48AC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - adds r1, 0x8 - ldrb r0, [r0, 0x2] - adds r0, 0x1 - cmp r1, r0 - blt _080A48C6 - b _080A48D8 - .align 2, 0 -_080A48A4: .4byte gUnknown_03000701 -_080A48A8: .4byte gUnknown_03005D10 -_080A48AC: .4byte gUnknown_02038559 -_080A48B0: - ldr r2, _080A48D0 - ldr r0, _080A48D4 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - adds r0, 0x8 - ldrb r1, [r1, 0x2] - cmp r0, r1 - bge _080A48D8 -_080A48C6: - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C - b _080A48E0 - .align 2, 0 -_080A48D0: .4byte gUnknown_03005D10 -_080A48D4: .4byte gUnknown_02038559 -_080A48D8: - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C -_080A48E0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A47E8 - - thumb_func_start sub_80A48E8 -sub_80A48E8: @ 80A48E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r3, 0 - bl sub_80A47E8 - pop {r0} - bx r0 - thumb_func_end sub_80A48E8 - - thumb_func_start sub_80A48F8 -sub_80A48F8: @ 80A48F8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - movs r2, 0x5 - movs r3, 0x2 - bl sub_80A47E8 - pop {r0} - bx r0 - thumb_func_end sub_80A48F8 - - thumb_func_start sub_80A490C -sub_80A490C: @ 80A490C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _080A4960 - ldr r0, _080A4964 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A4974 - ldr r0, _080A4968 - movs r4, 0x1 - str r4, [sp] - movs r1, 0x4 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072A18 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A496C - ldr r0, _080A4970 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r4, [sp] - movs r1, 0x4 - movs r2, 0x78 - movs r3, 0x68 - bl sub_8072A18 - adds r0, r5, r0 - b _080A4988 - .align 2, 0 -_080A4960: .4byte gUnknown_03005D10 -_080A4964: .4byte gUnknown_02038559 -_080A4968: .4byte gOtherText_ReturnTo -_080A496C: .4byte gUnknown_0840E740 -_080A4970: .4byte gUnknown_03000701 -_080A4974: - adds r0, r3, 0 - bl itemid_get_description - movs r1, 0x1 - str r1, [sp] - movs r1, 0x4 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072A18 -_080A4988: - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bhi _080A49A4 - lsls r1, r5, 25 - movs r0, 0xD0 - lsls r0, 20 - adds r1, r0 - lsrs r1, 24 - movs r0, 0 - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect -_080A49A4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A490C - - thumb_func_start sub_80A49AC -sub_80A49AC: @ 80A49AC - push {r4,r5,lr} - sub sp, 0x64 - adds r4, r1, 0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080A49E8 - ldr r0, _080A49EC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A4A18 - cmp r4, 0 - bne _080A49F4 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r0, _080A49F0 - movs r1, 0x4 - movs r2, 0x68 - b _080A4A08 - .align 2, 0 -_080A49E8: .4byte gUnknown_03005D10 -_080A49EC: .4byte gUnknown_02038559 -_080A49F0: .4byte gOtherText_ReturnTo -_080A49F4: - cmp r4, 0x1 - bne _080A4A4C - ldr r1, _080A4A10 - ldr r0, _080A4A14 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x4 - movs r2, 0x78 -_080A4A08: - movs r3, 0 - bl sub_80729D8 - b _080A4A4C - .align 2, 0 -_080A4A10: .4byte gUnknown_0840E740 -_080A4A14: .4byte gUnknown_03000701 -_080A4A18: - cmp r4, 0 - bne _080A4A28 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect -_080A4A28: - lsls r1, r5, 16 - asrs r1, 16 - mov r0, sp - adds r2, r4, 0 - bl sub_80A99A8 - cmp r0, 0 - beq _080A4A4C - lsls r2, r4, 20 - movs r0, 0xD0 - lsls r0, 15 - adds r2, r0 - lsrs r2, 16 - mov r0, sp - movs r1, 0x4 - movs r3, 0 - bl sub_80729D8 -_080A4A4C: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A49AC - - thumb_func_start sub_80A4A54 -sub_80A4A54: @ 80A4A54 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r2, 0x1 - adds r2, r1, 0 - adds r1, r5, 0 -_080A4A5E: - ldrb r3, [r2] - adds r0, r3, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A4A8A - subs r4, 0x1 - cmp r4, 0 - bne _080A4A78 - movs r0, 0xFF - strb r0, [r1] - movs r0, 0x1 - b _080A4A92 -_080A4A78: - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080A4A84 - movs r0, 0 - b _080A4A92 -_080A4A84: - adds r1, r5, 0 - adds r2, 0x1 - b _080A4A5E -_080A4A8A: - strb r3, [r1] - adds r2, 0x1 - adds r1, 0x1 - b _080A4A5E -_080A4A92: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A4A54 - - thumb_func_start sub_80A4A98 -sub_80A4A98: @ 80A4A98 - push {r4,r5,lr} - sub sp, 0x64 - adds r5, r0, 0 - adds r4, r1, 0 - cmp r4, 0 - bne _080A4AB0 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect -_080A4AB0: - mov r0, sp - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_80A4A54 - cmp r0, 0 - beq _080A4AD2 - lsls r2, r4, 20 - movs r0, 0xD0 - lsls r0, 15 - adds r2, r0 - lsrs r2, 16 - mov r0, sp - movs r1, 0x4 - movs r3, 0 - bl sub_80729D8 -_080A4AD2: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A4A98 - - thumb_func_start sub_80A4ADC -sub_80A4ADC: @ 80A4ADC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A4B0C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1C - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A4AFA - movs r0, 0 - bl sub_80A7528 -_080A4AFA: - movs r0, 0x5 - bl PlaySE - ldr r1, _080A4B10 - movs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A4B0C: .4byte gTasks -_080A4B10: .4byte gUnknown_0203855C - thumb_func_end sub_80A4ADC - - thumb_func_start sub_80A4B14 -sub_80A4B14: @ 80A4B14 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080A4B50 - ldr r1, _080A4B54 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 2 - adds r1, r2 - lsrs r0, 24 - ldrb r2, [r1, 0x1] - adds r0, r2 - strb r0, [r1, 0x1] - movs r0, 0 - bl MoveMenuCursor - bl sub_80A73C0 - bl sub_80A763C - adds r0, r4, 0 - bl sub_80A4ADC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4B50: .4byte gUnknown_03005D10 -_080A4B54: .4byte gUnknown_02038559 - thumb_func_end sub_80A4B14 - - thumb_func_start sub_80A4B58 -sub_80A4B58: @ 80A4B58 - push {r4,lr} - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - asrs r0, 24 - bl MoveMenuCursor - ldr r2, _080A4B88 - ldr r1, _080A4B8C - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 2 - adds r1, r2 - strb r0, [r1] - bl sub_80A73C0 - adds r0, r4, 0 - bl sub_80A4ADC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4B88: .4byte gUnknown_03005D10 -_080A4B8C: .4byte gUnknown_02038559 - thumb_func_end sub_80A4B58 - - thumb_func_start sub_80A4B90 -sub_80A4B90: @ 80A4B90 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _080A4BBC - ldr r0, _080A4BB4 - cmp r4, r0 - beq _080A4BAE - adds r0, 0xD - cmp r4, r0 - bne _080A4BBC -_080A4BAE: - ldr r0, _080A4BB8 - b _080A4BE6 - .align 2, 0 -_080A4BB4: .4byte 0x00000103 -_080A4BB8: .4byte gOtherText_Walk -_080A4BBC: - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A4BE4 - ldr r1, _080A4BDC - ldr r0, _080A4BE0 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - b _080A4BE6 - .align 2, 0 -_080A4BDC: .4byte gUnknown_083C1640 -_080A4BE0: .4byte gUnknown_03000704 -_080A4BE4: - ldr r0, _080A4BEC -_080A4BE6: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A4BEC: .4byte gOtherText_Check - thumb_func_end sub_80A4B90 - - thumb_func_start sub_80A4BF0 -sub_80A4BF0: @ 80A4BF0 - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r7, _080A4C38 - ldrb r4, [r7] - cmp r4, 0x4 - beq _080A4C00 - b _080A4CF8 -_080A4C00: - movs r0, 0 - movs r1, 0x7 - movs r2, 0xD - movs r3, 0xC - bl MenuDrawTextWindow - str r4, [sp] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0xC - bl sub_80A4008 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4C40 - ldr r0, _080A4C3C - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A4C40 - movs r0, 0x1 - movs r1, 0 - bl sub_80A7834 - b _080A4CA0 - .align 2, 0 -_080A4C38: .4byte gUnknown_02038564 -_080A4C3C: .4byte gUnknown_03000701 -_080A4C40: - movs r6, 0 - ldr r0, _080A4C5C - ldrb r0, [r0] - cmp r6, r0 - bcs _080A4CA0 - ldr r4, _080A4C60 -_080A4C4C: - cmp r6, 0 - bne _080A4C68 - ldr r0, _080A4C64 - ldrh r0, [r0] - bl sub_80A4B90 - adds r3, r0, 0 - b _080A4C76 - .align 2, 0 -_080A4C5C: .4byte gUnknown_02038564 -_080A4C60: .4byte gUnknown_083C1640 -_080A4C64: .4byte word_203855E -_080A4C68: - ldr r0, _080A4CC4 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r4 - ldr r3, [r0] -_080A4C76: - lsrs r0, r6, 1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x1 - ands r2, r6 - lsls r2, 1 - adds r2, 0x8 - adds r0, r3, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080A4CC8 - ldrb r0, [r0] - cmp r6, r0 - bcc _080A4C4C -_080A4CA0: - ldr r0, _080A4CCC - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A4CD4 - ldr r0, _080A4CC8 - ldrb r3, [r0] - ldr r0, _080A4CD0 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x8 - bl InitMenu - b _080A4CEA - .align 2, 0 -_080A4CC4: .4byte gUnknown_03000704 -_080A4CC8: .4byte gUnknown_02038564 -_080A4CCC: .4byte gUnknown_03000701 -_080A4CD0: .4byte gUnknown_03000700 -_080A4CD4: - ldr r0, _080A4CF4 - ldrb r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x8 - bl InitMenu -_080A4CEA: - movs r0, 0x2F - bl sub_8072DCC - b _080A4D8A - .align 2, 0 -_080A4CF4: .4byte gUnknown_02038564 -_080A4CF8: - movs r0, 0 - movs r1, 0x5 - movs r2, 0xD - movs r3, 0xC - bl MenuDrawTextWindow - movs r0, 0x6 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x6 - movs r3, 0xC - bl sub_80A4008 - movs r6, 0 - ldrb r7, [r7] - cmp r6, r7 - bcs _080A4D6E - ldr r7, _080A4D98 -_080A4D1E: - ldr r0, _080A4D9C - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r7 - ldr r5, [r0] - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 1 - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x3 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 25 - movs r0, 0xC0 - lsls r0, 19 - adds r2, r0 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080A4DA0 - ldrb r0, [r0] - cmp r6, r0 - bcc _080A4D1E -_080A4D6E: - ldr r0, _080A4DA0 - ldrb r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x6 - bl InitMenu - movs r0, 0x2F - bl sub_8072DCC -_080A4D8A: - movs r0, 0x2 - bl sub_80A7528 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4D98: .4byte gUnknown_083C1640 -_080A4D9C: .4byte gUnknown_03000704 -_080A4DA0: .4byte gUnknown_02038564 - thumb_func_end sub_80A4BF0 - - thumb_func_start sub_80A4DA4 -sub_80A4DA4: @ 80A4DA4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_80A73FC - movs r0, 0x6 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0xD - bl sub_80A36B8 - movs r0, 0 - movs r1, 0x5 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - bl sub_80A7590 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4DA4 - - thumb_func_start sub_80A4DD8 -sub_80A4DD8: @ 80A4DD8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - adds r4, r1, 0 - adds r1, r2, 0 - adds r6, r3, 0 - ldr r5, [sp, 0x20] - ldr r2, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldr r3, _080A4E84 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - movs r0, 0x1 - strh r0, [r2, 0xA] - adds r0, r4, 0x2 - mov r9, r0 - strh r0, [r2, 0xC] - adds r0, r1, 0x1 - mov r8, r0 - strh r0, [r2, 0xE] - adds r2, r4, r6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r1, r5 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - bl MenuDrawTextWindow - ldr r0, _080A4E88 - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - subs r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - str r5, [sp] - adds r1, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_80A4008 - mov r2, r9 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - mov r3, r8 - bl sub_80A418C - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4E84: .4byte gTasks -_080A4E88: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A4DD8 - - thumb_func_start sub_80A4E8C -sub_80A4E8C: @ 80A4E8C - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x2 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x3 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0 - bl sub_80F996C - movs r0, 0x1 - bl sub_80F996C - movs r0, 0x2 - bl sub_80F996C - movs r0, 0x3 - bl sub_80F996C - ldr r5, _080A4F04 - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A3B04 - ldr r0, _080A4F08 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_80A3AC0 - bl sub_80A3770 - bl sub_80A7C64 - adds r0, r6, 0 - bl sub_80A7C20 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4F04: .4byte gBG2TilemapBuffer -_080A4F08: .4byte gUnknown_02038559 - thumb_func_end sub_80A4E8C - - thumb_func_start sub_80A4F0C -sub_80A4F0C: @ 80A4F0C - push {r4,lr} - ldr r0, _080A4F38 - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4F60 - ldr r4, _080A4F3C - ldrh r0, [r4, 0x2E] - cmp r0, 0x10 - beq _080A4F30 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080A4F40 -_080A4F30: - movs r0, 0x1 - movs r1, 0x2 - b _080A4F58 - .align 2, 0 -_080A4F38: .4byte gUnknown_03000701 -_080A4F3C: .4byte gMain -_080A4F40: - ldrh r0, [r4, 0x2E] - cmp r0, 0x20 - beq _080A4F52 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4F60 -_080A4F52: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x1 -_080A4F58: - bl sub_80A4E8C - movs r0, 0x1 - b _080A4F62 -_080A4F60: - movs r0, 0 -_080A4F62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A4F0C - - thumb_func_start sub_80A4F68 -sub_80A4F68: @ 80A4F68 - push {lr} - bl sub_80A4F0C - pop {r0} - bx r0 - thumb_func_end sub_80A4F68 - - thumb_func_start sub_80A4F74 -sub_80A4F74: @ 80A4F74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - movs r5, 0 - ldr r0, _080A4FAC - ldrh r0, [r0, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A4FE8 - ldr r1, _080A4FB0 - ldr r0, _080A4FB4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - beq _080A4FB8 - movs r0, 0x1 - negs r0, r0 - adds r1, r4, 0 - bl sub_80A4B58 - b _080A4FC8 - .align 2, 0 -_080A4FAC: .4byte gMain -_080A4FB0: .4byte gUnknown_03005D10 -_080A4FB4: .4byte gUnknown_02038559 -_080A4FB8: - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080A4FC8 - movs r0, 0x1 - negs r0, r0 - adds r1, r4, 0 - bl sub_80A4B14 -_080A4FC8: - ldr r0, _080A4FE0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A50AE - ldr r1, _080A4FE4 - ldrh r0, [r1, 0x32] - cmp r0, 0x5 - bne _080A50AE - movs r0, 0xB - strh r0, [r1, 0x32] - b _080A50AE - .align 2, 0 -_080A4FE0: .4byte gLinkOpen -_080A4FE4: .4byte gMain -_080A4FE8: - cmp r1, 0x80 - bne _080A5088 - ldr r0, _080A5020 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A502C - ldr r1, _080A5024 - ldr r0, _080A5028 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bne _080A504E - ldrb r0, [r2, 0x1] - ldrb r1, [r2] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _080A5068 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_80A4B14 - b _080A5068 - .align 2, 0 -_080A5020: .4byte gUnknown_03000701 -_080A5024: .4byte gUnknown_03005D10 -_080A5028: .4byte gUnknown_02038559 -_080A502C: - ldr r1, _080A5058 - ldr r0, _080A505C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0x1] - ldrb r3, [r2] - adds r1, r3 - ldrb r0, [r2, 0x2] - subs r0, 0x1 - cmp r1, r0 - beq _080A5068 - ldrb r2, [r2, 0x3] - cmp r3, r2 - beq _080A5060 -_080A504E: - movs r0, 0x1 - adds r1, r4, 0 - bl sub_80A4B58 - b _080A5068 - .align 2, 0 -_080A5058: .4byte gUnknown_03005D10 -_080A505C: .4byte gUnknown_02038559 -_080A5060: - movs r0, 0x1 - adds r1, r4, 0 - bl sub_80A4B14 -_080A5068: - movs r5, 0x1 - ldr r0, _080A5080 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A50C0 - ldr r1, _080A5084 - ldrh r0, [r1, 0x32] - cmp r0, 0x5 - bne _080A50C0 - movs r0, 0xB - strh r0, [r1, 0x32] - b _080A50C0 - .align 2, 0 -_080A5080: .4byte gLinkOpen -_080A5084: .4byte gMain -_080A5088: - ldr r0, _080A50B4 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A50BC - bl sub_80A4F0C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A50BC - bl sub_80A73F0 - ldr r0, _080A50B8 - str r0, [r4] -_080A50AE: - movs r5, 0x1 - b _080A50C0 - .align 2, 0 -_080A50B4: .4byte gTasks -_080A50B8: .4byte sub_80A4F68 -_080A50BC: - bl sub_80A73C0 -_080A50C0: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A4F74 - - thumb_func_start sub_80A50C8 -sub_80A50C8: @ 80A50C8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A5148 - adds r5, r0, r1 - ldr r0, _080A514C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080A50E6 - b _080A52BC -_080A50E6: - adds r0, r4, 0 - bl sub_80A4F74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A50F6 - b _080A526A -_080A50F6: - ldr r2, _080A5150 - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080A5190 - ldr r3, _080A5154 - ldrb r0, [r3] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A5190 - ldr r0, _080A5158 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080A5190 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5160 - ldr r1, _080A515C - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A5138 - b _080A526A -_080A5138: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A3F50 - b _080A526A - .align 2, 0 -_080A5148: .4byte gUnknown_03004B28 -_080A514C: .4byte gPaletteFade -_080A5150: .4byte gMain -_080A5154: .4byte gUnknown_02038559 -_080A5158: .4byte gUnknown_03000701 -_080A515C: .4byte gUnknown_03005D10 -_080A5160: - ldr r1, _080A5184 - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - beq _080A5188 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A3E90 - b _080A526A - .align 2, 0 -_080A5184: .4byte gUnknown_03005D10 -_080A5188: - adds r0, r4, 0 - bl sub_80A3EF4 - b _080A526A -_080A5190: - ldrh r2, [r2, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080A5272 - ldr r7, _080A51D4 - ldr r6, _080A51D8 - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A51F0 - movs r0, 0x14 - ldrsh r1, [r5, r0] - cmp r1, 0 - bne _080A51E8 - ldr r0, _080A51DC - strh r1, [r0] - ldr r1, _080A51E0 - ldr r0, _080A51E4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A526A - .align 2, 0 -_080A51D4: .4byte gUnknown_03005D10 -_080A51D8: .4byte gUnknown_02038559 -_080A51DC: .4byte word_203855E -_080A51E0: .4byte gUnknown_083C16BC -_080A51E4: .4byte gUnknown_03000701 -_080A51E8: - adds r0, r4, 0 - bl sub_80A3EF4 - b _080A526A -_080A51F0: - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5264 - movs r0, 0x5 - bl PlaySE - ldr r2, _080A5250 - movs r1, 0 - ldrsb r1, [r6, r1] - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - adds r0, r1 - strb r0, [r2] - ldr r3, _080A5254 - ldrb r0, [r2] - ldr r1, _080A5258 - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - ldr r1, _080A525C - ldr r0, _080A5260 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - movs r0, 0 - bl sub_80F98A4 - movs r0, 0x1 - bl sub_80F98A4 - movs r0, 0x2 - bl sub_80F98A4 - movs r0, 0x3 - bl sub_80F98A4 - bl sub_80A797C - b _080A526A - .align 2, 0 -_080A5250: .4byte gUnknown_02038560 -_080A5254: .4byte word_203855E -_080A5258: .4byte gUnknown_03005D24 -_080A525C: .4byte gUnknown_083C16BC -_080A5260: .4byte gUnknown_03000701 -_080A5264: - adds r0, r4, 0 - bl sub_80A3E90 -_080A526A: - adds r0, r4, 0 - bl sub_808B5B4 - b _080A52BC -_080A5272: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080A52BC - movs r0, 0x14 - ldrsh r1, [r5, r0] - cmp r1, 0 - bne _080A52B0 - ldr r2, _080A52A4 - ldrb r0, [r2] - cmp r0, 0x5 - beq _080A52B6 - ldr r0, _080A52A8 - strh r1, [r0] - ldr r1, _080A52AC - ldrb r0, [r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A52B6 - .align 2, 0 -_080A52A4: .4byte gUnknown_03000701 -_080A52A8: .4byte word_203855E -_080A52AC: .4byte gUnknown_083C16BC -_080A52B0: - adds r0, r4, 0 - bl sub_80A3EF4 -_080A52B6: - adds r0, r4, 0 - bl sub_808B5B4 -_080A52BC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A50C8 - - thumb_func_start sub_80A52C4 -sub_80A52C4: @ 80A52C4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - adds r4, r3, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A52F4 - adds r1, r0 - ldr r0, _080A52F8 - ldrh r0, [r0, 0x30] - movs r2, 0xF0 - ands r2, r0 - cmp r2, 0x40 - bne _080A52FC - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, r3 - beq _080A533E - ldrh r0, [r1, 0x2] - adds r0, 0x1 - b _080A5340 - .align 2, 0 -_080A52F4: .4byte gUnknown_03004B28 -_080A52F8: .4byte gMain -_080A52FC: - cmp r2, 0x80 - bne _080A5312 - ldrh r2, [r1, 0x2] - movs r4, 0x2 - ldrsh r0, [r1, r4] - cmp r0, 0x1 - beq _080A530E - subs r0, r2, 0x1 - b _080A5340 -_080A530E: - strh r3, [r1, 0x2] - b _080A5342 -_080A5312: - cmp r2, 0x10 - bne _080A532A - movs r2, 0x2 - ldrsh r0, [r1, r2] - adds r0, 0xA - cmp r0, r3 - bge _080A5326 - ldrh r0, [r1, 0x2] - adds r0, 0xA - b _080A5340 -_080A5326: - strh r4, [r1, 0x2] - b _080A5342 -_080A532A: - cmp r2, 0x20 - bne _080A5346 - ldrh r2, [r1, 0x2] - movs r3, 0x2 - ldrsh r0, [r1, r3] - cmp r0, 0xA - ble _080A533E - adds r0, r2, 0 - subs r0, 0xA - b _080A5340 -_080A533E: - movs r0, 0x1 -_080A5340: - strh r0, [r1, 0x2] -_080A5342: - movs r0, 0x1 - b _080A5348 -_080A5346: - movs r0, 0 -_080A5348: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A52C4 - - thumb_func_start sub_80A5350 -sub_80A5350: @ 80A5350 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080A539C - adds r4, r1, r2 - ldr r1, _080A53A0 - ldrb r1, [r1] - ldr r2, _080A53A4 - ldr r2, [r2] - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x2] - bl sub_80A52C4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A53C0 - ldr r0, _080A53A8 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A53AC - ldrh r0, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - movs r1, 0x3 - str r1, [sp] - movs r1, 0x1 - bl sub_80A418C - b _080A53BC - .align 2, 0 -_080A539C: .4byte gUnknown_03004B28 -_080A53A0: .4byte gUnknown_02038560 -_080A53A4: .4byte gUnknown_03005D24 -_080A53A8: .4byte gUnknown_02038559 -_080A53AC: - ldrh r0, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - movs r1, 0x2 - str r1, [sp] - movs r1, 0x1 - bl sub_80A418C -_080A53BC: - movs r0, 0x1 - b _080A53C2 -_080A53C0: - movs r0, 0 -_080A53C2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A5350 - - thumb_func_start sub_80A53CC -sub_80A53CC: @ 80A53CC - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A53EA - bl sub_80A3770 - ldr r0, _080A53F0 - movs r1, 0 - bl CreateTask - ldr r1, _080A53F4 - strb r0, [r1] -_080A53EA: - pop {r0} - bx r0 - .align 2, 0 -_080A53F0: .4byte sub_80A50C8 -_080A53F4: .4byte gUnknown_02038563 - thumb_func_end sub_80A53CC - - thumb_func_start sub_80A53F8 -sub_80A53F8: @ 80A53F8 - push {lr} - ldr r0, _080A540C - movs r1, 0 - strb r1, [r0] - ldr r0, _080A5410 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A540C: .4byte gUnknown_03000701 -_080A5410: .4byte sub_80A53CC - thumb_func_end sub_80A53F8 - - thumb_func_start sub_80A5414 -sub_80A5414: @ 80A5414 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - bl rfu_lacks_rfufunc - cmp r0, 0 - bne _080A5426 - b _080A5552 -_080A5426: - ldr r2, _080A5460 - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A546C - ldr r4, _080A5464 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5440 - b _080A5552 -_080A5440: - ldrb r1, [r4] - ldr r0, _080A5468 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x1 - ldrb r0, [r1] - cmp r0, 0x8 - bne _080A5452 - b _080A5552 -_080A5452: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A54EE - .align 2, 0 -_080A5460: .4byte gMain -_080A5464: .4byte gUnknown_03000700 -_080A5468: .4byte gUnknown_03000704 -_080A546C: - cmp r1, 0x80 - bne _080A549C - ldr r4, _080A5494 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5552 - ldrb r1, [r4] - ldr r0, _080A5498 - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x8 - beq _080A5552 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - b _080A54EE - .align 2, 0 -_080A5494: .4byte gUnknown_03000700 -_080A5498: .4byte gUnknown_03000704 -_080A549C: - cmp r1, 0x20 - bne _080A54CC - ldr r4, _080A54C4 - ldrb r0, [r4] - cmp r0, 0x1 - bls _080A5552 - adds r1, r0, 0 - ldr r0, _080A54C8 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x2 - ldrb r0, [r1] - cmp r0, 0x8 - beq _080A5552 - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - negs r0, r0 - b _080A54EE - .align 2, 0 -_080A54C4: .4byte gUnknown_03000700 -_080A54C8: .4byte gUnknown_03000704 -_080A54CC: - cmp r1, 0x10 - bne _080A5500 - ldr r4, _080A54F8 - ldrb r0, [r4] - cmp r0, 0x1 - bhi _080A5552 - adds r1, r0, 0 - ldr r0, _080A54FC - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0x2] - cmp r0, 0x8 - beq _080A5552 - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 -_080A54EE: - bl MoveMenuCursor3 - strb r0, [r4] - b _080A5552 - .align 2, 0 -_080A54F8: .4byte gUnknown_03000700 -_080A54FC: .4byte gUnknown_03000704 -_080A5500: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5590 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5552 - ldr r1, _080A5570 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r1, _080A5574 - ldr r0, _080A5578 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A557C - bl sub_80A4DA4 - ldr r1, _080A5580 - ldr r0, _080A5584 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 -_080A5552: - cmp r5, 0 - bne _080A55FA - ldr r0, _080A5588 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A55E0 - ldr r0, _080A558C - ldrb r0, [r0] - cmp r0, 0 - bne _080A55D4 - movs r0, 0xC - bl sub_8072DDC - b _080A55FA - .align 2, 0 -_080A5570: .4byte gTasks -_080A5574: .4byte gUnknown_03005D10 -_080A5578: .4byte gUnknown_02038559 -_080A557C: .4byte gBG1TilemapBuffer -_080A5580: .4byte gUnknown_083C1640 -_080A5584: .4byte gUnknown_03000704 -_080A5588: .4byte gUnknown_03000701 -_080A558C: .4byte gUnknown_03000700 -_080A5590: - ldr r1, _080A55C0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r0, _080A55C4 - bl sub_80A4DA4 - ldr r1, _080A55C8 - ldr r0, _080A55CC - ldrb r2, [r0] - ldr r0, _080A55D0 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 - b _080A5552 - .align 2, 0 -_080A55C0: .4byte gTasks -_080A55C4: .4byte gBG1TilemapBuffer -_080A55C8: .4byte gUnknown_083C1640 -_080A55CC: .4byte gUnknown_03000700 -_080A55D0: .4byte gUnknown_03000704 -_080A55D4: - cmp r0, 0x1 - bls _080A55E8 - movs r0, 0x30 - bl sub_8072DCC - b _080A55FA -_080A55E0: - ldr r0, _080A55F0 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080A55F4 -_080A55E8: - movs r0, 0x2F - bl sub_8072DCC - b _080A55FA - .align 2, 0 -_080A55F0: .4byte gUnknown_03000700 -_080A55F4: - movs r0, 0x30 - bl sub_8072DCC -_080A55FA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5414 - - thumb_func_start sub_80A5600 -sub_80A5600: @ 80A5600 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r2, _080A563C - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A5648 - ldr r4, _080A5640 - ldrb r0, [r4] - cmp r0, 0 - bne _080A561E - b _080A5736 -_080A561E: - adds r1, r0, 0 - ldr r0, _080A5644 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x1 - ldrb r0, [r1] - cmp r0, 0x8 - bne _080A5630 - b _080A5736 -_080A5630: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A56D2 - .align 2, 0 -_080A563C: .4byte gMain -_080A5640: .4byte gUnknown_03000700 -_080A5644: .4byte gUnknown_03000704 -_080A5648: - cmp r1, 0x80 - bne _080A5680 - ldr r4, _080A5674 - ldrb r1, [r4] - ldr r0, _080A5678 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _080A5736 - cmp r1, 0x2 - beq _080A5736 - ldr r0, _080A567C - ldr r0, [r0] - adds r0, r1, r0 - ldrb r0, [r0, 0x1] - cmp r0, 0x8 - beq _080A5736 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - b _080A56D2 - .align 2, 0 -_080A5674: .4byte gUnknown_03000700 -_080A5678: .4byte gUnknown_02038564 -_080A567C: .4byte gUnknown_03000704 -_080A5680: - cmp r1, 0x20 - bne _080A56B0 - ldr r4, _080A56A8 - ldrb r0, [r4] - cmp r0, 0x2 - bls _080A5736 - adds r1, r0, 0 - ldr r0, _080A56AC - ldr r0, [r0] - adds r1, r0 - subs r1, 0x3 - ldrb r0, [r1] - cmp r0, 0x8 - beq _080A5736 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - negs r0, r0 - b _080A56D2 - .align 2, 0 -_080A56A8: .4byte gUnknown_03000700 -_080A56AC: .4byte gUnknown_03000704 -_080A56B0: - cmp r1, 0x10 - bne _080A56E4 - ldr r4, _080A56DC - ldrb r0, [r4] - cmp r0, 0x2 - bhi _080A5736 - adds r1, r0, 0 - ldr r0, _080A56E0 - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0x3] - cmp r0, 0x8 - beq _080A5736 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 -_080A56D2: - bl MoveMenuCursor3 - strb r0, [r4] - b _080A5736 - .align 2, 0 -_080A56DC: .4byte gUnknown_03000700 -_080A56E0: .4byte gUnknown_03000704 -_080A56E4: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5768 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5736 - ldr r1, _080A574C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r1, _080A5750 - ldr r0, _080A5754 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A5758 - bl sub_80A4DA4 - ldr r1, _080A575C - ldr r0, _080A5760 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 -_080A5736: - cmp r5, 0 - bne _080A57BE - ldr r0, _080A5764 - ldrb r0, [r0] - cmp r0, 0 - bne _080A57AC - movs r0, 0xC - bl sub_8072DDC - b _080A57BE - .align 2, 0 -_080A574C: .4byte gTasks -_080A5750: .4byte gUnknown_03005D10 -_080A5754: .4byte gUnknown_02038559 -_080A5758: .4byte gBG1TilemapBuffer -_080A575C: .4byte gUnknown_083C1640 -_080A5760: .4byte gUnknown_03000704 -_080A5764: .4byte gUnknown_03000700 -_080A5768: - ldr r1, _080A5798 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r0, _080A579C - bl sub_80A4DA4 - ldr r1, _080A57A0 - ldr r0, _080A57A4 - ldrb r2, [r0] - ldr r0, _080A57A8 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 - b _080A5736 - .align 2, 0 -_080A5798: .4byte gTasks -_080A579C: .4byte gBG1TilemapBuffer -_080A57A0: .4byte gUnknown_083C1640 -_080A57A4: .4byte gUnknown_03000700 -_080A57A8: .4byte gUnknown_03000704 -_080A57AC: - cmp r0, 0x2 - bhi _080A57B8 - movs r0, 0x2F - bl sub_8072DCC - b _080A57BE -_080A57B8: - movs r0, 0x30 - bl sub_8072DCC -_080A57BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5600 - - thumb_func_start sub_80A57C4 -sub_80A57C4: @ 80A57C4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r5, _080A57EC - ldr r0, _080A57F0 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r4, _080A57F4 - adds r1, r4 - str r1, [r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bne _080A57FC - ldr r1, _080A57F8 - movs r0, 0x1 - strb r0, [r1] - movs r5, 0x9 - b _080A582C - .align 2, 0 -_080A57EC: .4byte gUnknown_03000704 -_080A57F0: .4byte gUnknown_02038559 -_080A57F4: .4byte gUnknown_083C16AE -_080A57F8: .4byte gUnknown_02038564 -_080A57FC: - ldr r0, _080A581C - ldrh r0, [r0] - bl sub_80F92F4 - lsls r0, 24 - cmp r0, 0 - bne _080A5824 - adds r0, r4, 0 - adds r0, 0x8 - str r0, [r5] - ldr r1, _080A5820 - movs r0, 0x1 - strb r0, [r1] - movs r5, 0x9 - b _080A582C - .align 2, 0 -_080A581C: .4byte word_203855E -_080A5820: .4byte gUnknown_02038564 -_080A5824: - ldr r1, _080A5880 - movs r0, 0x2 - strb r0, [r1] - movs r5, 0x7 -_080A582C: - adds r6, r1, 0 - ldr r0, _080A5884 - adds r4, r5, 0x1 - ldrb r1, [r6] - lsls r1, 25 - lsrs r1, 24 - str r1, [sp] - movs r1, 0x7 - adds r2, r4, 0 - movs r3, 0x6 - bl sub_80A4008 - ldrb r3, [r6] - lsls r3, 1 - adds r3, 0x1 - adds r3, r5, r3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x6 - adds r1, r5, 0 - movs r2, 0xD - bl MenuDrawTextWindow - movs r0, 0 - adds r1, r5, 0 - bl sub_80A7834 - ldrb r3, [r6] - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl InitMenu - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5880: .4byte gUnknown_02038564 -_080A5884: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A57C4 - - thumb_func_start sub_80A5888 -sub_80A5888: @ 80A5888 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl rfu_lacks_rfufunc - cmp r0, 0 - beq _080A5988 - ldr r2, _080A58B8 - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080A58C0 - ldr r4, _080A58BC - ldrb r0, [r4] - cmp r0, 0 - beq _080A5988 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A58E2 - .align 2, 0 -_080A58B8: .4byte gMain -_080A58BC: .4byte gUnknown_03000700 -_080A58C0: - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080A58F4 - ldr r4, _080A58EC - ldrb r1, [r4] - ldr r0, _080A58F0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _080A5988 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080A58E2: - bl MoveMenuCursor - strb r0, [r4] - b _080A5988 - .align 2, 0 -_080A58EC: .4byte gUnknown_03000700 -_080A58F0: .4byte gUnknown_02038564 -_080A58F4: - ldrh r1, [r2, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A5964 - ldr r1, _080A5948 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x1C] - ldr r1, _080A594C - ldr r0, _080A5950 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A5954 - bl sub_80A4DA4 - ldr r1, _080A5958 - ldr r0, _080A595C - ldrb r2, [r0] - ldr r0, _080A5960 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A5988 - .align 2, 0 -_080A5948: .4byte gTasks -_080A594C: .4byte gUnknown_03005D10 -_080A5950: .4byte gUnknown_02038559 -_080A5954: .4byte gBG1TilemapBuffer -_080A5958: .4byte gUnknown_083C1640 -_080A595C: .4byte gUnknown_03000700 -_080A5960: .4byte gUnknown_03000704 -_080A5964: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5988 - ldr r1, _080A5990 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r0, _080A5994 - bl sub_80A4DA4 - ldr r0, _080A5998 - ldr r1, [r0, 0x14] - adds r0, r5, 0 - bl _call_via_r1 -_080A5988: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5990: .4byte gTasks -_080A5994: .4byte gBG1TilemapBuffer -_080A5998: .4byte gUnknown_083C1640 - thumb_func_end sub_80A5888 - - thumb_func_start sub_80A599C -sub_80A599C: @ 80A599C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A59C4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A59C8 - lsrs r2, r3, 16 - movs r4, 0 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - ldr r1, _080A59CC - strb r4, [r1] - bl sub_80A5AE4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A59C4: .4byte gTasks -_080A59C8: .4byte sub_805469C -_080A59CC: .4byte gUnknown_03005CE0 - thumb_func_end sub_80A599C - - thumb_func_start sub_80A59D0 -sub_80A59D0: @ 80A59D0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A5A3C - movs r0, 0 - strb r0, [r1] - ldr r7, _080A5A40 - ldrb r0, [r7] - cmp r0, 0x5 - bne _080A59E8 - movs r0, 0x1 - strb r0, [r1] -_080A59E8: - ldr r1, _080A5A44 - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r6, r0, r1 - ldr r3, _080A5A48 - ldr r2, _080A5A4C - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r6, 0x1C] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5A54 - ldrb r0, [r7] - cmp r0, 0x5 - beq _080A5A54 - bl sub_80A57C4 - ldr r0, _080A5A50 - str r0, [r6] - b _080A5A9C - .align 2, 0 -_080A5A3C: .4byte gUnknown_03000700 -_080A5A40: .4byte gUnknown_03000701 -_080A5A44: .4byte gTasks -_080A5A48: .4byte gUnknown_03005D10 -_080A5A4C: .4byte gUnknown_02038559 -_080A5A50: .4byte sub_80A5888 -_080A5A54: - ldr r0, _080A5A7C - bl sub_80A4BF0 - ldr r0, _080A5A80 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A5A6E - ldr r0, _080A5A84 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A5A90 -_080A5A6E: - ldr r0, _080A5A88 - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A5A8C - b _080A5A9A - .align 2, 0 -_080A5A7C: .4byte gBG1TilemapBuffer -_080A5A80: .4byte gUnknown_02038559 -_080A5A84: .4byte gUnknown_03000701 -_080A5A88: .4byte gTasks -_080A5A8C: .4byte sub_80A5414 -_080A5A90: - ldr r0, _080A5AA4 - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A5AA8 -_080A5A9A: - str r0, [r1] -_080A5A9C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5AA4: .4byte gTasks -_080A5AA8: .4byte sub_80A5600 - thumb_func_end sub_80A59D0 - - thumb_func_start sub_80A5AAC -sub_80A5AAC: @ 80A5AAC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080A5ADC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5AE0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5ADC: .4byte gTasks -_080A5AE0: .4byte sub_80A5B00 - thumb_func_end sub_80A5AAC - - thumb_func_start sub_80A5AE4 -sub_80A5AE4: @ 80A5AE4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A5AAC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5AE4 - - thumb_func_start sub_80A5B00 -sub_80A5B00: @ 80A5B00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A5B38 - adds r2, r0, r1 - ldr r0, _080A5B3C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A5B32 - ldrh r0, [r2, 0x10] - lsls r0, 16 - ldrh r1, [r2, 0x12] - orrs r0, r1 - bl SetMainCallback2 - bl gpu_pal_allocator_reset__manage_upper_four - adds r0, r4, 0 - bl DestroyTask -_080A5B32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5B38: .4byte gUnknown_03004B28 -_080A5B3C: .4byte gPaletteFade - thumb_func_end sub_80A5B00 - - thumb_func_start sub_80A5B40 -sub_80A5B40: @ 80A5B40 - push {lr} -_080A5B42: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5B68 - bl ResetTasks - ldr r0, _080A5B60 - movs r1, 0 - bl CreateTask - ldr r1, _080A5B64 - strb r0, [r1] - b _080A5B74 - .align 2, 0 -_080A5B60: .4byte sub_80A50C8 -_080A5B64: .4byte gUnknown_02038563 -_080A5B68: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5B42 -_080A5B74: - pop {r0} - bx r0 - thumb_func_end sub_80A5B40 - - thumb_func_start sub_80A5B78 -sub_80A5B78: @ 80A5B78 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _080A5BB0 - ldrh r0, [r5] - bl itemid_get_overworld_function - cmp r0, 0 - beq _080A5BF2 - movs r0, 0x5 - bl PlaySE - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _080A5BB4 - ldrh r0, [r5] - bl itemid_get_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5BB4 - adds r0, r4, 0 - bl sub_80A5BF8 - b _080A5BF2 - .align 2, 0 -_080A5BB0: .4byte word_203855E -_080A5BB4: - ldr r1, _080A5BE0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r0, _080A5BE4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - beq _080A5BEC - ldr r0, _080A5BE8 - ldrh r0, [r0] - bl itemid_get_overworld_function - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 - b _080A5BF2 - .align 2, 0 -_080A5BE0: .4byte gTasks -_080A5BE4: .4byte gUnknown_02038559 -_080A5BE8: .4byte word_203855E -_080A5BEC: - adds r0, r4, 0 - bl sub_80C9C7C -_080A5BF2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5B78 - - thumb_func_start sub_80A5BF8 -sub_80A5BF8: @ 80A5BF8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A5C1C - ldr r2, _080A5C20 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5C1C: .4byte gOtherText_NoPokemon -_080A5C20: .4byte sub_80A5C48 - thumb_func_end sub_80A5BF8 - - thumb_func_start sub_80A5C24 -sub_80A5C24: @ 80A5C24 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5C24 - - thumb_func_start sub_80A5C48 -sub_80A5C48: @ 80A5C48 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A5C90 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0x7 - movs r1, 0x7 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A5C94 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5C98 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5C90: .4byte gBG1TilemapBuffer -_080A5C94: .4byte gTasks -_080A5C98: .4byte sub_80A5C24 - thumb_func_end sub_80A5C48 - - thumb_func_start sub_80A5C9C -sub_80A5C9C: @ 80A5C9C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl sub_8064E2C - bl ScriptContext2_Disable - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5C9C - - thumb_func_start sub_80A5CC4 -sub_80A5CC4: @ 80A5CC4 - push {lr} - bl pal_fill_black - ldr r0, _080A5CD8 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080A5CD8: .4byte Task_CallItemUseOnFieldCallback - thumb_func_end sub_80A5CC4 - - thumb_func_start Task_CallItemUseOnFieldCallback -Task_CallItemUseOnFieldCallback: @ 80A5CDC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5CF8 - ldr r0, _080A5D00 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080A5CF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5D00: .4byte gUnknown_03005D00 - thumb_func_end Task_CallItemUseOnFieldCallback - - thumb_func_start sub_80A5D04 -sub_80A5D04: @ 80A5D04 - push {lr} -_080A5D06: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5D28 - ldr r0, _080A5D20 - movs r1, 0 - bl CreateTask - ldr r1, _080A5D24 - strb r0, [r1] - b _080A5D34 - .align 2, 0 -_080A5D20: .4byte sub_80A50C8 -_080A5D24: .4byte gUnknown_02038563 -_080A5D28: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5D06 -_080A5D34: - pop {r0} - bx r0 - thumb_func_end sub_80A5D04 - - thumb_func_start sub_80A5D38 -sub_80A5D38: @ 80A5D38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A5D70 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldr r0, _080A5D74 - bl sub_80A4DA4 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5D70: .4byte gTasks -_080A5D74: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A5D38 - - thumb_func_start sub_80A5D78 -sub_80A5D78: @ 80A5D78 - push {lr} - sub sp, 0x4 - ldr r0, _080A5D9C - movs r1, 0x4 - str r1, [sp] - movs r1, 0x8 - movs r2, 0x8 - movs r3, 0x5 - bl sub_80A4008 - movs r0, 0x7 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A5D9C: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A5D78 - - thumb_func_start sub_80A5DA0 -sub_80A5DA0: @ 80A5DA0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, _080A5DC4 - bl itemid_copy_name - cmp r4, 0x63 - bls _080A5DCC - ldr r0, _080A5DC8 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - b _080A5DD8 - .align 2, 0 -_080A5DC4: .4byte gStringVar1 -_080A5DC8: .4byte gStringVar2 -_080A5DCC: - ldr r0, _080A5DF0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN -_080A5DD8: - ldr r0, _080A5DF4 - bl sub_80A4DA4 - movs r0, 0x5 - bl sub_80A7528 - bl sub_80A5D78 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5DF0: .4byte gStringVar2 -_080A5DF4: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A5DA0 - - thumb_func_start sub_80A5DF8 -sub_80A5DF8: @ 80A5DF8 - push {lr} - ldr r0, _080A5E18 - bl sub_80A4DA4 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xB - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0x4 - bl sub_80A7528 - pop {r0} - bx r0 - .align 2, 0 -_080A5E18: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A5DF8 - - thumb_func_start sub_80A5E1C -sub_80A5E1C: @ 80A5E1C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A5E58 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5E36 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5E50 -_080A5E36: - ldr r0, _080A5E5C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x1C] - adds r0, r4, 0 - bl sub_80A41D4 - adds r0, r4, 0 - bl sub_80A5D38 -_080A5E50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5E58: .4byte gMain -_080A5E5C: .4byte gTasks - thumb_func_end sub_80A5E1C - - thumb_func_start sub_80A5E60 -sub_80A5E60: @ 80A5E60 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A5DF8 - adds r0, r4, 0 - bl sub_80A3D5C - ldr r1, _080A5E88 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5E8C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5E88: .4byte gTasks -_080A5E8C: .4byte sub_80A5E1C - thumb_func_end sub_80A5E60 - - thumb_func_start sub_80A5E90 -sub_80A5E90: @ 80A5E90 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80A5D38 - pop {r0} - bx r0 - thumb_func_end sub_80A5E90 - - thumb_func_start sub_80A5EA0 -sub_80A5EA0: @ 80A5EA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - adds r0, r4, 0 - bl sub_80A5350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A5F0C - ldr r0, _080A5EE8 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A5EF8 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A5EEC - ldrh r0, [r0] - ldr r2, _080A5EF0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl sub_80A5DA0 - ldr r1, _080A5EF4 - adds r0, r4, 0 - bl sub_80F914C - b _080A5F0C - .align 2, 0 -_080A5EE8: .4byte gMain -_080A5EEC: .4byte word_203855E -_080A5EF0: .4byte gTasks -_080A5EF4: .4byte gUnknown_083C16F4 -_080A5EF8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5F0C - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_80A5D38 -_080A5F0C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5EA0 - - thumb_func_start sub_80A5F14 -sub_80A5F14: @ 80A5F14 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r1, _080A5F58 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5F5C - str r1, [r0] - movs r0, 0x3 - bl sub_80A7528 - ldr r0, _080A5F60 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A5F64 - movs r0, 0x3 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x6 - movs r2, 0x9 - movs r3, 0x7 - bl sub_80A4DD8 - b _080A5F78 - .align 2, 0 -_080A5F58: .4byte gTasks -_080A5F5C: .4byte sub_80A5EA0 -_080A5F60: .4byte gUnknown_02038559 -_080A5F64: - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x9 - movs r3, 0x6 - bl sub_80A4DD8 -_080A5F78: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5F14 - - thumb_func_start sub_80A5F80 -sub_80A5F80: @ 80A5F80 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5F80 - - thumb_func_start sub_80A5FAC -sub_80A5FAC: @ 80A5FAC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A5FD0 - ldr r1, _080A5FD4 - adds r4, r0, r1 - ldr r5, _080A5FD8 - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080A5FDC - bl sub_80A40D0 - movs r0, 0 - b _080A5FE2 - .align 2, 0 -_080A5FD0: .4byte gSaveBlock1 -_080A5FD4: .4byte 0x00000496 -_080A5FD8: .4byte word_203855E -_080A5FDC: - bl sub_80A413C - ldrh r0, [r5] -_080A5FE2: - strh r0, [r4] - movs r0, 0 - bl sub_80A7528 - adds r0, r6, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r6, 0 - bl sub_80A37C0 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A5FAC - - thumb_func_start sub_80A6000 -sub_80A6000: @ 80A6000 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6000 - - thumb_func_start sub_80A6024 -sub_80A6024: @ 80A6024 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A606C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A6062 - ldr r0, _080A6070 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A6074 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6078 - str r1, [r0] -_080A6062: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A606C: .4byte gMain -_080A6070: .4byte gBG1TilemapBuffer -_080A6074: .4byte gTasks -_080A6078: .4byte sub_80A6000 - thumb_func_end sub_80A6024 - - thumb_func_start DisplayCannotDismountBikeMessage -DisplayCannotDismountBikeMessage: @ 80A607C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A73FC - ldr r0, _080A60B4 - ldrh r0, [r0] - ldr r1, _080A60B8 - bl itemid_copy_name - ldr r5, _080A60BC - ldr r1, _080A60C0 - adds r0, r5, 0 - bl StringExpandPlaceholders - bl sub_80A7590 - ldr r2, _080A60C4 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A60B4: .4byte word_203855E -_080A60B8: .4byte gStringVar1 -_080A60BC: .4byte gStringVar4 -_080A60C0: .4byte gOtherText_CantBeHeld -_080A60C4: .4byte sub_80A6024 - thumb_func_end DisplayCannotDismountBikeMessage - - thumb_func_start ItemMenu_Give -ItemMenu_Give: @ 80A60C8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - movs r0, 0x5 - bl PlaySE - ldr r5, _080A60FC - ldrh r0, [r5] - bl sub_80F931C - lsls r0, 24 - cmp r0, 0 - bne _080A6108 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A6100 - ldr r2, _080A6104 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A616E - .align 2, 0 -_080A60FC: .4byte word_203855E -_080A6100: .4byte gOtherText_CantWriteMail -_080A6104: .4byte sub_80A6024 -_080A6108: - ldrh r0, [r5] - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A6168 - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _080A6128 - adds r0, r4, 0 - bl sub_80A5BF8 - b _080A616E -_080A6128: - ldr r1, _080A6158 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A615C - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - ldr r1, _080A6160 - str r1, [r0] - ldr r1, _080A6164 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080A616E - .align 2, 0 -_080A6158: .4byte gTasks -_080A615C: .4byte sub_808B020 -_080A6160: .4byte sub_80A5B00 -_080A6164: .4byte gUnknown_02038561 -_080A6168: - adds r0, r6, 0 - bl DisplayCannotDismountBikeMessage -_080A616E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ItemMenu_Give - - thumb_func_start sub_80A6178 -sub_80A6178: @ 80A6178 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80A5AE4 - ldr r1, _080A61A0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A61A4 - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A61A0: .4byte gTasks -_080A61A4: .4byte sub_814625C - thumb_func_end sub_80A6178 - - thumb_func_start sub_80A61A8 -sub_80A61A8: @ 80A61A8 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A61C2 - ldr r0, _080A61C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A61CC - strb r0, [r1] -_080A61C2: - pop {r0} - bx r0 - .align 2, 0 -_080A61C8: .4byte sub_80A50C8 -_080A61CC: .4byte gUnknown_02038563 - thumb_func_end sub_80A61A8 - - thumb_func_start sub_80A61D0 -sub_80A61D0: @ 80A61D0 - push {lr} - ldr r0, _080A61E4 - movs r1, 0x2 - strb r1, [r0] - ldr r0, _080A61E8 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A61E4: .4byte gUnknown_03000701 -_080A61E8: .4byte sub_80A61A8 - thumb_func_end sub_80A61D0 - - thumb_func_start sub_80A61EC -sub_80A61EC: @ 80A61EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A620C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6210 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A620C: .4byte gTasks -_080A6210: .4byte sub_808A3F8 - thumb_func_end sub_80A61EC - - thumb_func_start sub_80A6214 -sub_80A6214: @ 80A6214 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080A6244 - ldrb r0, [r0] - adds r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080A6248 - ldrh r0, [r4] - bl sub_80F931C - lsls r0, 24 - cmp r0, 0 - bne _080A6254 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A624C - ldr r2, _080A6250 - adds r0, r5, 0 - b _080A6280 - .align 2, 0 -_080A6244: .4byte gUnknown_02038559 -_080A6248: .4byte word_203855E -_080A624C: .4byte gOtherText_CantWriteMail -_080A6250: .4byte sub_80A6024 -_080A6254: - ldrh r0, [r4] - bl sub_80F92F4 - lsls r0, 24 - cmp r0, 0 - bne _080A6298 - bl sub_80A73FC - ldrh r0, [r4] - ldr r1, _080A6288 - bl itemid_copy_name - ldr r4, _080A628C - ldr r1, _080A6290 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80A7590 - ldr r2, _080A6294 - adds r0, r5, 0 - adds r1, r4, 0 -_080A6280: - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A62D2 - .align 2, 0 -_080A6288: .4byte gStringVar1 -_080A628C: .4byte gStringVar4 -_080A6290: .4byte gOtherText_CantBeHeldHere -_080A6294: .4byte sub_80A6024 -_080A6298: - cmp r6, 0x5 - beq _080A62CC - ldrh r0, [r4] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _080A62CC - ldr r1, _080A62C4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A62C8 - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - adds r0, r5, 0 - bl sub_80A5AAC - b _080A62D2 - .align 2, 0 -_080A62C4: .4byte gTasks -_080A62C8: .4byte sub_808A3F8 -_080A62CC: - adds r0, r5, 0 - bl DisplayCannotDismountBikeMessage -_080A62D2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6214 - - thumb_func_start sub_80A62D8 -sub_80A62D8: @ 80A62D8 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A62F2 - ldr r0, _080A62F8 - movs r1, 0 - bl CreateTask - ldr r1, _080A62FC - strb r0, [r1] -_080A62F2: - pop {r0} - bx r0 - .align 2, 0 -_080A62F8: .4byte sub_80A50C8 -_080A62FC: .4byte gUnknown_02038563 - thumb_func_end sub_80A62D8 - - thumb_func_start sub_80A6300 -sub_80A6300: @ 80A6300 - push {lr} - ldr r0, _080A6314 - movs r1, 0x3 - strb r1, [r0] - ldr r0, _080A6318 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6314: .4byte gUnknown_03000701 -_080A6318: .4byte sub_80A62D8 - thumb_func_end sub_80A6300 - - thumb_func_start sub_80A631C -sub_80A631C: @ 80A631C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6344 - ldr r1, _080A6348 - str r1, [r2] - ldr r2, _080A634C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6350 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A6344: .4byte gUnknown_0300485C -_080A6348: .4byte sub_80B3050 -_080A634C: .4byte gTasks -_080A6350: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A631C - - thumb_func_start sub_80A6354 -sub_80A6354: @ 80A6354 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80A7590 - ldr r0, _080A63C4 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r0 - ldr r4, _080A63C8 - ldr r3, _080A63CC - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r2, 0x1C] - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - ldr r4, _080A63D0 - ldrh r0, [r4] - ldr r1, _080A63D4 - bl itemid_copy_name - ldrh r0, [r4] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _080A63E4 - ldr r4, _080A63D8 - ldr r1, _080A63DC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A63E0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A63FA - .align 2, 0 -_080A63C4: .4byte gTasks -_080A63C8: .4byte gUnknown_03005D10 -_080A63CC: .4byte gUnknown_02038559 -_080A63D0: .4byte word_203855E -_080A63D4: .4byte gStringVar2 -_080A63D8: .4byte gStringVar4 -_080A63DC: .4byte gOtherText_CantBuyThat -_080A63E0: .4byte sub_80A6444 -_080A63E4: - ldr r4, _080A6400 - ldr r1, _080A6404 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6408 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage -_080A63FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6400: .4byte gStringVar4 -_080A6404: .4byte gOtherText_HowManyToSell -_080A6408: .4byte sub_80A648C - thumb_func_end sub_80A6354 - - thumb_func_start sub_80A640C -sub_80A640C: @ 80A640C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A6440 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6440: .4byte gTasks - thumb_func_end sub_80A640C - - thumb_func_start sub_80A6444 -sub_80A6444: @ 80A6444 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A6480 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A6484 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6488 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6480: .4byte gBG1TilemapBuffer -_080A6484: .4byte gTasks -_080A6488: .4byte sub_80A640C - thumb_func_end sub_80A6444 - - thumb_func_start sub_80A648C -sub_80A648C: @ 80A648C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A64E8 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080A64EC - str r0, [r4] - ldr r0, _080A64F0 - movs r5, 0x2 - str r5, [sp] - movs r1, 0x1 - movs r2, 0xB - movs r3, 0xC - bl sub_80A4008 - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuDrawTextWindow - movs r0, 0x1 - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - movs r0, 0xB - strh r0, [r4, 0xE] - ldr r0, _080A64F4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A64F8 - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xB - bl sub_80A418C - b _080A6506 - .align 2, 0 -_080A64E8: .4byte gTasks -_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput -_080A64F0: .4byte gBG1TilemapBuffer -_080A64F4: .4byte gUnknown_02038559 -_080A64F8: - str r5, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xB - bl sub_80A418C -_080A6506: - ldr r0, _080A651C - ldrh r0, [r0] - movs r1, 0x1 - bl BuyMenuDisplayMessage - bl sub_80A683C - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A651C: .4byte word_203855E - thumb_func_end sub_80A648C - - thumb_func_start sub_80A6520 -sub_80A6520: @ 80A6520 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A6544 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A653E - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl BuyMenuPrintItemQuantityAndPrice -_080A653E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6544: .4byte gMain - thumb_func_end sub_80A6520 - - thumb_func_start sub_80A6548 -sub_80A6548: @ 80A6548 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80A48F8 - ldr r1, _080A656C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6570 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A656C: .4byte gTasks -_080A6570: .4byte sub_80A6520 - thumb_func_end sub_80A6548 - - thumb_func_start sub_80A6574 -sub_80A6574: @ 80A6574 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x5F - bl PlaySE - ldr r0, _080A65A0 - ldrh r0, [r0] - ldr r1, _080A65A4 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - ldrb r1, [r4, 0xA] - bl sub_80A6870 - ldr r0, _080A65A8 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A65A0: .4byte word_203855E -_080A65A4: .4byte gTasks -_080A65A8: .4byte sub_80A6548 - thumb_func_end sub_80A6574 - - thumb_func_start sub_80A65AC -sub_80A65AC: @ 80A65AC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - ldr r0, _080A6600 - movs r1, 0x6 - str r1, [sp] - movs r1, 0x7 - movs r2, 0x6 - movs r3, 0x6 - bl sub_80A36B8 - ldr r0, _080A6604 - ldrh r0, [r0] - ldr r1, _080A6608 - bl itemid_copy_name - ldr r4, _080A660C - ldr r1, _080A6610 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6614 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - adds r0, r5, 0 - bl sub_80A3D5C - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6600: .4byte gBG1TilemapBuffer -_080A6604: .4byte word_203855E -_080A6608: .4byte gStringVar2 -_080A660C: .4byte gStringVar4 -_080A6610: .4byte gOtherText_SoldItem -_080A6614: .4byte sub_80A6574 - thumb_func_end sub_80A65AC - - thumb_func_start sub_80A6618 -sub_80A6618: @ 80A6618 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - ldr r0, _080A664C - movs r1, 0x6 - str r1, [sp] - movs r1, 0x7 - movs r2, 0x6 - movs r3, 0x6 - bl sub_80A36B8 - adds r0, r4, 0 - bl BuyMenuPrintItemQuantityAndPrice - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A664C: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A6618 - - thumb_func_start sub_80A6650 -sub_80A6650: @ 80A6650 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A5D78 - ldr r1, _080A666C - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A666C: .4byte gUnknown_083C16FC - thumb_func_end sub_80A6650 - - thumb_func_start Task_BuyHowManyDialogueHandleInput -Task_BuyHowManyDialogueHandleInput: @ 80A6670 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - adds r0, r5, 0 - bl sub_80A5350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A66B4 - movs r0, 0x6 - movs r1, 0xB - movs r2, 0xC - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r0, _080A66AC - ldrh r0, [r0] - ldr r2, _080A66B0 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl BuyMenuDisplayMessage - b _080A6758 - .align 2, 0 -_080A66AC: .4byte word_203855E -_080A66B0: .4byte gTasks -_080A66B4: - ldr r0, _080A6724 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A6744 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _080A6728 - movs r1, 0x3 - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0xD - bl sub_80A36B8 - ldr r4, _080A672C - ldr r0, _080A6730 - ldrh r0, [r0] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - ldr r2, _080A6734 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - movs r2, 0xA - ldrsh r1, [r1, r2] - muls r1, r0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _080A6738 - ldr r1, _080A673C - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6740 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A6758 - .align 2, 0 -_080A6724: .4byte gMain -_080A6728: .4byte gBG1TilemapBuffer -_080A672C: .4byte gStringVar1 -_080A6730: .4byte word_203855E -_080A6734: .4byte gTasks -_080A6738: .4byte gStringVar4 -_080A673C: .4byte gOtherText_CanPay -_080A6740: .4byte sub_80A6650 -_080A6744: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6758 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl BuyMenuPrintItemQuantityAndPrice -_080A6758: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end Task_BuyHowManyDialogueHandleInput - - thumb_func_start sub_80A6760 -sub_80A6760: @ 80A6760 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A6794 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6794: .4byte gTasks - thumb_func_end sub_80A6760 - - thumb_func_start BuyMenuPrintItemQuantityAndPrice -BuyMenuPrintItemQuantityAndPrice: @ 80A6798 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A67E8 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0 - movs r1, 0 - bl RemoveMoneyLabelObject - movs r0, 0 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A67EC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A67F0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A67E8: .4byte gBG1TilemapBuffer -_080A67EC: .4byte gTasks -_080A67F0: .4byte sub_80A6760 - thumb_func_end BuyMenuPrintItemQuantityAndPrice - - thumb_func_start BuyMenuDisplayMessage -BuyMenuDisplayMessage: @ 80A67F4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - muls r0, r5 - movs r1, 0x6 - movs r2, 0x6 - movs r3, 0xB - bl sub_80B7A94 - ldr r6, _080A6838 - adds r0, r4, 0 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - muls r1, r5 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6838: .4byte gStringVar1 - thumb_func_end BuyMenuDisplayMessage - - thumb_func_start sub_80A683C -sub_80A683C: @ 80A683C - push {lr} - sub sp, 0x4 - ldr r0, _080A6868 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_80B7C14 - ldr r0, _080A686C - movs r1, 0x2 - str r1, [sp] - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xC - bl sub_80A4008 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A6868: .4byte gSaveBlock1 -_080A686C: .4byte gBG1TilemapBuffer - thumb_func_end sub_80A683C - - thumb_func_start sub_80A6870 -sub_80A6870: @ 80A6870 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080A68A0 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - muls r1, r4 - adds r0, r5, 0 - bl sub_80B79B8 - ldr r0, [r5] - movs r1, 0 - movs r2, 0 - bl sub_80B7BEC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A68A0: .4byte gSaveBlock1 + 0x490 - thumb_func_end sub_80A6870 - - thumb_func_start sub_80A68A4 -sub_80A68A4: @ 80A68A4 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A68BE - ldr r0, _080A68C4 - movs r1, 0 - bl CreateTask - ldr r1, _080A68C8 - strb r0, [r1] -_080A68BE: - pop {r0} - bx r0 - .align 2, 0 -_080A68C4: .4byte sub_80A50C8 -_080A68C8: .4byte gUnknown_02038563 - thumb_func_end sub_80A68A4 - - thumb_func_start sub_80A68CC -sub_80A68CC: @ 80A68CC - push {lr} - ldr r1, _080A68E4 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _080A68E8 - movs r0, 0x4 - strb r0, [r1] - ldr r0, _080A68EC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A68E4: .4byte gUnknown_02038559 -_080A68E8: .4byte gUnknown_03000701 -_080A68EC: .4byte sub_80A68A4 - thumb_func_end sub_80A68CC - - thumb_func_start sub_80A68F0 -sub_80A68F0: @ 80A68F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6910 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6914 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A6910: .4byte gTasks -_080A6914: .4byte sub_80546B8 - thumb_func_end sub_80A68F0 - - thumb_func_start sub_80A6918 -sub_80A6918: @ 80A6918 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6938 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A693C - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AAC - pop {r0} - bx r0 - .align 2, 0 -_080A6938: .4byte gTasks -_080A693C: .4byte sub_80546B8 - thumb_func_end sub_80A6918 - - thumb_func_start sub_80A6940 -sub_80A6940: @ 80A6940 - push {lr} -_080A6942: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6968 - ldr r0, _080A6960 - movs r1, 0 - bl CreateTask - ldr r1, _080A6964 - strb r0, [r1] - bl sub_80A699C - b _080A6974 - .align 2, 0 -_080A6960: .4byte sub_80A50C8 -_080A6964: .4byte gUnknown_02038563 -_080A6968: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6942 -_080A6974: - pop {r0} - bx r0 - thumb_func_end sub_80A6940 - - thumb_func_start sub_80A6978 -sub_80A6978: @ 80A6978 - push {lr} - ldr r1, _080A6990 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _080A6994 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080A6998 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6990: .4byte gUnknown_02038559 -_080A6994: .4byte gUnknown_03000701 -_080A6998: .4byte sub_80A6940 - thumb_func_end sub_80A6978 - - thumb_func_start sub_80A699C -sub_80A699C: @ 80A699C - ldr r1, _080A69AC - ldr r0, _080A69B0 - str r0, [r1] - ldr r1, _080A69B4 - movs r0, 0x4 - strb r0, [r1] - bx lr - .align 2, 0 -_080A69AC: .4byte gUnknown_03000704 -_080A69B0: .4byte gUnknown_083C16B8 -_080A69B4: .4byte gUnknown_02038564 - thumb_func_end sub_80A699C - - thumb_func_start sub_80A69B8 -sub_80A69B8: @ 80A69B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A69D8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A69DC - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A69D8: .4byte gTasks -_080A69DC: .4byte sub_804E990 - thumb_func_end sub_80A69B8 - - thumb_func_start sub_80A69E0 -sub_80A69E0: @ 80A69E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6A00 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6A04 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AAC - pop {r0} - bx r0 - .align 2, 0 -_080A6A00: .4byte gTasks -_080A6A04: .4byte sub_804E990 - thumb_func_end sub_80A69E0 - - thumb_func_start sub_80A6A08 -sub_80A6A08: @ 80A6A08 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6A22 - ldr r0, _080A6A28 - movs r1, 0 - bl CreateTask - ldr r1, _080A6A2C - strb r0, [r1] -_080A6A22: - pop {r0} - bx r0 - .align 2, 0 -_080A6A28: .4byte sub_80A50C8 -_080A6A2C: .4byte gUnknown_02038563 - thumb_func_end sub_80A6A08 - - thumb_func_start sub_80A6A30 -sub_80A6A30: @ 80A6A30 - push {lr} - ldr r0, _080A6A44 - movs r1, 0x6 - strb r1, [r0] - ldr r0, _080A6A48 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6A44: .4byte gUnknown_03000701 -_080A6A48: .4byte sub_80A6A08 - thumb_func_end sub_80A6A30 - - thumb_func_start sub_80A6A4C -sub_80A6A4C: @ 80A6A4C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6A74 - ldr r1, _080A6A78 - str r1, [r2] - ldr r2, _080A6A7C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6A80 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A6A74: .4byte gUnknown_0300485C -_080A6A78: .4byte sub_813A0F8 -_080A6A7C: .4byte gTasks -_080A6A80: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A6A4C - - thumb_func_start sub_80A6A84 -sub_80A6A84: @ 80A6A84 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r6, _080A6AE8 - adds r0, r4, r6 - mov r8, r0 - ldr r0, _080A6AEC - bl sub_80A4DA4 - ldr r0, _080A6AF0 - ldrh r0, [r0] - ldr r1, _080A6AF4 - bl itemid_copy_name - ldr r0, _080A6AF8 - mov r2, r8 - movs r3, 0x2 - ldrsh r1, [r2, r3] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xB - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0x7 - bl sub_80A7528 - adds r0, r5, 0 - bl sub_80A3D5C - subs r6, 0x8 - adds r4, r6 - ldr r0, _080A6AFC - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6AE8: .4byte gUnknown_03004B28 -_080A6AEC: .4byte gBG1TilemapBuffer -_080A6AF0: .4byte word_203855E -_080A6AF4: .4byte gStringVar1 -_080A6AF8: .4byte gStringVar2 -_080A6AFC: .4byte sub_80A5E1C - thumb_func_end sub_80A6A84 - - thumb_func_start sub_80A6B00 -sub_80A6B00: @ 80A6B00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A6B54 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A6B1A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6B4C -_080A6B1A: - ldr r1, _080A6B58 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r1, _080A6B5C - ldr r0, _080A6B60 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A5D38 -_080A6B4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6B54: .4byte gMain -_080A6B58: .4byte gTasks -_080A6B5C: .4byte gUnknown_03005D10 -_080A6B60: .4byte gUnknown_02038559 - thumb_func_end sub_80A6B00 - - thumb_func_start sub_80A6B64 -sub_80A6B64: @ 80A6B64 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r6, _080A6B9C - adds r7, r5, r6 - ldr r0, _080A6BA0 - mov r8, r0 - ldrh r0, [r0] - bl itemid_is_unique - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080A6BA8 - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _080A6BA4 - str r1, [r0] - movs r0, 0x9 - bl sub_80A7528 - b _080A6BD2 - .align 2, 0 -_080A6B9C: .4byte gUnknown_03004B28 -_080A6BA0: .4byte word_203855E -_080A6BA4: .4byte sub_80A6B00 -_080A6BA8: - mov r1, r8 - ldrh r0, [r1] - ldrh r1, [r7, 0x2] - bl sub_80A9760 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6BC2 - adds r0, r4, 0 - bl sub_80A6A84 - b _080A6BD2 -_080A6BC2: - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _080A6BDC - str r1, [r0] - movs r0, 0x8 - bl sub_80A7528 -_080A6BD2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6BDC: .4byte sub_80A6B00 - thumb_func_end sub_80A6B64 - - thumb_func_start sub_80A6BE0 -sub_80A6BE0: @ 80A6BE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - adds r0, r4, 0 - bl sub_80A5350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A6C58 - ldr r0, _080A6C18 - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A6C20 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A6C1C - bl sub_80A4DA4 - adds r0, r4, 0 - bl sub_80A6B64 - b _080A6C58 - .align 2, 0 -_080A6C18: .4byte gMain -_080A6C1C: .4byte gBG1TilemapBuffer -_080A6C20: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6C58 - ldr r1, _080A6C60 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _080A6C64 - ldr r0, _080A6C68 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_80A5D38 -_080A6C58: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6C60: .4byte gTasks -_080A6C64: .4byte gUnknown_03005D10 -_080A6C68: .4byte gUnknown_02038559 - thumb_func_end sub_80A6BE0 - - thumb_func_start sub_80A6C6C -sub_80A6C6C: @ 80A6C6C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A6CE4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldr r2, _080A6CE8 - ldr r6, _080A6CEC - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r5, 0x1C] - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - movs r0, 0x5 - bl PlaySE - bl sub_80A7590 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x4 - beq _080A6D0A - ldr r0, _080A6CF0 - str r0, [r5] - movs r0, 0x6 - bl sub_80A7528 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x3 - bne _080A6CF4 - movs r0, 0x3 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x6 - movs r2, 0x9 - movs r3, 0x7 - bl sub_80A4DD8 - b _080A6D14 - .align 2, 0 -_080A6CE4: .4byte gTasks -_080A6CE8: .4byte gUnknown_03005D10 -_080A6CEC: .4byte gUnknown_02038559 -_080A6CF0: .4byte sub_80A6BE0 -_080A6CF4: - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x9 - movs r3, 0x6 - bl sub_80A4DD8 - b _080A6D14 -_080A6D0A: - movs r0, 0x1 - strh r0, [r5, 0xA] - adds r0, r4, 0 - bl sub_80A6B64 -_080A6D14: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6C6C - - thumb_func_start sub_80A6D1C -sub_80A6D1C: @ 80A6D1C - push {r4,r5,lr} - bl HideMapNamePopUpWindow - ldr r0, _080A6D70 - ldr r1, _080A6D74 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080A6D84 - movs r1, 0x1 - bl sub_80A92D4 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080A6D80 - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_80594C0 - bl sub_80597F4 - ldr r1, _080A6D78 - ldrh r0, [r4] - strh r0, [r1] - ldrh r0, [r4] - bl itemid_get_overworld_function - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6D7C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0xC] - b _080A6D8A - .align 2, 0 -_080A6D70: .4byte gSaveBlock1 -_080A6D74: .4byte 0x00000496 -_080A6D78: .4byte word_203855E -_080A6D7C: .4byte gTasks -_080A6D80: - movs r0, 0 - strh r0, [r4] -_080A6D84: - ldr r0, _080A6D94 - bl ScriptContext1_SetupScript -_080A6D8A: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080A6D94: .4byte Event_NoRegisteredItem - thumb_func_end sub_80A6D1C - - thumb_func_start sub_80A6D98 -sub_80A6D98: @ 80A6D98 - push {lr} -_080A6D9A: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6DBC - ldr r0, _080A6DB4 - movs r1, 0 - bl CreateTask - ldr r1, _080A6DB8 - strb r0, [r1] - b _080A6DC8 - .align 2, 0 -_080A6DB4: .4byte sub_80A50C8 -_080A6DB8: .4byte gUnknown_02038563 -_080A6DBC: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6D9A -_080A6DC8: - pop {r0} - bx r0 - thumb_func_end sub_80A6D98 - - thumb_func_start sub_80A6DCC -sub_80A6DCC: @ 80A6DCC - push {lr} - ldr r1, _080A6DE4 - movs r0, 0 - strb r0, [r1] - ldr r1, _080A6DE8 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080A6DEC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6DE4: .4byte gUnknown_03000700 -_080A6DE8: .4byte gUnknown_03000701 -_080A6DEC: .4byte sub_80A6D98 - thumb_func_end sub_80A6DCC - - thumb_func_start sub_80A6DF0 -sub_80A6DF0: @ 80A6DF0 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r4, _080A6E4C - ldrb r0, [r4] - subs r0, 0x1 - lsls r0, 25 - lsrs r6, r0, 24 - movs r1, 0x9 - subs r1, r6 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x7 - movs r2, 0xD - movs r3, 0xC - bl MenuDrawTextWindow - movs r2, 0xA - subs r2, r6 - lsls r2, 24 - lsrs r2, 24 - adds r0, r6, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x8 - movs r3, 0x5 - bl sub_80A4008 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A6E58 - ldr r1, _080A6E50 - ldr r0, _080A6E54 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x8 - movs r2, 0xA - bl MenuPrint - b _080A6E80 - .align 2, 0 -_080A6E4C: .4byte gUnknown_02038564 -_080A6E50: .4byte gUnknown_083C1640 -_080A6E54: .4byte gUnknown_03000704 -_080A6E58: - ldr r5, _080A6EAC - ldr r4, _080A6EB0 - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r5 - ldr r0, [r0] - movs r1, 0x8 - movs r2, 0x8 - bl MenuPrint - ldr r0, [r4] - ldrb r0, [r0, 0x1] - lsls r0, 3 - adds r0, r5 - ldr r0, [r0] - movs r1, 0x8 - movs r2, 0xA - bl MenuPrint -_080A6E80: - movs r2, 0xA - subs r2, r6 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080A6EB4 - ldrb r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x8 - bl InitMenu - movs r0, 0x2 - bl sub_80A7528 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6EAC: .4byte gUnknown_083C1640 -_080A6EB0: .4byte gUnknown_03000704 -_080A6EB4: .4byte gUnknown_02038564 - thumb_func_end sub_80A6DF0 - - thumb_func_start sub_80A6EB8 -sub_80A6EB8: @ 80A6EB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r2, _080A6EE0 - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A6EE8 - ldr r4, _080A6EE4 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A6FC0 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A6F02 - .align 2, 0 -_080A6EE0: .4byte gMain -_080A6EE4: .4byte gUnknown_03000700 -_080A6EE8: - cmp r1, 0x80 - bne _080A6F14 - ldr r4, _080A6F0C - ldrb r0, [r4] - adds r0, 0x1 - ldr r1, _080A6F10 - ldrb r1, [r1] - cmp r0, r1 - bge _080A6FC0 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080A6F02: - bl MoveMenuCursor - strb r0, [r4] - b _080A6FC0 - .align 2, 0 -_080A6F0C: .4byte gUnknown_03000700 -_080A6F10: .4byte gUnknown_02038564 -_080A6F14: - ldrh r1, [r2, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A6F84 - ldr r1, _080A6F68 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r1, _080A6F6C - ldr r0, _080A6F70 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A6F74 - bl sub_80A4DA4 - ldr r1, _080A6F78 - ldr r0, _080A6F7C - ldrb r2, [r0] - ldr r0, _080A6F80 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A6FC0 - .align 2, 0 -_080A6F68: .4byte gTasks -_080A6F6C: .4byte gUnknown_03005D10 -_080A6F70: .4byte gUnknown_02038559 -_080A6F74: .4byte gBG1TilemapBuffer -_080A6F78: .4byte gUnknown_083C1640 -_080A6F7C: .4byte gUnknown_03000700 -_080A6F80: .4byte gUnknown_03000704 -_080A6F84: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6FC0 - ldr r1, _080A6FC8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _080A6FCC - ldr r0, _080A6FD0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A6FD4 - bl sub_80A4DA4 - ldr r0, _080A6FD8 - ldr r1, [r0, 0x2C] - adds r0, r5, 0 - bl _call_via_r1 -_080A6FC0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6FC8: .4byte gTasks -_080A6FCC: .4byte gUnknown_03005D10 -_080A6FD0: .4byte gUnknown_02038559 -_080A6FD4: .4byte gBG1TilemapBuffer -_080A6FD8: .4byte gUnknown_083C1640 - thumb_func_end sub_80A6EB8 - - thumb_func_start sub_80A6FDC -sub_80A6FDC: @ 80A6FDC - push {lr} - ldr r0, _080A6FF8 - ldrh r0, [r0] - bl itemid_get_usage - lsls r0, 24 - cmp r0, 0 - beq _080A7008 - ldr r1, _080A6FFC - ldr r0, _080A7000 - str r0, [r1] - ldr r1, _080A7004 - movs r0, 0x2 - b _080A7012 - .align 2, 0 -_080A6FF8: .4byte word_203855E -_080A6FFC: .4byte gUnknown_03000704 -_080A7000: .4byte gUnknown_083C1708 -_080A7004: .4byte gUnknown_02038564 -_080A7008: - ldr r1, _080A7018 - ldr r0, _080A701C - str r0, [r1] - ldr r1, _080A7020 - movs r0, 0x1 -_080A7012: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A7018: .4byte gUnknown_03000704 -_080A701C: .4byte gUnknown_083C170A -_080A7020: .4byte gUnknown_02038564 - thumb_func_end sub_80A6FDC - - thumb_func_start sub_80A7024 -sub_80A7024: @ 80A7024 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080A707C - movs r0, 0 - strb r0, [r1] - bl sub_80A6FDC - ldr r0, _080A7080 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldr r3, _080A7084 - ldr r2, _080A7088 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r4, 0x1C] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - ldr r0, _080A708C - bl sub_80A6DF0 - ldr r0, _080A7090 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A707C: .4byte gUnknown_03000700 -_080A7080: .4byte gTasks -_080A7084: .4byte gUnknown_03005D10 -_080A7088: .4byte gUnknown_02038559 -_080A708C: .4byte gBG1TilemapBuffer -_080A7090: .4byte sub_80A6EB8 - thumb_func_end sub_80A7024 - - thumb_func_start sub_80A7094 -sub_80A7094: @ 80A7094 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A70CC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A70D0 - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080A70D4 - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r3, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A70CC: .4byte gTasks -_080A70D0: .4byte sub_802E424 -_080A70D4: .4byte sub_80A5B00 - thumb_func_end sub_80A7094 - - thumb_func_start sub_80A70D8 -sub_80A70D8: @ 80A70D8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A7094 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A70D8 - - thumb_func_start ItemMenu_UseInBattle -ItemMenu_UseInBattle: @ 80A70F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A7120 - ldrh r0, [r4] - bl itemid_get_battle_function - cmp r0, 0 - beq _080A711A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - bl itemid_get_battle_function - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_080A711A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7120: .4byte word_203855E - thumb_func_end ItemMenu_UseInBattle - - thumb_func_start sub_80A7124 -sub_80A7124: @ 80A7124 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl sub_80A736C - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7124 - - thumb_func_start sub_80A7150 -sub_80A7150: @ 80A7150 - push {r4,r5,lr} - ldr r4, _080A7158 - ldr r5, _080A715C - b _080A716C - .align 2, 0 -_080A7158: .4byte gUnknown_02038563 -_080A715C: .4byte gTasks -_080A7160: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A7190 -_080A716C: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A7160 - ldr r0, _080A7198 - movs r1, 0 - bl CreateTask - strb r0, [r4] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x26] -_080A7190: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7198: .4byte sub_80A7230 - thumb_func_end sub_80A7150 - - thumb_func_start PrepareBagForWallyTutorial -PrepareBagForWallyTutorial: @ 80A719C - push {r4,r5,lr} - ldr r0, _080A7214 - movs r1, 0 - strb r1, [r0] - ldr r0, _080A7218 - strb r1, [r0] - movs r1, 0 - ldr r4, _080A721C - ldr r5, _080A7220 - ldr r3, _080A7224 - movs r2, 0 -_080A71B2: - lsls r0, r1, 2 - adds r0, r3 - strb r2, [r0] - strb r2, [r0, 0x1] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080A71B2 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy - movs r1, 0x80 - lsls r1, 5 - adds r0, r4, r1 - adds r4, r5, 0 - adds r4, 0xA0 - adds r1, r4, 0 - movs r2, 0x40 - bl memcpy - adds r0, r5, 0 - movs r1, 0x14 - bl sub_80A9684 - adds r0, r4, 0 - movs r1, 0x10 - bl sub_80A9684 - movs r0, 0xD - movs r1, 0x1 - bl sub_80A9424 - movs r0, 0x4 - movs r1, 0x1 - bl sub_80A9424 - ldr r1, _080A7228 - movs r0, 0x7 - strb r0, [r1] - ldr r0, _080A722C - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7214: .4byte gUnknown_03000700 -_080A7218: .4byte gUnknown_02038559 -_080A721C: .4byte 0x0201e000 -_080A7220: .4byte gSaveBlock1 + 0x560 -_080A7224: .4byte gUnknown_03005D10 -_080A7228: .4byte gUnknown_03000701 -_080A722C: .4byte sub_80A7150 - thumb_func_end PrepareBagForWallyTutorial - - thumb_func_start sub_80A7230 -sub_80A7230: @ 80A7230 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r0, _080A725C - mov r8, r0 - adds r7, r6, r0 - movs r0, 0x1E - ldrsh r1, [r7, r0] - cmp r1, 0xCC - beq _080A727A - cmp r1, 0xCC - bgt _080A7260 - cmp r1, 0x66 - beq _080A726A - b _080A7358 - .align 2, 0 -_080A725C: .4byte gUnknown_03004B28 -_080A7260: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _080A72F4 - b _080A7358 -_080A726A: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - movs r1, 0x2 - bl sub_80A4E8C - b _080A7358 -_080A727A: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - bl sub_80F98A4 - movs r0, 0x3 - bl sub_80F98A4 - ldr r1, _080A72D8 - movs r0, 0x4 - strh r0, [r1] - ldr r1, _080A72DC - ldr r0, _080A72E0 - str r0, [r1] - ldr r1, _080A72E4 - movs r0, 0x2 - strb r0, [r1] - mov r0, r8 - adds r4, r0, r6 - ldr r3, _080A72E8 - ldr r2, _080A72EC - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r4, 0x14] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - ldr r0, _080A72F0 - bl sub_80A6DF0 - b _080A7358 - .align 2, 0 -_080A72D8: .4byte word_203855E -_080A72DC: .4byte gUnknown_03000704 -_080A72E0: .4byte gUnknown_083C1708 -_080A72E4: .4byte gUnknown_02038564 -_080A72E8: .4byte gUnknown_03005D10 -_080A72EC: .4byte gUnknown_02038559 -_080A72F0: .4byte gBG1TilemapBuffer -_080A72F4: - movs r0, 0x5 - bl PlaySE - ldr r0, _080A7344 - bl sub_80A4DA4 - ldr r4, _080A7348 - ldr r5, _080A734C - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy - adds r4, 0xA0 - movs r0, 0x80 - lsls r0, 5 - adds r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x40 - bl memcpy - ldr r1, _080A7350 - lsrs r0, r1, 16 - strh r0, [r7, 0x10] - strh r1, [r7, 0x12] - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _080A7354 - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080A735E - .align 2, 0 -_080A7344: .4byte gBG1TilemapBuffer -_080A7348: .4byte gSaveBlock1 + 0x560 -_080A734C: .4byte 0x0201e000 -_080A7350: .4byte sub_802E424 -_080A7354: .4byte sub_80A5B00 -_080A7358: - ldrh r0, [r7, 0x1E] - adds r0, 0x1 - strh r0, [r7, 0x1E] -_080A735E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A7230 - - thumb_func_start sub_80A736C -sub_80A736C: @ 80A736C - push {lr} - sub sp, 0x8 - ldr r1, _080A73B0 - ldr r0, _080A73B4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0xE - movs r2, 0x2 - bl InitMenu - ldr r1, _080A73B8 - ldr r3, _080A73BC - movs r0, 0xF - str r0, [sp] - movs r0, 0x10 - movs r2, 0xC - bl sub_814AC58 - bl sub_80A73C0 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080A73B0: .4byte gUnknown_03005D10 -_080A73B4: .4byte gUnknown_02038559 -_080A73B8: .4byte 0x0000ffff -_080A73BC: .4byte 0x00002d9f - thumb_func_end sub_80A736C - - thumb_func_start sub_80A73C0 -sub_80A73C0: @ 80A73C0 - push {lr} - ldr r1, _080A73E8 - ldr r0, _080A73EC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 28 - movs r0, 0x80 - lsls r0, 21 - adds r1, r0 - lsrs r1, 24 - movs r0, 0x70 - bl sub_814AD7C - pop {r0} - bx r0 - .align 2, 0 -_080A73E8: .4byte gUnknown_03005D10 -_080A73EC: .4byte gUnknown_02038559 - thumb_func_end sub_80A73C0 - - thumb_func_start sub_80A73F0 -sub_80A73F0: @ 80A73F0 - push {lr} - bl sub_814ADC8 - pop {r0} - bx r0 - thumb_func_end sub_80A73F0 - - thumb_func_start sub_80A73FC -sub_80A73FC: @ 80A73FC - push {lr} - bl sub_8072DEC - bl sub_814AD44 - pop {r0} - bx r0 - thumb_func_end sub_80A73FC - - thumb_func_start sub_80A740C -sub_80A740C: @ 80A740C - push {lr} - bl sub_80A75E4 - bl sub_80A7768 - bl sub_80A7420 - pop {r0} - bx r0 - thumb_func_end sub_80A740C - - thumb_func_start sub_80A7420 -sub_80A7420: @ 80A7420 - push {r4,lr} - ldr r4, _080A7438 - ldrb r0, [r4] - cmp r0, 0x2 - beq _080A743C - cmp r0, 0x3 - beq _080A7430 - b _080A7512 -_080A7430: - movs r0, 0x2 - strb r0, [r4] - b _080A7512 - .align 2, 0 -_080A7438: .4byte gUnknown_0203853C -_080A743C: - ldrb r0, [r4, 0x2] - cmp r0, 0x9 - bhi _080A74FC - lsls r0, 2 - ldr r1, _080A744C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A744C: .4byte _080A7450 - .align 2, 0 -_080A7450: - .4byte _080A7478 - .4byte _080A74AC - .4byte _080A74B4 - .4byte _080A74BC - .4byte _080A74C4 - .4byte _080A74CC - .4byte _080A74D4 - .4byte _080A74DC - .4byte _080A74E4 - .4byte _080A74F4 -_080A7478: - ldr r1, _080A74A0 - ldr r0, _080A74A4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A74A8 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldrb r1, [r4, 0x1] - bl sub_80A49AC - b _080A74FC - .align 2, 0 -_080A74A0: .4byte gUnknown_03005D10 -_080A74A4: .4byte gUnknown_02038559 -_080A74A8: .4byte gUnknown_03005D24 -_080A74AC: - ldr r0, _080A74B0 - b _080A74E6 - .align 2, 0 -_080A74B0: .4byte gOtherText_SwitchWhichItem -_080A74B4: - ldr r0, _080A74B8 - b _080A74E6 - .align 2, 0 -_080A74B8: .4byte gOtherText_WhatWillYouDo2 -_080A74BC: - ldr r0, _080A74C0 - b _080A74E6 - .align 2, 0 -_080A74C0: .4byte gOtherText_HowManyToToss -_080A74C4: - ldr r0, _080A74C8 - b _080A74E6 - .align 2, 0 -_080A74C8: .4byte gOtherText_ThrewAwayItem -_080A74CC: - ldr r0, _080A74D0 - b _080A74E6 - .align 2, 0 -_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt -_080A74D4: - ldr r0, _080A74D8 - b _080A74E6 - .align 2, 0 -_080A74D8: .4byte gOtherText_HowManyToDeposit -_080A74DC: - ldr r0, _080A74E0 - b _080A74E6 - .align 2, 0 -_080A74E0: .4byte gOtherText_DepositedItems -_080A74E4: - ldr r0, _080A74F0 -_080A74E6: - ldrb r1, [r4, 0x1] - bl sub_80A4A98 - b _080A74FC - .align 2, 0 -_080A74F0: .4byte gOtherText_NoRoomForItems -_080A74F4: - ldr r0, _080A7518 - ldrb r1, [r4, 0x1] - bl sub_80A4A98 -_080A74FC: - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080A7512 - movs r0, 0 - strb r0, [r4] - bl sub_80A7918 -_080A7512: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7518: .4byte gOtherText_CantStoreSomeoneItem - thumb_func_end sub_80A7420 - - thumb_func_start sub_80A751C -sub_80A751C: @ 80A751C - ldr r1, _080A7524 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7524: .4byte gUnknown_0203853C - thumb_func_end sub_80A751C - - thumb_func_start sub_80A7528 -sub_80A7528: @ 80A7528 - push {r4,lr} - ldr r4, _080A7544 - movs r1, 0 - strb r1, [r4, 0x1] - strb r0, [r4, 0x2] - bl sub_80A78F4 - cmp r0, 0x1 - beq _080A755E - cmp r0, 0x1 - bgt _080A7548 - cmp r0, 0 - beq _080A754E - b _080A7566 - .align 2, 0 -_080A7544: .4byte gUnknown_0203853C -_080A7548: - cmp r0, 0x2 - beq _080A7562 - b _080A7566 -_080A754E: - movs r0, 0x2 - strb r0, [r4] -_080A7552: - bl sub_80A7420 - ldrb r0, [r4] - cmp r0, 0 - bne _080A7552 - b _080A7566 -_080A755E: - movs r0, 0x3 - b _080A7564 -_080A7562: - movs r0, 0x1 -_080A7564: - strb r0, [r4] -_080A7566: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7528 - - thumb_func_start sub_80A756C -sub_80A756C: @ 80A756C - push {r4,lr} - ldr r4, _080A758C - ldrb r0, [r4] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A7580 - bl sub_80A7918 -_080A7580: - movs r0, 0 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A758C: .4byte gUnknown_0203853C - thumb_func_end sub_80A756C - - thumb_func_start sub_80A7590 -sub_80A7590: @ 80A7590 - push {lr} - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - bl sub_80A756C - pop {r0} - bx r0 - thumb_func_end sub_80A7590 - - thumb_func_start sub_80A75A8 -sub_80A75A8: @ 80A75A8 - push {lr} - ldr r1, _080A75C0 - ldrb r0, [r1] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A75BC - movs r0, 0x1 - strb r0, [r1] -_080A75BC: - pop {r0} - bx r0 - .align 2, 0 -_080A75C0: .4byte gUnknown_0203853C - thumb_func_end sub_80A75A8 - - thumb_func_start sub_80A75C4 -sub_80A75C4: @ 80A75C4 - push {lr} - ldr r1, _080A75D8 - ldrb r0, [r1] - cmp r0, 0 - beq _080A75DC - cmp r0, 0x1 - bne _080A75E0 - movs r0, 0x3 - strb r0, [r1] - b _080A75E0 - .align 2, 0 -_080A75D8: .4byte gUnknown_0203853C -_080A75DC: - bl sub_80A7918 -_080A75E0: - pop {r0} - bx r0 - thumb_func_end sub_80A75C4 - - thumb_func_start sub_80A75E4 -sub_80A75E4: @ 80A75E4 - push {r4,r5,lr} - ldr r4, _080A7628 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7622 - bl sub_80A7988 - adds r5, r0, 0 - cmp r5, 0 - bne _080A7622 - ldr r0, _080A762C - ldrb r0, [r0] - ldrb r2, [r4, 0x1] - adds r1, r2, 0 - movs r3, 0x1 - bl sub_80A47E8 - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x2] - movs r1, 0x7 - cmp r0, 0 - beq _080A7616 - movs r1, 0x5 -_080A7616: - ldrb r0, [r4, 0x1] - cmp r1, r0 - bge _080A7622 - strb r5, [r4] - bl sub_80A78E8 -_080A7622: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7628: .4byte gUnknown_02038540 -_080A762C: .4byte gUnknown_02038563 - thumb_func_end sub_80A75E4 - - thumb_func_start sub_80A7630 -sub_80A7630: @ 80A7630 - ldr r1, _080A7638 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7638: .4byte gUnknown_02038540 - thumb_func_end sub_80A7630 - - thumb_func_start sub_80A763C -sub_80A763C: @ 80A763C - push {r4,lr} - ldr r4, _080A7650 - bl sub_80A78C4 - adds r1, r0, 0 - cmp r1, 0 - beq _080A7654 - cmp r1, 0x1 - beq _080A7668 - b _080A7670 - .align 2, 0 -_080A7650: .4byte gUnknown_02038540 -_080A7654: - ldr r0, _080A7664 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0x7 - bl sub_80A48E8 - b _080A7670 - .align 2, 0 -_080A7664: .4byte gUnknown_02038563 -_080A7668: - movs r0, 0 - strb r1, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] -_080A7670: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A763C - - thumb_func_start sub_80A7678 -sub_80A7678: @ 80A7678 - push {r4,lr} - ldr r4, _080A7690 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7686 - bl sub_80A78E8 -_080A7686: - movs r0, 0 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7690: .4byte gUnknown_02038540 - thumb_func_end sub_80A7678 - - thumb_func_start sub_80A7694 -sub_80A7694: @ 80A7694 - ldr r1, _080A769C - movs r0, 0x1 - strb r0, [r1, 0x2] - bx lr - .align 2, 0 -_080A769C: .4byte gUnknown_02038540 - thumb_func_end sub_80A7694 - - thumb_func_start sub_80A76A0 -sub_80A76A0: @ 80A76A0 - push {lr} - movs r0, 0xE - movs r1, 0x2 - movs r2, 0x1D - movs r3, 0x12 - bl MenuZeroFillWindowRect - bl sub_80A7678 - pop {r0} - bx r0 - thumb_func_end sub_80A76A0 - - thumb_func_start sub_80A76B8 -sub_80A76B8: @ 80A76B8 - push {lr} - ldr r0, _080A76CC - movs r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _080A76C6 - movs r1, 0x1 -_080A76C6: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A76CC: .4byte gUnknown_02038540 - thumb_func_end sub_80A76B8 - - thumb_func_start sub_80A76D0 -sub_80A76D0: @ 80A76D0 - push {lr} - ldr r0, _080A76E4 - movs r1, 0 - ldrb r0, [r0, 0x1] - cmp r0, 0x5 - bls _080A76DE - movs r1, 0x1 -_080A76DE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A76E4: .4byte gUnknown_02038540 - thumb_func_end sub_80A76D0 - - thumb_func_start sub_80A76E8 -sub_80A76E8: @ 80A76E8 - push {r4,lr} - ldr r4, _080A7708 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7702 - ldrb r0, [r4, 0x1] - ldr r1, [r4, 0x4] - ldr r2, [r4, 0x8] - ldrh r3, [r4, 0x2] - bl DisplayItemMessageOnField - movs r0, 0 - strb r0, [r4] -_080A7702: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7708: .4byte gUnknown_02038544 - thumb_func_end sub_80A76E8 - - thumb_func_start sub_80A770C -sub_80A770C: @ 80A770C - ldr r1, _080A7714 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7714: .4byte gUnknown_02038544 - thumb_func_end sub_80A770C - - thumb_func_start DisplayCannotUseItemMessage -DisplayCannotUseItemMessage: @ 80A7718 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r8, r2 - adds r6, r3, 0 - ldr r4, _080A7738 - bl sub_80A7924 - cmp r0, 0 - beq _080A773C - cmp r0, 0x2 - beq _080A774E - b _080A775C - .align 2, 0 -_080A7738: .4byte gUnknown_02038544 -_080A773C: - lsls r0, r5, 24 - lsrs r0, 24 - lsls r3, r6, 16 - lsrs r3, 16 - adds r1, r7, 0 - mov r2, r8 - bl DisplayItemMessageOnField - b _080A775C -_080A774E: - movs r0, 0x1 - strb r0, [r4] - strb r5, [r4, 0x1] - str r7, [r4, 0x4] - mov r0, r8 - str r0, [r4, 0x8] - strh r6, [r4, 0x2] -_080A775C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DisplayCannotUseItemMessage - - thumb_func_start sub_80A7768 -sub_80A7768: @ 80A7768 - push {r4,lr} - ldr r4, _080A77A8 - ldrb r0, [r4] - cmp r0, 0x2 - bne _080A7814 - ldrb r1, [r4, 0x1] - cmp r1, 0 - beq _080A780E - ldrb r0, [r4, 0x2] - cmp r0, 0x1 - beq _080A77B4 - ldr r2, _080A77AC - ldr r0, _080A77B0 - ldr r0, [r0] - adds r0, r1, r0 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r2 - ldr r0, [r0] - subs r1, 0x1 - lsls r1, 1 - adds r1, 0x1 - ldrb r2, [r4, 0x3] - adds r2, r1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x7 - bl MenuPrint - b _080A77FC - .align 2, 0 -_080A77A8: .4byte gUnknown_02038550 -_080A77AC: .4byte gUnknown_083C1640 -_080A77B0: .4byte gUnknown_03000704 -_080A77B4: - cmp r1, 0x1 - bne _080A77C8 - ldr r0, _080A77C4 - ldrh r0, [r0] - bl sub_80A4B90 - adds r3, r0, 0 - b _080A77DC - .align 2, 0 -_080A77C4: .4byte word_203855E -_080A77C8: - ldr r2, _080A781C - ldrb r0, [r4, 0x1] - ldr r1, _080A7820 - ldr r1, [r1] - adds r0, r1 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r2 - ldr r3, [r0] -_080A77DC: - ldrb r2, [r4, 0x1] - subs r2, 0x1 - asrs r0, r2, 1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - ands r2, r0 - lsls r2, 1 - adds r2, 0x8 - adds r0, r3, 0 - bl MenuPrint -_080A77FC: - ldr r1, _080A7824 - ldrb r0, [r4, 0x1] - ldrb r1, [r1] - cmp r0, r1 - bne _080A780E - movs r0, 0 - strb r0, [r4] - bl sub_80A7970 -_080A780E: - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] -_080A7814: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A781C: .4byte gUnknown_083C1640 -_080A7820: .4byte gUnknown_03000704 -_080A7824: .4byte gUnknown_02038564 - thumb_func_end sub_80A7768 - - thumb_func_start sub_80A7828 -sub_80A7828: @ 80A7828 - ldr r1, _080A7830 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7830: .4byte gUnknown_02038550 - thumb_func_end sub_80A7828 - - thumb_func_start sub_80A7834 -sub_80A7834: @ 80A7834 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, _080A784C - bl sub_80A7958 - cmp r0, 0x1 - beq _080A7850 - cmp r0, 0x2 - beq _080A7856 - b _080A7862 - .align 2, 0 -_080A784C: .4byte gUnknown_02038550 -_080A7850: - movs r1, 0 - movs r0, 0x2 - b _080A785A -_080A7856: - movs r1, 0 - movs r0, 0x1 -_080A785A: - strb r0, [r4] - strb r1, [r4, 0x1] - strb r5, [r4, 0x2] - strb r6, [r4, 0x3] -_080A7862: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A7834 - - thumb_func_start sub_80A7868 -sub_80A7868: @ 80A7868 - push {lr} - ldr r1, _080A787C - ldrb r0, [r1] - cmp r0, 0x2 - bne _080A7876 - movs r0, 0x1 - strb r0, [r1] -_080A7876: - pop {r0} - bx r0 - .align 2, 0 -_080A787C: .4byte gUnknown_02038550 - thumb_func_end sub_80A7868 - - thumb_func_start sub_80A7880 -sub_80A7880: @ 80A7880 - push {lr} - ldr r1, _080A7894 - ldrb r0, [r1] - cmp r0, 0 - beq _080A7898 - cmp r0, 0x1 - bne _080A789C - movs r0, 0x2 - strb r0, [r1] - b _080A789C - .align 2, 0 -_080A7894: .4byte gUnknown_02038550 -_080A7898: - bl sub_80A7970 -_080A789C: - pop {r0} - bx r0 - thumb_func_end sub_80A7880 - - thumb_func_start rfu_lacks_rfufunc -rfu_lacks_rfufunc: @ 80A78A0 - push {lr} - ldr r0, _080A78B4 - movs r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _080A78AE - movs r1, 0x1 -_080A78AE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A78B4: .4byte gUnknown_02038550 - thumb_func_end rfu_lacks_rfufunc - - thumb_func_start sub_80A78B8 -sub_80A78B8: @ 80A78B8 - ldr r1, _080A78C0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A78C0: .4byte gUnknown_02038554 - thumb_func_end sub_80A78B8 - - thumb_func_start sub_80A78C4 -sub_80A78C4: @ 80A78C4 - push {lr} - ldr r0, _080A78DC - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A78E0 - bl sub_80A7868 - bl sub_80A75A8 - movs r0, 0x1 - b _080A78E2 - .align 2, 0 -_080A78DC: .4byte gLinkOpen -_080A78E0: - movs r0, 0 -_080A78E2: - pop {r1} - bx r1 - thumb_func_end sub_80A78C4 - - thumb_func_start sub_80A78E8 -sub_80A78E8: @ 80A78E8 - push {lr} - bl sub_80A7880 - pop {r0} - bx r0 - thumb_func_end sub_80A78E8 - - thumb_func_start sub_80A78F4 -sub_80A78F4: @ 80A78F4 - push {lr} - ldr r0, _080A790C - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A7910 - bl sub_80A76B8 - movs r1, 0x2 - cmp r0, 0 - beq _080A7912 - movs r1, 0x1 - b _080A7912 - .align 2, 0 -_080A790C: .4byte gLinkOpen -_080A7910: - movs r1, 0 -_080A7912: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_80A78F4 - - thumb_func_start sub_80A7918 -sub_80A7918: @ 80A7918 - push {lr} - bl sub_80A76E8 - pop {r0} - bx r0 - thumb_func_end sub_80A7918 - - thumb_func_start sub_80A7924 -sub_80A7924: @ 80A7924 - push {lr} - ldr r0, _080A7948 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A7942 - bl sub_80A76B8 - cmp r0, 0 - bne _080A7942 - bl sub_80A76D0 - cmp r0, 0 - beq _080A794C - bl sub_80A7678 -_080A7942: - movs r0, 0 - b _080A7952 - .align 2, 0 -_080A7948: .4byte gLinkOpen -_080A794C: - bl sub_80A7694 - movs r0, 0x2 -_080A7952: - pop {r1} - bx r1 - thumb_func_end sub_80A7924 - - thumb_func_start sub_80A7958 -sub_80A7958: @ 80A7958 - push {lr} - bl sub_80A76B8 - cmp r0, 0 - beq _080A796A - bl sub_80A75A8 - movs r0, 0x1 - b _080A796C -_080A796A: - movs r0, 0x2 -_080A796C: - pop {r1} - bx r1 - thumb_func_end sub_80A7958 - - thumb_func_start sub_80A7970 -sub_80A7970: @ 80A7970 - push {lr} - bl sub_80A75C4 - pop {r0} - bx r0 - thumb_func_end sub_80A7970 - - thumb_func_start sub_80A797C -sub_80A797C: @ 80A797C - ldr r1, _080A7984 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7984: .4byte gUnknown_02038554 - thumb_func_end sub_80A797C - - thumb_func_start sub_80A7988 -sub_80A7988: @ 80A7988 - ldr r1, _080A7994 - ldrb r0, [r1] - movs r2, 0 - strb r2, [r1] - bx lr - .align 2, 0 -_080A7994: .4byte gUnknown_02038554 - thumb_func_end sub_80A7988 - - thumb_func_start sub_80A7998 -sub_80A7998: @ 80A7998 - adds r2, r0, 0 - adds r2, 0x2A - movs r1, 0 - strb r1, [r2] - strh r1, [r0, 0x2E] - strh r1, [r0, 0x30] - strh r1, [r0, 0x32] - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - ldr r1, _080A79B0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A79B0: .4byte sub_80A79B4 - thumb_func_end sub_80A7998 - - thumb_func_start sub_80A79B4 -sub_80A79B4: @ 80A79B4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A79E4 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080A79CC - adds r0, r4, 0 - bl sub_80A79EC -_080A79CC: - ldr r0, _080A79E8 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080A79DE - adds r0, r4, 0 - bl sub_80A7A94 -_080A79DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A79E4: .4byte gUnknown_0203855B -_080A79E8: .4byte gUnknown_0203855C - thumb_func_end sub_80A79B4 - - thumb_func_start sub_80A79EC -sub_80A79EC: @ 80A79EC - push {r4-r6,lr} - adds r2, r0, 0 - movs r0, 0x34 - ldrsh r4, [r2, r0] - cmp r4, 0 - beq _080A79FE - cmp r4, 0x1 - beq _080A7A54 - b _080A7A8A -_080A79FE: - ldr r5, _080A7A28 - ldrb r6, [r5] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x6 - beq _080A7A2C - adds r3, r2, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x2A - strb r6, [r0] - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 - strb r0, [r5] - b _080A7A8A - .align 2, 0 -_080A7A28: .4byte gUnknown_0203855B -_080A7A2C: - adds r3, r2, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x2A - strb r4, [r0] - ldrh r0, [r2, 0x22] - subs r0, 0x4 - strh r0, [r2, 0x22] - movs r0, 0x4 - strh r0, [r2, 0x2E] - movs r0, 0x1 - strh r0, [r2, 0x34] - adds r0, r2, 0 - bl sub_80A7AE4 - b _080A7A8A -_080A7A54: - ldrh r4, [r2, 0x2E] - movs r0, 0x2E - ldrsh r3, [r2, r0] - cmp r3, 0 - beq _080A7A7C - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080A7A72 - ldrh r0, [r2, 0x22] - adds r0, 0x1 - strh r0, [r2, 0x22] - subs r0, r4, 0x1 - strh r0, [r2, 0x2E] -_080A7A72: - adds r0, r1, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r2, 0x30] - b _080A7A8A -_080A7A7C: - ldr r1, _080A7A90 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - strb r0, [r1] - strh r3, [r2, 0x30] - strh r3, [r2, 0x34] -_080A7A8A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A7A90: .4byte gUnknown_0203855B - thumb_func_end sub_80A79EC - - thumb_func_start sub_80A7A94 -sub_80A7A94: @ 80A7A94 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A7AA6 - cmp r0, 0x1 - beq _080A7AC8 - b _080A7ADC -_080A7AA6: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080A7AC4 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - movs r0, 0x1 - strh r0, [r4, 0x36] - b _080A7ADC - .align 2, 0 -_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4 -_080A7AC8: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080A7ADC - adds r0, r4, 0 - bl sub_80A7AE4 -_080A7ADC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7A94 - - thumb_func_start sub_80A7AE4 -sub_80A7AE4: @ 80A7AE4 - push {lr} - ldr r2, _080A7B0C - movs r1, 0 - strb r1, [r2] - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x1] - movs r1, 0 - strh r1, [r0, 0x32] - strh r1, [r0, 0x36] - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - pop {r0} - bx r0 - .align 2, 0 -_080A7B0C: .4byte gUnknown_0203855C - thumb_func_end sub_80A7AE4 - - thumb_func_start sub_80A7B10 -sub_80A7B10: @ 80A7B10 - push {lr} - ldr r0, _080A7B24 - movs r1, 0x3A - movs r2, 0x28 - movs r3, 0 - bl CreateSprite - pop {r0} - bx r0 - .align 2, 0 -_080A7B24: .4byte gSpriteTemplate_83C1CE0 - thumb_func_end sub_80A7B10 - - thumb_func_start sub_80A7B28 -sub_80A7B28: @ 80A7B28 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - strh r0, [r4, 0x34] - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80A7B6C - ldr r0, _080A7B44 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7B44: .4byte sub_80A7B6C - thumb_func_end sub_80A7B28 - - thumb_func_start sub_80A7B48 -sub_80A7B48: @ 80A7B48 - ldrh r2, [r0, 0x38] - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - movs r3, 0x1 - ands r1, r3 - subs r2, r1 - adds r1, r0, 0 - adds r1, 0x28 - strb r2, [r1] - ldrh r2, [r0, 0x3A] - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - ands r1, r3 - subs r2, r1 - adds r0, 0x29 - strb r2, [r0] - bx lr - thumb_func_end sub_80A7B48 - - thumb_func_start sub_80A7B6C -sub_80A7B6C: @ 80A7B6C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080A7C16 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A7B86 - cmp r0, 0x1 - beq _080A7BD4 - b _080A7C16 -_080A7B86: - ldrb r0, [r4, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r4, 0x1] - cmp r2, 0x1 - bne _080A7BA0 - ldr r0, _080A7B9C - b _080A7BA2 - .align 2, 0 -_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20 -_080A7BA0: - ldr r0, _080A7BD0 -_080A7BA2: - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - movs r0, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x3A] - adds r0, r4, 0 - bl sub_80A7B48 - b _080A7C16 - .align 2, 0 -_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4 -_080A7BD4: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80A7B48 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _080A7C16 - strh r5, [r4, 0x2E] - strh r5, [r4, 0x34] - ldrh r1, [r4, 0x38] - adds r0, r4, 0 - adds r0, 0x28 - strb r1, [r0] - ldrh r0, [r4, 0x3A] - adds r1, r4, 0 - adds r1, 0x29 - strb r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080A7C1C - str r0, [r4, 0x1C] -_080A7C16: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7C1C: .4byte SpriteCallbackDummy - thumb_func_end sub_80A7B6C - - thumb_func_start sub_80A7C20 -sub_80A7C20: @ 80A7C20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A7C54 - bl LoadSpritePalette - ldr r0, _080A7C58 - movs r1, 0x10 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - ldr r1, _080A7C5C - strb r0, [r1] - ldr r2, _080A7C60 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x3C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7C54: .4byte gUnknown_083C1D30 -_080A7C58: .4byte gSpriteTemplate_83C1D38 -_080A7C5C: .4byte gUnknown_02038568 -_080A7C60: .4byte gSprites - thumb_func_end sub_80A7C20 - - thumb_func_start sub_80A7C64 -sub_80A7C64: @ 80A7C64 - push {r4,r5,lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - ldr r5, _080A7C98 - ldr r4, _080A7C9C - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7C98: .4byte gSprites -_080A7C9C: .4byte gUnknown_02038568 - thumb_func_end sub_80A7C64 - - thumb_func_start sub_80A7CA0 -sub_80A7CA0: @ 80A7CA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - movs r2, 0x80 - lsls r2, 4 - adds r0, r4, 0 - movs r1, 0 - bl memset - movs r0, 0x80 - lsls r0, 1 - adds r4, r0 - movs r7, 0 -_080A7CBE: - adds r4, 0x20 - movs r5, 0 - adds r1, r7, 0x1 - mov r8, r1 -_080A7CC6: - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x20 - bl memcpy - adds r4, 0x20 - adds r6, 0x20 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080A7CC6 - cmp r7, 0x5 - beq _080A7CE4 - adds r4, 0x20 -_080A7CE4: - mov r1, r8 - lsls r0, r1, 24 - lsrs r7, r0, 24 - cmp r7, 0x5 - bls _080A7CBE - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A7CA0 - - thumb_func_start sub_80A7CF8 -sub_80A7CF8: @ 80A7CF8 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2A - bne _080A7D44 - bl sub_80B4940 - cmp r0, 0x1 - bne _080A7D44 - ldr r4, _080A7D34 - ldr r1, _080A7D38 - adds r0, r4, 0 - bl sub_80A7CA0 - movs r0, 0x90 - lsls r0, 3 - adds r4, r0 - str r4, [sp] - ldr r1, _080A7D3C - ldr r0, [sp, 0x4] - ands r0, r1 - ldr r1, _080A7D40 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - b _080A7D72 - .align 2, 0 -_080A7D34: .4byte gSaveBlock1 + 0x317C -_080A7D38: .4byte 0x02000000 -_080A7D3C: .4byte 0xffff0000 -_080A7D40: .4byte 0x00007544 -_080A7D44: - ldr r5, _080A7D7C - lsls r4, 3 - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp] - mov r1, sp - ldr r0, _080A7D80 - strh r0, [r1, 0x4] - mov r0, sp - bl LoadCompressedObjectPalette - adds r4, r5 - ldr r0, [r4] - ldr r4, _080A7D84 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _080A7D88 - adds r1, r4, r0 - adds r0, r4, 0 - bl sub_80A7CA0 -_080A7D72: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7D7C: .4byte gBerryGraphicsTable -_080A7D80: .4byte 0x00007544 -_080A7D84: .4byte 0x02001000 -_080A7D88: .4byte 0xfffff000 - thumb_func_end sub_80A7CF8 - - thumb_func_start sub_80A7D8C -sub_80A7D8C: @ 80A7D8C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - bl sub_80A7CF8 - ldr r0, _080A7DC0 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080A7DC0: .4byte gSpriteTemplate_83C1D74 - thumb_func_end sub_80A7D8C - - thumb_func_start sub_80A7DC4 -sub_80A7DC4: @ 80A7DC4 - ldr r1, _080A7DD0 - ldrh r1, [r1] - negs r1, r1 - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_080A7DD0: .4byte gUnknown_030041B4 - thumb_func_end sub_80A7DC4 - - thumb_func_start sub_80A7DD4 -sub_80A7DD4: @ 80A7DD4 - push {lr} - ldr r0, _080A7DE8 - bl FreeSpritePaletteByTag - movs r0, 0x8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080A7DE8: .4byte 0x00007544 - thumb_func_end sub_80A7DD4 - - thumb_func_start sub_80A7DEC -sub_80A7DEC: @ 80A7DEC - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080A7E50 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl sub_80A7CF8 - ldr r0, _080A7E54 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - adds r4, r1, 0 - mov r0, r8 - cmp r0, 0x1 - bne _080A7E42 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A7E58 - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080A7E42: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080A7E50: .4byte 0x00007544 -_080A7E54: .4byte gSpriteTemplate_83C1E04 -_080A7E58: .4byte gSprites - thumb_func_end sub_80A7DEC - - thumb_func_start sub_80A7E5C -sub_80A7E5C: @ 80A7E5C - push {lr} - adds r1, r0, 0 - ldr r0, _080A7E78 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x63 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080A7E78: .4byte gSpriteTemplate_83C1F98 - thumb_func_end sub_80A7E5C - - thumb_func_start sub_80A7E7C -sub_80A7E7C: @ 80A7E7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A7E9C - ldrb r0, [r4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080A7EA0 - adds r0, r5, 0 - bl move_anim_task_del - b _080A7EDC - .align 2, 0 -_080A7E9C: .4byte gUnknown_03004B00 -_080A7EA0: - ldr r1, _080A7EE4 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x26] - ldr r1, _080A7EE8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x8] - ldrh r1, [r4, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x12] - ldr r1, _080A7EEC - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_080A7EDC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7EE4: .4byte gSprites -_080A7EE8: .4byte gTasks -_080A7EEC: .4byte sub_80A7EF0 - thumb_func_end sub_80A7E7C - - thumb_func_start sub_80A7EF0 -sub_80A7EF0: @ 80A7EF0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A7F2C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xE] - movs r2, 0xE - ldrsh r5, [r3, r2] - adds r7, r1, 0 - cmp r5, 0 - bne _080A7F96 - ldr r2, _080A7F30 - movs r6, 0x8 - ldrsh r1, [r3, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r6, 0x24 - ldrsh r0, [r1, r6] - adds r6, r2, 0 - cmp r0, 0 - bne _080A7F34 - ldrh r0, [r3, 0x10] - strh r0, [r1, 0x24] - b _080A7F36 - .align 2, 0 -_080A7F2C: .4byte gTasks -_080A7F30: .4byte gSprites -_080A7F34: - strh r5, [r1, 0x24] -_080A7F36: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r7 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - movs r5, 0x26 - ldrsh r0, [r1, r5] - cmp r0, 0 - bne _080A7F56 - ldrh r0, [r3, 0x12] - b _080A7F58 -_080A7F56: - movs r0, 0 -_080A7F58: - strh r0, [r1, 0x26] - adds r0, r2, r4 - lsls r0, 3 - adds r2, r0, r7 - ldrh r0, [r2, 0xC] - strh r0, [r2, 0xE] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080A7F9A - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x24] - movs r5, 0x8 - ldrsh r1, [r2, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x26] - adds r0, r4, 0 - bl move_anim_task_del - b _080A7F9A -_080A7F96: - subs r0, 0x1 - strh r0, [r3, 0xE] -_080A7F9A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A7EF0 - - thumb_func_start sub_80A7FA0 -sub_80A7FA0: @ 80A7FA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _080A7FC8 - ldrh r0, [r2] - movs r3, 0 - ldrsh r1, [r2, r3] - cmp r1, 0x3 - bgt _080A7FCC - lsls r0, 24 - lsrs r0, 24 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _080A8022 - b _080A8026 - .align 2, 0 -_080A7FC8: .4byte gUnknown_03004B00 -_080A7FCC: - cmp r1, 0x8 - beq _080A8018 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x5 - beq _080A7FEC - cmp r0, 0x5 - bgt _080A7FE2 - cmp r0, 0x4 - beq _080A7FE8 - b _080A7FF4 -_080A7FE2: - cmp r0, 0x6 - beq _080A7FF0 - b _080A7FF4 -_080A7FE8: - movs r0, 0 - b _080A7FF6 -_080A7FEC: - movs r0, 0x2 - b _080A7FF6 -_080A7FF0: - movs r0, 0x1 - b _080A7FF6 -_080A7FF4: - movs r0, 0x3 -_080A7FF6: - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080A800C - movs r6, 0x1 -_080A800C: - ldr r0, _080A8014 - adds r0, r4, r0 - b _080A8020 - .align 2, 0 -_080A8014: .4byte gUnknown_02024BE0 -_080A8018: - ldr r1, _080A8030 - ldr r0, _080A8034 - ldrb r0, [r0] - adds r0, r1 -_080A8020: - ldrb r3, [r0] -_080A8022: - cmp r6, 0 - beq _080A8038 -_080A8026: - adds r0, r5, 0 - bl move_anim_task_del - b _080A8076 - .align 2, 0 -_080A8030: .4byte gUnknown_02024BE0 -_080A8034: .4byte gUnknown_0202F7C8 -_080A8038: - ldr r1, _080A807C - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r2, _080A8080 - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x26] - ldr r1, _080A8084 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x8] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x12] - ldr r1, _080A8088 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_080A8076: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A807C: .4byte gSprites -_080A8080: .4byte gUnknown_03004B00 -_080A8084: .4byte gTasks -_080A8088: .4byte sub_80A808C - thumb_func_end sub_80A7FA0 - - thumb_func_start sub_80A808C -sub_80A808C: @ 80A808C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A80D0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _080A8144 - ldr r2, _080A80D4 - movs r7, 0x8 - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrh r5, [r3, 0x10] - movs r7, 0x10 - ldrsh r0, [r3, r7] - adds r7, r2, 0 - cmp r1, r0 - bne _080A80D8 - negs r0, r5 - strh r0, [r4, 0x24] - b _080A80DA - .align 2, 0 -_080A80D0: .4byte gTasks -_080A80D4: .4byte gSprites -_080A80D8: - strh r5, [r4, 0x24] -_080A80DA: - lsls r3, r6, 2 - adds r1, r3, r6 - lsls r1, 3 - add r1, r12 - movs r0, 0x8 - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r7 - movs r0, 0x26 - ldrsh r2, [r4, r0] - mov r8, r2 - ldrh r5, [r1, 0x12] - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r8, r0 - bne _080A8104 - negs r0, r5 - strh r0, [r4, 0x26] - b _080A8106 -_080A8104: - strh r5, [r4, 0x26] -_080A8106: - adds r0, r3, r6 - lsls r0, 3 - mov r4, r12 - adds r3, r0, r4 - ldrh r0, [r3, 0xC] - strh r0, [r3, 0xE] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _080A8148 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x24] - movs r4, 0x8 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - adds r0, r6, 0 - bl move_anim_task_del - b _080A8148 -_080A8144: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_080A8148: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A808C - - thumb_func_start sub_80A8154 -sub_80A8154: @ 80A8154 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A8174 - ldrb r0, [r4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _080A8178 - adds r0, r5, 0 - bl move_anim_task_del - b _080A81C6 - .align 2, 0 -_080A8174: .4byte gUnknown_03004B00 -_080A8178: - ldr r0, _080A81CC - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x2] - ldrh r2, [r1, 0x24] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x4] - ldrh r6, [r1, 0x26] - adds r0, r6 - strh r0, [r1, 0x26] - ldr r0, _080A81D0 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - strh r3, [r1, 0x8] - strh r2, [r1, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - ldrh r0, [r4, 0x8] - strh r0, [r1, 0x10] - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 1 - strh r0, [r1, 0x12] - movs r6, 0x4 - ldrsh r0, [r4, r6] - lsls r0, 1 - strh r0, [r1, 0x14] - ldr r2, _080A81D4 - str r2, [r1] - adds r0, r5, 0 - bl _call_via_r2 -_080A81C6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A81CC: .4byte gSprites -_080A81D0: .4byte gTasks -_080A81D4: .4byte sub_80A81D8 - thumb_func_end sub_80A8154 - - thumb_func_start sub_80A81D8 -sub_80A81D8: @ 80A81D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A8230 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - adds r6, r1, 0 - cmp r0, 0 - beq _080A81F6 - b _080A8308 -_080A81F6: - ldrh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8238 - ldr r2, _080A8234 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r3, [r0, 0x24] - adds r1, r3 - strh r1, [r0, 0x24] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x14] - ldrh r3, [r0, 0x26] - adds r1, r3 - strh r1, [r0, 0x26] - adds r3, r2, 0 - b _080A8262 - .align 2, 0 -_080A8230: .4byte gTasks -_080A8234: .4byte gSprites -_080A8238: - ldr r3, _080A82C4 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - ldrh r2, [r4, 0x12] - subs r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - ldrh r2, [r4, 0x14] - subs r1, r2 - strh r1, [r0, 0x26] -_080A8262: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r0, [r4, 0x10] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0xA] - adds r2, r0, 0x1 - strh r2, [r4, 0xA] - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0xC - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080A830C - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080A82C8 - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x12 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r6, [r1, 0x24] - adds r0, r6 - strh r0, [r1, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x14 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r3, [r1, 0x26] - adds r0, r3 - strh r0, [r1, 0x26] - b _080A8300 - .align 2, 0 -_080A82C4: .4byte gSprites -_080A82C8: - movs r6, 0x8 - ldrsh r0, [r4, r6] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r3, 0x14 - ldrsh r1, [r4, r3] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x26] - subs r0, r1 - strh r0, [r2, 0x26] -_080A8300: - adds r0, r5, 0 - bl move_anim_task_del - b _080A830C -_080A8308: - subs r0, r2, 0x1 - strh r0, [r4, 0xE] -_080A830C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A81D8 - - thumb_func_start sub_80A8314 -sub_80A8314: @ 80A8314 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080A8364 - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8368 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r5, 0x2] - strh r2, [r1, 0x24] - ldr r2, _080A836C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r1, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r1, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x10] - ldr r2, _080A8370 - str r2, [r1] - adds r0, r4, 0 - bl _call_via_r2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8364: .4byte gUnknown_03004B00 -_080A8368: .4byte gSprites -_080A836C: .4byte gTasks -_080A8370: .4byte sub_80A8374 - thumb_func_end sub_80A8314 - - thumb_func_start sub_80A8374 -sub_80A8374: @ 80A8374 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080A8400 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r2 - ldrb r5, [r3, 0x8] - ldrh r4, [r3, 0xA] - ldrh r1, [r3, 0x18] - adds r0, r1, 0x1 - strh r0, [r3, 0x18] - movs r7, 0xC - ldrsh r0, [r3, r7] - lsls r1, 16 - asrs r1, 16 - mov r12, r2 - ldr r7, _080A8404 - cmp r0, r1 - bne _080A83C6 - movs r0, 0 - strh r0, [r3, 0x18] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, r0, r7 - ldrh r3, [r1, 0x24] - movs r0, 0x24 - ldrsh r2, [r1, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r2, r0 - bne _080A83BE - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_080A83BE: - lsls r0, r4, 16 - asrs r0, 16 - adds r0, r3 - strh r0, [r1, 0x24] -_080A83C6: - lsls r2, r6, 2 - adds r2, r6 - lsls r2, 3 - add r2, r12 - strh r4, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r0, [r2, 0x1A] - adds r1, r0 - strh r1, [r2, 0x1A] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r7 - lsls r1, 16 - asrs r1, 24 - strh r1, [r0, 0x26] - ldrh r0, [r2, 0x10] - subs r0, 0x1 - strh r0, [r2, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _080A83F8 - adds r0, r6, 0 - bl move_anim_task_del -_080A83F8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8400: .4byte gTasks -_080A8404: .4byte gSprites - thumb_func_end sub_80A8374 - - thumb_func_start sub_80A8408 -sub_80A8408: @ 80A8408 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0x1 - ldr r4, _080A847C - ldrb r0, [r4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r7, r0, 24 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _080A842C - movs r0, 0x5 - strh r0, [r4, 0x8] -_080A842C: - movs r1, 0 - movs r2, 0x8 - ldrsh r0, [r4, r2] - adds r3, r4, 0 - ldr r2, _080A8480 - mov r12, r2 - lsls r4, r5, 2 - ldr r2, _080A8484 - mov r8, r2 - cmp r1, r0 - bge _080A8452 - adds r2, r0, 0 -_080A8444: - lsls r0, r6, 25 - lsrs r6, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - blt _080A8444 -_080A8452: - adds r0, r4, r5 - lsls r0, 3 - add r0, r12 - strh r7, [r0, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0xE] - strh r6, [r0, 0x10] - mov r1, r8 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A847C: .4byte gUnknown_03004B00 -_080A8480: .4byte gTasks -_080A8484: .4byte sub_80A8488 - thumb_func_end sub_80A8408 - - thumb_func_start sub_80A8488 -sub_80A8488: @ 80A8488 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080A84F8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x8] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xA - ldrsh r1, [r5, r2] - bl Sin - ldr r2, _080A84FC - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r4, r1, r2 - strh r0, [r4, 0x24] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x10] - ldrh r1, [r5, 0x12] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - cmp r0, 0 - bne _080A84E0 - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] -_080A84E0: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080A84F2 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080A84F2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A84F8: .4byte gTasks -_080A84FC: .4byte gSprites - thumb_func_end sub_80A8488 - - thumb_func_start sub_80A8500 -sub_80A8500: @ 80A8500 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A8528 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A851C - ldr r1, _080A852C - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A851C: - adds r0, r4, 0 - bl sub_80A8408 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8528: .4byte gUnknown_0202F7C8 -_080A852C: .4byte gUnknown_03004B00 - thumb_func_end sub_80A8500 - - thumb_func_start sub_80A8530 -sub_80A8530: @ 80A8530 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A8558 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8560 - ldr r1, _080A855C - ldrh r0, [r1, 0x2] - negs r0, r0 - b _080A8564 - .align 2, 0 -_080A8558: .4byte gUnknown_0202F7C8 -_080A855C: .4byte gUnknown_03004B00 -_080A8560: - ldr r1, _080A8590 - ldrh r0, [r1, 0x2] -_080A8564: - strh r0, [r4, 0x30] - ldrh r2, [r1] - movs r0, 0 - strh r2, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r1, _080A8594 - ldr r0, _080A8598 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _080A859C - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080A85A0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8590: .4byte gUnknown_03004B00 -_080A8594: .4byte gUnknown_02024BE0 -_080A8598: .4byte gUnknown_0202F7C8 -_080A859C: .4byte sub_80A85A4 -_080A85A0: .4byte sub_8078458 - thumb_func_end sub_80A8530 - - thumb_func_start sub_80A85A4 -sub_80A85A4: @ 80A85A4 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x30] - negs r1, r1 - strh r1, [r0, 0x30] - ldr r1, _080A85C0 - str r1, [r0, 0x1C] - ldr r1, _080A85C4 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080A85C0: .4byte sub_8078458 -_080A85C4: .4byte move_anim_8072740 - thumb_func_end sub_80A85A4 - - thumb_func_start sub_80A85C8 -sub_80A85C8: @ 80A85C8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r5, _080A8608 - ldrb r0, [r5, 0x4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r5] - movs r1, 0 - strh r2, [r4, 0x2E] - strh r1, [r4, 0x30] - ldrh r1, [r5, 0x2] - strh r1, [r4, 0x32] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _080A860C - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080A8610 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8608: .4byte gUnknown_03004B00 -_080A860C: .4byte sub_80A8614 -_080A8610: .4byte sub_8078458 - thumb_func_end sub_80A85C8 - - thumb_func_start sub_80A8614 -sub_80A8614: @ 80A8614 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x32] - negs r1, r1 - strh r1, [r0, 0x32] - ldr r1, _080A8630 - str r1, [r0, 0x1C] - ldr r1, _080A8634 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080A8630: .4byte sub_8078458 -_080A8634: .4byte move_anim_8072740 - thumb_func_end sub_80A8614 - - thumb_func_start sub_80A8638 -sub_80A8638: @ 80A8638 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _080A8650 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A865C - ldr r1, _080A8654 - ldr r0, _080A8658 - b _080A8660 - .align 2, 0 -_080A8650: .4byte gUnknown_03004B00 -_080A8654: .4byte gUnknown_02024BE0 -_080A8658: .4byte gUnknown_0202F7C8 -_080A865C: - ldr r1, _080A86C0 - ldr r0, _080A86C4 -_080A8660: - ldrb r0, [r0] - adds r0, r1 - ldrb r7, [r0] - ldr r5, _080A86C8 - ldrh r0, [r5, 0x4] - movs r3, 0 - strh r0, [r6, 0x2E] - ldr r0, _080A86CC - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x20] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x22] - strh r0, [r6, 0x36] - adds r0, r6, 0 - str r3, [sp] - bl sub_8078A5C - ldr r3, [sp] - strh r3, [r6, 0x34] - strh r3, [r6, 0x36] - ldrh r0, [r4, 0x24] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x26] - strh r0, [r6, 0x3A] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080A86D0 - strh r3, [r6, 0x32] - b _080A86D6 - .align 2, 0 -_080A86C0: .4byte gUnknown_02024BE0 -_080A86C4: .4byte gUnknown_0202F7C9 -_080A86C8: .4byte gUnknown_03004B00 -_080A86CC: .4byte gSprites -_080A86D0: - cmp r0, 0x2 - bne _080A86D6 - strh r3, [r6, 0x30] -_080A86D6: - ldr r0, _080A86EC - ldrh r1, [r0, 0x2] - lsls r0, r7, 8 - orrs r0, r1 - strh r0, [r6, 0x3C] - ldr r0, _080A86F0 - str r0, [r6, 0x1C] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A86EC: .4byte gUnknown_03004B00 -_080A86F0: .4byte sub_80A86F4 - thumb_func_end sub_80A8638 - - thumb_func_start sub_80A86F4 -sub_80A86F4: @ 80A86F4 - push {r4-r6,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3C] - lsls r1, r0, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - lsls r0, 16 - asrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080A8730 - adds r3, r1, r0 - ldrh r0, [r2, 0x2E] - movs r6, 0x2E - ldrsh r1, [r2, r6] - cmp r1, 0 - bne _080A8734 - cmp r4, 0x1 - bhi _080A871E - strh r1, [r3, 0x24] -_080A871E: - cmp r5, 0x2 - beq _080A8726 - cmp r5, 0 - bne _080A8728 -_080A8726: - strh r1, [r3, 0x26] -_080A8728: - adds r0, r2, 0 - bl move_anim_8072740 - b _080A875E - .align 2, 0 -_080A8730: .4byte gSprites -_080A8734: - subs r0, 0x1 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r1, r0 - strh r1, [r2, 0x34] - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r0, r4 - strh r0, [r2, 0x36] - lsls r1, 16 - asrs r1, 24 - ldrh r6, [r2, 0x38] - adds r1, r6 - strh r1, [r3, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r2, 0x3A] - adds r0, r2 - strh r0, [r3, 0x26] -_080A875E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A86F4 - - thumb_func_start sub_80A8764 -sub_80A8764: @ 80A8764 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080A8778 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A8780 - ldr r0, _080A877C - b _080A8782 - .align 2, 0 -_080A8778: .4byte gUnknown_03004B00 -_080A877C: .4byte gUnknown_0202F7C8 -_080A8780: - ldr r0, _080A8800 -_080A8782: - ldrb r2, [r0] - ldr r0, _080A8804 - adds r0, r2, r0 - ldrb r6, [r0] - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A87AC - ldr r1, _080A8808 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080A87AC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A87AC: - ldr r2, _080A8808 - ldrh r0, [r2, 0x8] - movs r4, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A880C - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x2] - ldrh r3, [r1, 0x20] - adds r0, r3 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x22] - strh r0, [r5, 0x34] - ldrh r0, [r2, 0x4] - ldrh r1, [r1, 0x22] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078A5C - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - strh r6, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080A8810 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080A8814 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8800: .4byte gUnknown_0202F7C9 -_080A8804: .4byte gUnknown_02024BE0 -_080A8808: .4byte gUnknown_03004B00 -_080A880C: .4byte gSprites -_080A8810: .4byte move_anim_8072740 -_080A8814: .4byte sub_80784A8 - thumb_func_end sub_80A8764 - - thumb_func_start sub_80A8818 -sub_80A8818: @ 80A8818 - push {r4-r7,lr} - adds r6, r0, 0 - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A8838 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A8840 - ldr r0, _080A883C - b _080A8842 - .align 2, 0 -_080A8838: .4byte gUnknown_03004B00 -_080A883C: .4byte gUnknown_0202F7C8 -_080A8840: - ldr r0, _080A88C0 -_080A8842: - ldrb r1, [r0] - ldr r0, _080A88C4 - adds r0, r1, r0 - ldrb r7, [r0] - adds r0, r1, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A886C - ldr r1, _080A88C8 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080A886C - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A886C: - ldr r5, _080A88C8 - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r0, _080A88CC - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r6, 0x34] - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl sub_8078A5C - ldrh r0, [r4, 0x24] - lsls r0, 8 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x26] - lsls r0, 8 - strh r0, [r6, 0x36] - strh r7, [r6, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r6, 0x3A] - lsls r0, 16 - cmp r0, 0 - bne _080A88D4 - ldr r1, _080A88D0 - adds r0, r6, 0 - bl oamt_set_x3A_32 - b _080A88DC - .align 2, 0 -_080A88C0: .4byte gUnknown_0202F7C9 -_080A88C4: .4byte gUnknown_02024BE0 -_080A88C8: .4byte gUnknown_03004B00 -_080A88CC: .4byte gSprites -_080A88D0: .4byte move_anim_8072740 -_080A88D4: - ldr r1, _080A88E8 - adds r0, r6, 0 - bl oamt_set_x3A_32 -_080A88DC: - ldr r0, _080A88EC - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A88E8: .4byte sub_80A88F0 -_080A88EC: .4byte sub_80784A8 - thumb_func_end sub_80A8818 - - thumb_func_start sub_80A88F0 -sub_80A88F0: @ 80A88F0 - push {r4,lr} - ldr r4, _080A891C - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - movs r3, 0 - strh r3, [r1, 0x24] - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r3, [r1, 0x26] - bl move_anim_8072740 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A891C: .4byte gSprites - thumb_func_end sub_80A88F0 - - thumb_func_start sub_80A8920 -sub_80A8920: @ 80A8920 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080A89A4 - movs r0, 0x6 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080A89A8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8952 - ldrh r0, [r5, 0x2] - negs r0, r0 - strh r0, [r5, 0x2] - ldrh r0, [r5, 0xA] - negs r0, r0 - strh r0, [r5, 0xA] -_080A8952: - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - ldr r1, _080A89AC - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - strh r7, [r4, 0x16] - ldr r0, _080A89B0 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A89A4: .4byte gUnknown_03004B00 -_080A89A8: .4byte gUnknown_0202F7C8 -_080A89AC: .4byte gTasks -_080A89B0: .4byte sub_80A89B4 - thumb_func_end sub_80A8920 - - thumb_func_start sub_80A89B4 -sub_80A89B4: @ 80A89B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8A0C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r1, [r5, 0x8] - ldrh r0, [r5, 0xA] - ldrh r2, [r5, 0x1E] - adds r0, r2 - strh r0, [r5, 0x1E] - ldr r2, _080A8A10 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r2 - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x1C] - lsrs r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x16] - ldrh r1, [r5, 0x1C] - adds r0, r1 - strh r0, [r5, 0x1C] - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080A8A04 - ldr r0, _080A8A14 - str r0, [r5] -_080A8A04: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8A0C: .4byte gTasks -_080A8A10: .4byte gSprites -_080A8A14: .4byte sub_80A8A18 - thumb_func_end sub_80A89B4 - - thumb_func_start sub_80A8A18 -sub_80A8A18: @ 80A8A18 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080A8A3C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A8A40 - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - b _080A8A74 - .align 2, 0 -_080A8A3C: .4byte gTasks -_080A8A40: - ldrb r0, [r4, 0x8] - ldrh r2, [r4, 0x12] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldr r3, _080A8A7C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - lsls r2, 16 - asrs r2, 24 - ldrh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 24 - adds r2, r0 - strh r2, [r1, 0x24] - ldrh r0, [r4, 0x14] - subs r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080A8A74 - adds r0, r5, 0 - bl move_anim_task_del -_080A8A74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8A7C: .4byte gSprites - thumb_func_end sub_80A8A18 - - thumb_func_start sub_80A8A80 -sub_80A8A80: @ 80A8A80 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A8AA4 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _080A8AAE - cmp r0, 0x2 - bgt _080A8AA8 - cmp r0, 0 - blt _080A8AE0 - ldrb r0, [r1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - b _080A8AE8 - .align 2, 0 -_080A8AA4: .4byte gUnknown_03004B00 -_080A8AA8: - cmp r0, 0x3 - beq _080A8AB8 - b _080A8AE0 -_080A8AAE: - ldr r5, _080A8AB4 - b _080A8ABA - .align 2, 0 -_080A8AB4: .4byte gUnknown_0202F7C8 -_080A8AB8: - ldr r5, _080A8AD8 -_080A8ABA: - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A8AE0 - ldr r1, _080A8ADC - ldrb r0, [r5] - eors r0, r4 - adds r0, r1 - ldrb r2, [r0] - b _080A8AE8 - .align 2, 0 -_080A8AD8: .4byte gUnknown_0202F7C9 -_080A8ADC: .4byte gUnknown_02024BE0 -_080A8AE0: - adds r0, r6, 0 - bl move_anim_task_del - b _080A8B28 -_080A8AE8: - ldr r1, _080A8B08 - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r5, r0, r1 - strh r2, [r5, 0x8] - ldr r0, _080A8B0C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8B14 - ldr r0, _080A8B10 - ldrh r0, [r0, 0x2] - b _080A8B1A - .align 2, 0 -_080A8B08: .4byte gTasks -_080A8B0C: .4byte gUnknown_0202F7C9 -_080A8B10: .4byte gUnknown_03004B00 -_080A8B14: - ldr r0, _080A8B30 - ldrh r0, [r0, 0x2] - negs r0, r0 -_080A8B1A: - strh r0, [r5, 0xA] - ldr r0, _080A8B34 - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A8B38 - str r0, [r1] -_080A8B28: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8B30: .4byte gUnknown_03004B00 -_080A8B34: .4byte gTasks -_080A8B38: .4byte sub_80A8B3C - thumb_func_end sub_80A8A80 - - thumb_func_start sub_80A8B3C -sub_80A8B3C: @ 80A8B3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A8B80 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r2, [r1, 0x8] - ldr r3, _080A8B84 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r1, 0xA] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x24 - ldrsh r1, [r0, r2] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r1, r0 - adds r1, 0x20 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bls _080A8B7A - adds r0, r4, 0 - bl move_anim_task_del -_080A8B7A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8B80: .4byte gTasks -_080A8B84: .4byte gSprites - thumb_func_end sub_80A8B3C - - thumb_func_start sub_80A8B88 -sub_80A8B88: @ 80A8B88 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _080A8BD8 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8BA4 - ldr r1, _080A8BDC - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A8BA4: - ldr r4, _080A8BDC - ldrb r0, [r4, 0x8] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8BE0 - lsls r3, r5, 2 - adds r1, r3, r5 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r4] - strh r1, [r2, 0x8] - ldrh r1, [r4, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r4, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r4, 0x6] - strh r1, [r2, 0xE] - strh r0, [r2, 0x10] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A8BE4 - ldrb r0, [r6] - b _080A8BE8 - .align 2, 0 -_080A8BD8: .4byte gUnknown_0202F7C8 -_080A8BDC: .4byte gUnknown_03004B00 -_080A8BE0: .4byte gTasks -_080A8BE4: - ldr r0, _080A8C00 - ldrb r0, [r0] -_080A8BE8: - strh r0, [r2, 0x12] - ldr r1, _080A8C04 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r1, _080A8C08 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8C00: .4byte gUnknown_0202F7C9 -_080A8C04: .4byte gTasks -_080A8C08: .4byte sub_80A8C0C - thumb_func_end sub_80A8B88 - - thumb_func_start sub_80A8C0C -sub_80A8C0C: @ 80A8C0C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A8C5C - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrb r7, [r4, 0x10] - ldrh r0, [r4, 0xC] - ldrh r1, [r4, 0x1C] - adds r0, r1 - lsls r1, r0, 16 - strh r0, [r4, 0x1C] - lsrs r1, 24 - mov r8, r1 - mov r0, r8 - movs r2, 0xA - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - lsrs r5, r0, 16 - mov r9, r5 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A8C64 - ldr r0, _080A8C60 - lsls r2, r7, 4 - adds r1, r2, r7 - lsls r1, 2 - adds r1, r0 - strh r5, [r1, 0x24] - mov r9, r0 - adds r4, r2, 0 - b _080A8CAA - .align 2, 0 -_080A8C5C: .4byte gTasks -_080A8C60: .4byte gSprites -_080A8C64: - ldrb r0, [r4, 0x12] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080A8C8C - ldr r1, _080A8C88 - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - lsls r0, r5, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _080A8CA8 - b _080A8CA6 - .align 2, 0 -_080A8C88: .4byte gSprites -_080A8C8C: - ldr r1, _080A8D2C - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - mov r4, r9 - lsls r0, r4, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _080A8CA6 - negs r0, r0 -_080A8CA6: - negs r0, r0 -_080A8CA8: - strh r0, [r3, 0x26] -_080A8CAA: - mov r5, r8 - cmp r5, 0x7F - bls _080A8CCC - ldr r1, _080A8D30 - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0 - bne _080A8CCC - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080A8CEE -_080A8CCC: - mov r2, r8 - cmp r2, 0x7E - bhi _080A8D20 - ldr r1, _080A8D30 - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0x1 - bne _080A8D20 - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080A8D20 -_080A8CEE: - adds r1, r2, r6 - lsls r1, 3 - adds r1, r5 - ldrh r0, [r1, 0x1E] - movs r2, 0x1 - eors r0, r2 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - eors r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080A8D20 - adds r0, r4, r7 - lsls r0, 2 - add r0, r9 - strh r3, [r0, 0x24] - strh r3, [r0, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080A8D20: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8D2C: .4byte gSprites -_080A8D30: .4byte gTasks - thumb_func_end sub_80A8C0C - - thumb_func_start sub_80A8D34 -sub_80A8D34: @ 80A8D34 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080A8D80 - ldrb r0, [r6, 0x6] - bl obj_id_for_side_relative_to_move - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r1, [r6, 0x8] - adds r0, r5, 0 - bl sub_8078E70 - ldr r1, _080A8D84 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r6] - strh r1, [r0, 0x8] - ldrh r1, [r6, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xE] - strh r5, [r0, 0x10] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1C] - strh r1, [r0, 0x1E] - ldr r1, _080A8D88 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8D80: .4byte gUnknown_03004B00 -_080A8D84: .4byte gTasks -_080A8D88: .4byte sub_80A8D8C - thumb_func_end sub_80A8D34 - - thumb_func_start sub_80A8D8C -sub_80A8D8C: @ 80A8D8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080A8DEC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0x1E] - adds r0, r3 - strh r0, [r4, 0x1E] - ldrb r0, [r4, 0x10] - adds r6, r0, 0 - movs r0, 0x1C - ldrsh r1, [r4, r0] - movs r3, 0x1E - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080A8DFC - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - ble _080A8DF0 - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - strh r2, [r4, 0xC] - strh r1, [r4, 0xE] - b _080A8DFC - .align 2, 0 -_080A8DEC: .4byte gTasks -_080A8DF0: - adds r0, r6, 0 - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del -_080A8DFC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A8D8C - - thumb_func_start sub_80A8E04 -sub_80A8E04: @ 80A8E04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080A8E40 - ldrb r0, [r4, 0x4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_8078E70 - ldr r1, _080A8E44 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2, 0xA] - ldrh r0, [r4] - strh r0, [r2, 0xC] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - beq _080A8E48 - strh r1, [r2, 0xE] - b _080A8E54 - .align 2, 0 -_080A8E40: .4byte gUnknown_03004B00 -_080A8E44: .4byte gTasks -_080A8E48: - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r3, r0, 0 - muls r3, r1 - adds r0, r3, 0 - strh r0, [r2, 0xE] -_080A8E54: - ldr r1, _080A8E80 - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r6, _080A8E84 - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x10] - mov r0, r8 - strh r0, [r5, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x14] - bl sub_8076BE0 - lsls r0, 24 - mov r8, r4 - cmp r0, 0 - beq _080A8E88 - movs r0, 0x1 - strh r0, [r5, 0x16] - b _080A8EAC - .align 2, 0 -_080A8E80: .4byte gTasks -_080A8E84: .4byte gUnknown_03004B00 -_080A8E88: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A8E98 - ldr r0, _080A8E94 - b _080A8E9A - .align 2, 0 -_080A8E94: .4byte gUnknown_0202F7C8 -_080A8E98: - ldr r0, _080A8EF0 -_080A8E9A: - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080A8EAA - movs r1, 0x1 -_080A8EAA: - strh r1, [r5, 0x16] -_080A8EAC: - ldr r0, _080A8EF4 - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r4, r1, r0 - movs r3, 0x16 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A8ED8 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080A8ED8 - movs r1, 0xE - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xE] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] -_080A8ED8: - ldr r0, _080A8EF4 - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A8EF8 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8EF0: .4byte gUnknown_0202F7C9 -_080A8EF4: .4byte gTasks -_080A8EF8: .4byte sub_80A8FD8 - thumb_func_end sub_80A8E04 - - thumb_func_start sub_80A8EFC -sub_80A8EFC: @ 80A8EFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A8F38 - ldrb r0, [r4, 0x4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_8078E70 - ldr r1, _080A8F3C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldrh r1, [r4] - strh r1, [r0, 0xC] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A8F44 - ldr r0, _080A8F40 - b _080A8F46 - .align 2, 0 -_080A8F38: .4byte gUnknown_03004B00 -_080A8F3C: .4byte gTasks -_080A8F40: .4byte gUnknown_0202F7C8 -_080A8F44: - ldr r0, _080A8F74 -_080A8F46: - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8F58 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_080A8F58: - ldr r0, _080A8F78 - movs r2, 0x6 - ldrsh r1, [r0, r2] - adds r6, r0, 0 - cmp r1, 0x1 - beq _080A8F80 - ldr r2, _080A8F7C - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0xE] - b _080A8F9A - .align 2, 0 -_080A8F74: .4byte gUnknown_0202F7C9 -_080A8F78: .4byte gUnknown_03004B00 -_080A8F7C: .4byte gTasks -_080A8F80: - ldr r3, _080A8FD0 - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r3 - ldrh r2, [r6] - ldrh r1, [r6, 0x2] - adds r7, r2, 0 - muls r7, r1 - adds r1, r7, 0 - strh r1, [r0, 0xE] - adds r2, r3, 0 - adds r3, r4, 0 -_080A8F9A: - adds r1, r3, r5 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r6, 0x2] - strh r0, [r1, 0x10] - mov r0, r8 - strh r0, [r1, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r1, 0x14] - movs r0, 0x1 - strh r0, [r1, 0x16] - movs r2, 0xE - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0xE] - movs r7, 0x10 - ldrsh r0, [r1, r7] - negs r0, r0 - strh r0, [r1, 0x10] - ldr r0, _080A8FD4 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8FD0: .4byte gTasks -_080A8FD4: .4byte sub_80A8FD8 - thumb_func_end sub_80A8EFC - - thumb_func_start sub_80A8FD8 -sub_80A8FD8: @ 80A8FD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A9030 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrb r0, [r4, 0x12] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0xE] - adds r1, r2, 0 - bl obj_id_set_rotscale - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080A900C - ldrb r0, [r4, 0x12] - bl sub_8078F9C -_080A900C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xC - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080A9052 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080A9034 - cmp r0, 0x1 - ble _080A903A - cmp r0, 0x2 - beq _080A9042 - b _080A903A - .align 2, 0 -_080A9030: .4byte gTasks -_080A9034: - ldrb r0, [r4, 0x12] - bl sub_8078F40 -_080A903A: - adds r0, r5, 0 - bl move_anim_task_del - b _080A9052 -_080A9042: - movs r0, 0 - strh r0, [r4, 0xA] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] - movs r0, 0x1 - strh r0, [r4, 0x14] -_080A9052: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A8FD8 - - thumb_func_start sub_80A9058 -sub_80A9058: @ 80A9058 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080A9084 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r8, r0 - cmp r1, 0 - bne _080A9090 - ldr r4, _080A9088 - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _080A908C - ldrh r0, [r0] - movs r1, 0xC - bl __udivsi3 - b _080A90A4 - .align 2, 0 -_080A9084: .4byte gUnknown_03004B00 -_080A9088: .4byte gTasks -_080A908C: .4byte gUnknown_0202F7BC -_080A9090: - ldr r4, _080A912C - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _080A9130 - ldr r0, [r0] - movs r1, 0xC - bl __divsi3 -_080A90A4: - strh r0, [r6, 0x26] - lsls r0, 16 - adds r1, r4, 0 - cmp r0, 0 - bgt _080A90B2 - movs r0, 0x1 - strh r0, [r6, 0x26] -_080A90B2: - movs r2, 0x26 - ldrsh r0, [r6, r2] - cmp r0, 0x10 - ble _080A90BE - movs r0, 0x10 - strh r0, [r6, 0x26] -_080A90BE: - adds r4, r5, r7 - lsls r4, 3 - adds r4, r1 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - movs r5, 0 - strh r1, [r4, 0x24] - ldrh r2, [r4, 0x26] - movs r0, 0x1 - ands r0, r2 - adds r1, r0 - strh r1, [r4, 0x22] - strh r5, [r4, 0x20] - mov r1, r8 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x1E] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r2, _080A9134 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x18] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x1A] - strh r5, [r4, 0x8] - mov r1, r8 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xC] - ldr r0, _080A9138 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A912C: .4byte gTasks -_080A9130: .4byte gUnknown_0202F7B8 -_080A9134: .4byte gSprites -_080A9138: .4byte sub_80A913C - thumb_func_end sub_80A9058 - - thumb_func_start sub_80A913C -sub_80A913C: @ 80A913C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A9190 - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _080A921A - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0x20] - adds r1, r0, 0x1 - movs r0, 0x1 - ands r1, r0 - strh r1, [r3, 0x20] - movs r2, 0x1C - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080A91AE - cmp r1, 0 - beq _080A9198 - ldr r2, _080A9194 - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x18] - adds r1, r2 - b _080A91AC - .align 2, 0 -_080A9190: .4byte gTasks -_080A9194: .4byte gSprites -_080A9198: - ldr r2, _080A91D4 - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x18] - ldrh r2, [r3, 0x24] - subs r1, r2 -_080A91AC: - strh r1, [r0, 0x24] -_080A91AE: - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080A91E8 - movs r2, 0x20 - ldrsh r4, [r3, r2] - cmp r4, 0 - beq _080A91D8 - ldr r2, _080A91D4 - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x26] - strh r1, [r0, 0x26] - b _080A91E8 - .align 2, 0 -_080A91D4: .4byte gSprites -_080A91D8: - ldr r2, _080A9220 - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] -_080A91E8: - ldrh r0, [r3, 0xC] - subs r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - bne _080A921A - ldr r2, _080A9220 - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x24] - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] - adds r0, r5, 0 - bl move_anim_task_del -_080A921A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9220: .4byte gSprites - thumb_func_end sub_80A913C - - thumb_func_start itemid_copy_name -itemid_copy_name: @ 80A9224 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _080A924C - movs r0, 0x2B - bl GetBerryInfo - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _080A9248 - adds r0, r4, 0 - bl StringAppend - b _080A9258 - .align 2, 0 -_080A9248: .4byte gOtherText_Berry2 -_080A924C: - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy -_080A9258: - pop {r4} - pop {r0} - bx r0 - thumb_func_end itemid_copy_name - - thumb_func_start unref_sub_80A9260 -unref_sub_80A9260: @ 80A9260 - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _080A9284 - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _080A9292 - ldr r3, [r0] -_080A9274: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _080A9288 - lsls r0, r2, 24 - asrs r0, 24 - b _080A9296 - .align 2, 0 -_080A9284: .4byte gUnknown_083C1618 -_080A9288: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _080A9274 -_080A9292: - movs r0, 0x1 - negs r0, r0 -_080A9296: - pop {r1} - bx r1 - thumb_func_end unref_sub_80A9260 - - thumb_func_start IsBagPocketNonEmpty -IsBagPocketNonEmpty: @ 80A929C - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _080A92C0 - lsrs r0, 21 - subs r0, 0x8 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _080A92CE - ldr r3, [r0] -_080A92B2: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080A92C4 - movs r0, 0x1 - b _080A92D0 - .align 2, 0 -_080A92C0: .4byte gUnknown_083C1618 -_080A92C4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _080A92B2 -_080A92CE: - movs r0, 0 -_080A92D0: - pop {r1} - bx r1 - thumb_func_end IsBagPocketNonEmpty - - thumb_func_start sub_80A92D4 -sub_80A92D4: @ 80A92D4 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - adds r0, r5, 0 - bl itemid_get_pocket_number - lsls r0, 24 - cmp r0, 0 - bne _080A92F0 - b _080A9336 -_080A92EC: - movs r0, 0x1 - b _080A9338 -_080A92F0: - adds r0, r5, 0 - bl itemid_get_pocket_number - subs r0, 0x1 - lsls r0, 24 - movs r3, 0 - ldr r6, _080A9340 - lsrs r2, r0, 21 - adds r0, r2, r6 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcs _080A9336 - adds r7, r6, 0 -_080A930A: - adds r0, r2, r7 - ldr r1, [r0] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r5 - bne _080A9328 - ldrh r0, [r1, 0x2] - cmp r0, r4 - bcs _080A92EC - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080A92EC -_080A9328: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, r6 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _080A930A -_080A9336: - movs r0, 0 -_080A9338: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080A9340: .4byte gUnknown_083C1618 - thumb_func_end sub_80A92D4 - - thumb_func_start sub_80A9344 -sub_80A9344: @ 80A9344 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - adds r0, r6, 0 - bl itemid_get_pocket_number - lsls r0, 24 - cmp r0, 0 - beq _080A9408 - adds r0, r6, 0 - bl itemid_get_pocket_number - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, _080A940C - cmp r1, 0x3 - beq _080A9376 - movs r5, 0x63 -_080A9376: - movs r3, 0 - ldr r0, _080A9410 - mov r8, r0 - lsls r2, r1, 3 - adds r0, r2, r0 - mov r12, r8 - mov r9, r2 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcs _080A93CA - mov r10, r12 - subs r0, r1, 0x2 - lsls r0, 24 - lsrs r7, r0, 24 -_080A9392: - mov r1, r10 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r6 - bne _080A93BA - ldrh r1, [r1, 0x2] - adds r0, r1, r4 - cmp r0, r5 - ble _080A9414 - cmp r7, 0x1 - bls _080A9408 - subs r0, r5, r1 - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080A9414 -_080A93BA: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - mov r1, r8 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _080A9392 -_080A93CA: - cmp r4, 0 - beq _080A9414 - movs r3, 0 - mov r6, r12 - mov r2, r9 - adds r0, r2, r6 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcs _080A9404 - adds r7, r6, 0 -_080A93DE: - adds r0, r2, r7 - ldr r1, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080A93F6 - cmp r4, r5 - bls _080A9414 - subs r0, r4, r5 - lsls r0, 16 - lsrs r4, r0, 16 -_080A93F6: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, r6 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _080A93DE -_080A9404: - cmp r4, 0 - beq _080A9414 -_080A9408: - movs r0, 0 - b _080A9416 - .align 2, 0 -_080A940C: .4byte 0x000003e7 -_080A9410: .4byte gUnknown_083C1618 -_080A9414: - movs r0, 0x1 -_080A9416: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A9344 - - thumb_func_start sub_80A9424 -sub_80A9424: @ 80A9424 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x100 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r4, r1, 16 - bl itemid_get_pocket_number - lsls r0, 24 - cmp r0, 0 - beq _080A9510 - mov r0, r8 - bl itemid_get_pocket_number - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A94F8 - lsls r0, r6, 3 - adds r5, r0, r1 - ldr r1, [r5] - ldrb r2, [r5, 0x4] - lsls r2, 2 - mov r0, sp - bl memcpy - ldr r7, _080A94FC - cmp r6, 0x3 - beq _080A9468 - movs r7, 0x63 -_080A9468: - movs r1, 0 - ldrb r0, [r5, 0x4] - cmp r1, r0 - bcs _080A94B2 - subs r0, r6, 0x2 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 -_080A9478: - lsls r0, r1, 2 - mov r2, sp - adds r3, r2, r0 - ldrh r0, [r3] - cmp r0, r8 - bne _080A94A6 - ldrh r2, [r3, 0x2] - adds r0, r2, r4 - cmp r0, r7 - ble _080A9500 - mov r0, r12 - cmp r0, 0x1 - bls _080A9510 - subs r0, r7, r2 - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - strh r7, [r3, 0x2] - ldr r2, _080A94F8 - mov r9, r2 - lsls r3, r6, 3 - cmp r4, 0 - beq _080A9516 -_080A94A6: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldrb r0, [r5, 0x4] - cmp r1, r0 - bcc _080A9478 -_080A94B2: - ldr r2, _080A94F8 - mov r9, r2 - lsls r3, r6, 3 - cmp r4, 0 - beq _080A9516 - movs r1, 0 - adds r0, r3, r2 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080A94F2 - mov r6, r9 - adds r5, r3, r6 -_080A94CA: - lsls r0, r1, 2 - mov r6, sp - adds r2, r6, r0 - ldrh r0, [r2] - cmp r0, 0 - bne _080A94E6 - mov r0, r8 - strh r0, [r2] - cmp r4, r7 - bls _080A9514 - subs r0, r4, r7 - lsls r0, 16 - lsrs r4, r0, 16 - strh r7, [r2, 0x2] -_080A94E6: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldrb r2, [r5, 0x4] - cmp r1, r2 - bcc _080A94CA -_080A94F2: - cmp r4, 0 - beq _080A9516 - b _080A9510 - .align 2, 0 -_080A94F8: .4byte gUnknown_083C1618 -_080A94FC: .4byte 0x000003e7 -_080A9500: - strh r0, [r3, 0x2] - ldr r0, _080A950C - lsls r1, r6, 3 - adds r1, r0 - b _080A951A - .align 2, 0 -_080A950C: .4byte gUnknown_083C1618 -_080A9510: - movs r0, 0 - b _080A9528 -_080A9514: - strh r4, [r2, 0x2] -_080A9516: - mov r6, r9 - adds r1, r3, r6 -_080A951A: - ldr r0, [r1] - ldrb r2, [r1, 0x4] - lsls r2, 2 - mov r1, sp - bl memcpy - movs r0, 0x1 -_080A9528: - add sp, 0x100 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A9424 - - thumb_func_start sub_80A9538 -sub_80A9538: @ 80A9538 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - movs r7, 0 - adds r0, r6, 0 - bl itemid_get_pocket_number - lsls r0, 24 - cmp r0, 0 - beq _080A959E - cmp r6, 0 - beq _080A959E - adds r0, r6, 0 - bl itemid_get_pocket_number - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r5, 0 - ldr r1, _080A95A4 - lsls r2, r0, 3 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r5, r0 - bcs _080A959A - mov r8, r1 -_080A9576: - mov r0, r8 - adds r3, r2, r0 - ldr r0, [r3] - lsls r1, r5, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r6 - bne _080A958E - ldrh r0, [r1, 0x2] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 -_080A958E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r3, [r3, 0x4] - cmp r5, r3 - bcc _080A9576 -_080A959A: - cmp r7, r4 - bcs _080A95A8 -_080A959E: - movs r0, 0 - b _080A9664 - .align 2, 0 -_080A95A4: .4byte gUnknown_083C1618 -_080A95A8: - ldr r0, _080A95DC - mov r2, r12 - lsls r1, r2, 3 - adds r5, r1, r0 - ldr r2, _080A95E0 - ldrb r3, [r5, 0x4] - mov r8, r0 - adds r7, r1, 0 - ldrb r0, [r2] - cmp r3, r0 - bls _080A9606 - ldrb r0, [r2] - ldr r1, [r5] - lsls r0, 2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r6 - bne _080A9606 - ldrh r0, [r1, 0x2] - cmp r0, r4 - bcc _080A95E4 - subs r0, r4 - strh r0, [r1, 0x2] - movs r4, 0 - b _080A95EE - .align 2, 0 -_080A95DC: .4byte gUnknown_083C1618 -_080A95E0: .4byte gUnknown_02038560 -_080A95E4: - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - strh r0, [r1, 0x2] -_080A95EE: - mov r1, r8 - adds r0, r7, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A9602 - strh r0, [r1] -_080A9602: - cmp r4, 0 - beq _080A9662 -_080A9606: - movs r5, 0 - adds r1, r7, 0 - mov r2, r8 - adds r0, r1, r2 - ldrb r2, [r0, 0x4] - cmp r5, r2 - bcs _080A9662 - mov r12, r8 - adds r3, r0, 0 -_080A9618: - mov r2, r12 - adds r0, r1, r2 - ldr r0, [r0] - lsls r1, r5, 2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r6 - bne _080A9650 - ldrh r0, [r2, 0x2] - cmp r0, r4 - bcc _080A9636 - subs r0, r4 - strh r0, [r2, 0x2] - movs r4, 0 - b _080A9640 -_080A9636: - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - strh r0, [r2, 0x2] -_080A9640: - ldr r0, [r3] - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A964C - strh r0, [r1] -_080A964C: - cmp r4, 0 - beq _080A9662 -_080A9650: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r1, r7, 0 - mov r2, r8 - adds r0, r1, r2 - ldrb r0, [r0, 0x4] - cmp r5, r0 - bcc _080A9618 -_080A9662: - movs r0, 0x1 -_080A9664: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A9538 - - thumb_func_start sub_80A9670 -sub_80A9670: @ 80A9670 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_pocket_number - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80A9670 - - thumb_func_start sub_80A9684 -sub_80A9684: @ 80A9684 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - movs r2, 0 - lsrs r1, 24 - cmp r2, r1 - bcs _080A96A6 - movs r3, 0 -_080A9694: - lsls r0, r2, 2 - adds r0, r4 - strh r3, [r0] - strh r3, [r0, 0x2] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r1 - bcc _080A9694 -_080A96A6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9684 - - thumb_func_start sub_80A96AC -sub_80A96AC: @ 80A96AC - push {lr} - movs r1, 0 - ldr r3, _080A96CC - movs r2, 0x93 - lsls r2, 3 -_080A96B6: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r3 - adds r0, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _080A96D0 - adds r0, r1, 0 - b _080A96E0 - .align 2, 0 -_080A96CC: .4byte gSaveBlock1 -_080A96D0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x31 - ble _080A96B6 - movs r0, 0x1 - negs r0, r0 -_080A96E0: - pop {r1} - bx r1 - thumb_func_end sub_80A96AC - - thumb_func_start sub_80A96E4 -sub_80A96E4: @ 80A96E4 - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r4, _080A9714 - movs r3, 0x93 - lsls r3, 3 -_080A96F0: - lsls r0, r1, 2 - adds r0, r4 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080A9702 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080A9702: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x31 - bls _080A96F0 - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9714: .4byte gSaveBlock1 - thumb_func_end sub_80A96E4 - - thumb_func_start sub_80A9718 -sub_80A9718: @ 80A9718 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r7, _080A9744 - movs r6, 0x93 - lsls r6, 3 - ldr r5, _080A9748 -_080A972C: - lsls r0, r3, 2 - adds r2, r0, r7 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r4 - bne _080A974C - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, r1 - bcc _080A974C - movs r0, 0x1 - b _080A9758 - .align 2, 0 -_080A9744: .4byte gSaveBlock1 -_080A9748: .4byte 0x0000049a -_080A974C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x31 - bls _080A972C - movs r0, 0 -_080A9758: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A9718 - - thumb_func_start sub_80A9760 -sub_80A9760: @ 80A9760 - push {r4-r7,lr} - sub sp, 0xC8 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, _080A97C4 - mov r0, sp - movs r2, 0xC8 - bl memcpy - movs r5, 0 - ldr r0, _080A97C8 - adds r7, r0, 0 -_080A977C: - lsls r0, r5, 2 - mov r1, sp - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r6 - bne _080A97A0 - ldrh r1, [r2, 0x2] - adds r0, r1, r4 - ldr r3, _080A97CC - cmp r0, r3 - ble _080A97D0 - adds r0, r4, r7 - adds r0, r1, r0 - lsls r0, 16 - lsrs r4, r0, 16 - strh r3, [r2, 0x2] - cmp r4, 0 - beq _080A97DC -_080A97A0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x31 - bls _080A977C - cmp r4, 0 - beq _080A97DC - bl sub_80A96AC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080A97D4 - movs r0, 0 - b _080A97E8 - .align 2, 0 -_080A97C4: .4byte gSaveBlock1 + 0x498 -_080A97C8: .4byte 0x0000fc19 -_080A97CC: .4byte 0x000003e7 -_080A97D0: - strh r0, [r2, 0x2] - b _080A97DC -_080A97D4: - lsls r0, r1, 2 - add r0, sp - strh r6, [r0] - strh r4, [r0, 0x2] -_080A97DC: - ldr r0, _080A97F0 - mov r1, sp - movs r2, 0xC8 - bl memcpy - movs r0, 0x1 -_080A97E8: - add sp, 0xC8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080A97F0: .4byte gSaveBlock1 + 0x498 - thumb_func_end sub_80A9760 - - thumb_func_start sub_80A97F4 -sub_80A97F4: @ 80A97F4 - push {lr} - lsls r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080A9824 - lsrs r0, 22 - adds r3, r0, r2 - ldr r0, _080A9828 - adds r2, r3, r0 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080A9820 - movs r2, 0x93 - lsls r2, 3 - adds r0, r3, r2 - strh r1, [r0] - bl sub_80A982C -_080A9820: - pop {r0} - bx r0 - .align 2, 0 -_080A9824: .4byte gSaveBlock1 -_080A9828: .4byte 0x0000049a - thumb_func_end sub_80A97F4 - - thumb_func_start sub_80A982C -sub_80A982C: @ 80A982C - push {r4-r7,lr} - movs r2, 0 - ldr r0, _080A987C - mov r12, r0 -_080A9834: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r3, r0, 16 - adds r7, r1, 0 - cmp r3, 0x31 - bhi _080A986C - lsls r1, r2, 2 - mov r2, r12 - adds r0, r1, r2 - movs r2, 0x93 - lsls r2, 3 - adds r5, r0, r2 - ldr r6, _080A9880 - adds r4, r1, r6 -_080A9850: - ldrh r0, [r5] - cmp r0, 0 - bne _080A9862 - ldr r2, [r4] - lsls r1, r3, 2 - adds r1, r6 - ldr r0, [r1] - str r0, [r4] - str r2, [r1] -_080A9862: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x31 - bls _080A9850 -_080A986C: - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, 0x30 - bls _080A9834 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A987C: .4byte gSaveBlock1 -_080A9880: .4byte gSaveBlock1 + 0x498 - thumb_func_end sub_80A982C - - thumb_func_start sub_80A9884 -sub_80A9884: @ 80A9884 - push {lr} - ldr r0, _080A98A0 - ldr r1, _080A98A4 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r3, _080A98A8 - cmp r1, r3 - beq _080A98AC - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - beq _080A98B4 - b _080A98B6 - .align 2, 0 -_080A98A0: .4byte gSaveBlock1 -_080A98A4: .4byte 0x00000496 -_080A98A8: .4byte 0x00000103 -_080A98AC: - movs r0, 0x88 - lsls r0, 1 - strh r0, [r2] - b _080A98B6 -_080A98B4: - strh r3, [r2] -_080A98B6: - pop {r0} - bx r0 - thumb_func_end sub_80A9884 - - thumb_func_start itemid_sanitize -itemid_sanitize: @ 80A98BC - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xAE - lsls r0, 1 - cmp r1, r0 - bhi _080A98CE - adds r0, r1, 0 - b _080A98D0 -_080A98CE: - movs r0, 0 -_080A98D0: - pop {r1} - bx r1 - thumb_func_end itemid_sanitize - - thumb_func_start itemid_get_item -itemid_get_item: @ 80A98D4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - ldr r1, _080A98F0 - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_080A98F0: .4byte gItems - thumb_func_end itemid_get_item - - thumb_func_start itemid_get_number -itemid_get_number: @ 80A98F4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9914 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrh r0, [r0, 0xE] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9914: .4byte gItems - thumb_func_end itemid_get_number - - thumb_func_start itemid_get_market_price -itemid_get_market_price: @ 80A9918 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9938 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrh r0, [r0, 0x10] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9938: .4byte gItems - thumb_func_end itemid_get_market_price - - thumb_func_start itemid_get_x12 -itemid_get_x12: @ 80A993C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A995C - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x12] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A995C: .4byte gItems - thumb_func_end itemid_get_x12 - - thumb_func_start itemid_get_quality -itemid_get_quality: @ 80A9960 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9980 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x13] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9980: .4byte gItems - thumb_func_end itemid_get_quality - - thumb_func_start itemid_get_description -itemid_get_description: @ 80A9984 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A99A4 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x14 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A99A4: .4byte gItems - thumb_func_end itemid_get_description - - thumb_func_start sub_80A99A8 -sub_80A99A8: @ 80A99A8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0x1 - ldr r4, _080A99E4 - lsls r0, 16 - lsrs r0, 16 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x14 - adds r0, r4 - ldr r3, [r0] - adds r2, r6, 0 -_080A99CA: - ldrb r1, [r3] - adds r0, r1, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A99FA - subs r5, 0x1 - cmp r5, 0 - bne _080A99E8 - movs r0, 0xFF - strb r0, [r2] - movs r0, 0x1 - b _080A9A02 - .align 2, 0 -_080A99E4: .4byte gItems -_080A99E8: - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080A99F4 - movs r0, 0 - b _080A9A02 -_080A99F4: - adds r2, r6, 0 - adds r3, 0x1 - b _080A99CA -_080A99FA: - strb r1, [r2] - adds r3, 0x1 - adds r2, 0x1 - b _080A99CA -_080A9A02: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A99A8 - - thumb_func_start itemid_is_unique -itemid_is_unique: @ 80A9A08 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A28 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x18] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9A28: .4byte gItems - thumb_func_end itemid_is_unique - - thumb_func_start itemid_get_x19 -itemid_get_x19: @ 80A9A2C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A4C - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x19] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9A4C: .4byte gItems - thumb_func_end itemid_get_x19 - - thumb_func_start itemid_get_pocket_number -itemid_get_pocket_number: @ 80A9A50 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A70 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1A] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9A70: .4byte gItems - thumb_func_end itemid_get_pocket_number - - thumb_func_start itemid_get_type -itemid_get_type: @ 80A9A74 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A94 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1B] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9A94: .4byte gItems - thumb_func_end itemid_get_type - - thumb_func_start itemid_get_overworld_function -itemid_get_overworld_function: @ 80A9A98 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9AB8 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x1C - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9AB8: .4byte gItems - thumb_func_end itemid_get_overworld_function - - thumb_func_start itemid_get_usage -itemid_get_usage: @ 80A9ABC - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9ADC - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9ADC: .4byte gItems - thumb_func_end itemid_get_usage - - thumb_func_start itemid_get_battle_function -itemid_get_battle_function: @ 80A9AE0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9B00 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x24 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9B00: .4byte gItems - thumb_func_end itemid_get_battle_function - - thumb_func_start itemid_get_x28 -itemid_get_x28: @ 80A9B04 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9B24 - bl itemid_sanitize - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - adds r0, 0x28 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A9B24: .4byte gItems - thumb_func_end itemid_get_x28 - - thumb_func_start unref_sub_80A9B28 -unref_sub_80A9B28: @ 80A9B28 - push {lr} - sub sp, 0x8 - bl MenuZeroFillScreen - movs r0, 0 - movs r1, 0 - movs r2, 0x11 - movs r3, 0x12 - bl MenuDrawTextWindow - ldr r3, _080A9B6C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x7 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x7 - bl InitMenu - ldr r1, _080A9B70 - ldr r0, _080A9B74 - str r0, [r1] - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_080A9B6C: .4byte gUnknown_083C91F0 -_080A9B70: .4byte gCallback_03004AE8 -_080A9B74: .4byte sub_80A9B78 - thumb_func_end unref_sub_80A9B28 - - thumb_func_start sub_80A9B78 -sub_80A9B78: @ 80A9B78 - push {lr} - bl ProcessMenuInput - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _080A9B8E - movs r0, 0 - b _080A9BB6 -_080A9B8E: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080A9BB0 - ldr r2, _080A9BA8 - ldr r0, _080A9BAC - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, 0 - b _080A9BB6 - .align 2, 0 -_080A9BA8: .4byte gCallback_03004AE8 -_080A9BAC: .4byte gUnknown_083C91F0 -_080A9BB0: - bl sub_8071C20 - movs r0, 0x1 -_080A9BB6: - pop {r1} - bx r1 - thumb_func_end sub_80A9B78 - - thumb_func_start sub_80A9BBC -sub_80A9BBC: @ 80A9BBC - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080A9BE0 - movs r1, 0xFF - bl CreateTask - movs r0, 0x1 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_080A9BE0: .4byte sub_80A9BE4 - thumb_func_end sub_80A9BBC - - thumb_func_start sub_80A9BE4 -sub_80A9BE4: @ 80A9BE4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A9C14 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A9C10 - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080A9C18 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A9C0C - bl sub_80AF668 -_080A9C0C: - bl sub_80C2358 -_080A9C10: - pop {r0} - bx r0 - .align 2, 0 -_080A9C14: .4byte gPaletteFade -_080A9C18: .4byte gUnknown_0203869A - thumb_func_end sub_80A9BE4 - - thumb_func_start sub_80A9C1C -sub_80A9C1C: @ 80A9C1C - push {lr} - ldr r1, _080A9C30 - movs r0, 0 - strb r0, [r1] - bl sub_80AA10C - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A9C30: .4byte gUnknown_0203869A - thumb_func_end sub_80A9C1C - - thumb_func_start sub_80A9C34 -sub_80A9C34: @ 80A9C34 - push {lr} - bl sub_80AA10C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80A9C34 - - thumb_func_start sub_80A9C40 -sub_80A9C40: @ 80A9C40 - push {r4,r5,lr} - ldr r5, _080A9C88 - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080A9C8C - adds r0, r4, 0 - adds r1, r5, 0 - bl SetTaskFuncWithFollowupFunc - ldr r0, _080A9C90 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9C94 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x1C] - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x1C] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080A9C88: .4byte sub_80A9E3C -_080A9C8C: .4byte sub_80A9C98 -_080A9C90: .4byte sub_80A9E04 -_080A9C94: .4byte gTasks - thumb_func_end sub_80A9C40 - - thumb_func_start sub_80A9C98 -sub_80A9C98: @ 80A9C98 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80AE098 - ldr r1, _080A9CB8 - ldr r2, _080A9CBC - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9CB8: .4byte sub_80C8734 -_080A9CBC: .4byte sub_80A9CC0 - thumb_func_end sub_80A9C98 - - thumb_func_start sub_80A9CC0 -sub_80A9CC0: @ 80A9CC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A9CD4 - ldr r2, _080A9CD8 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080A9CD4: .4byte sub_80C88AC -_080A9CD8: .4byte sub_80A9CDC - thumb_func_end sub_80A9CC0 - - thumb_func_start sub_80A9CDC -sub_80A9CDC: @ 80A9CDC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A9CF0 - ldr r2, _080A9CF4 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080A9CF0: .4byte sub_80C8E1C -_080A9CF4: .4byte sub_80A9D58 - thumb_func_end sub_80A9CDC - - thumb_func_start sub_80A9CF8 -sub_80A9CF8: @ 80A9CF8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A9D28 - ldrb r0, [r0] - cmp r0, 0 - bne _080A9D20 - ldr r0, _080A9D2C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x1C] - bl DestroyTask - adds r0, r4, 0 - bl DestroyTask - bl sub_8071C20 -_080A9D20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9D28: .4byte gReceivedRemoteLinkPlayers -_080A9D2C: .4byte gTasks - thumb_func_end sub_80A9CF8 - - thumb_func_start sub_80A9D30 -sub_80A9D30: @ 80A9D30 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800832C - ldr r1, _080A9D50 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A9D54 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9D50: .4byte gTasks -_080A9D54: .4byte sub_80A9CF8 - thumb_func_end sub_80A9D30 - - thumb_func_start sub_80A9D58 -sub_80A9D58: @ 80A9D58 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - ldr r1, _080A9DA8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, 0x12 - adds r2, r0, r1 -_080A9D6E: - mov r0, sp - adds r1, r0, r3 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080A9D6E - mov r0, sp - bl sub_80C4B34 - ldr r1, _080A9DAC - strb r0, [r1] - ldr r0, _080A9DB0 - ldrb r0, [r0] - bl sub_80AE82C - movs r0, 0 - bl sub_80B0F28 - ldr r1, _080A9DB4 - ldr r2, _080A9DB8 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9DA8: .4byte gTasks -_080A9DAC: .4byte gUnknown_0203869B -_080A9DB0: .4byte gUnknown_0203869C -_080A9DB4: .4byte sub_80C8EBC -_080A9DB8: .4byte sub_80A9DBC - thumb_func_end sub_80A9D58 - - thumb_func_start sub_80A9DBC -sub_80A9DBC: @ 80A9DBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A9DD0 - ldr r2, _080A9DD4 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080A9DD0: .4byte sub_80C8F34 -_080A9DD4: .4byte sub_80A9DD8 - thumb_func_end sub_80A9DBC - - thumb_func_start sub_80A9DD8 -sub_80A9DD8: @ 80A9DD8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A9E00 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1C] - bl DestroyTask - adds r0, r4, 0 - bl DestroyTask - bl sub_8071C20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9E00: .4byte gTasks - thumb_func_end sub_80A9DD8 - - thumb_func_start sub_80A9E04 -sub_80A9E04: @ 80A9E04 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080A9E30 - ldrh r0, [r0, 0x2E] - cmp r0, 0x2 - bne _080A9E2A - ldr r2, _080A9E34 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x1C] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080A9E38 - str r1, [r0] -_080A9E2A: - pop {r0} - bx r0 - .align 2, 0 -_080A9E30: .4byte gMain -_080A9E34: .4byte gTasks -_080A9E38: .4byte sub_80A9D30 - thumb_func_end sub_80A9E04 - - thumb_func_start sub_80A9E3C -sub_80A9E3C: @ 80A9E3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl OpenLink - movs r1, 0 - ldr r3, _080A9E74 - movs r2, 0xFF -_080A9E4C: - lsls r0, r1, 8 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080A9E4C - ldr r1, _080A9E78 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080A9E7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9E74: .4byte gBlockRecvBuffer -_080A9E78: .4byte gTasks -_080A9E7C: .4byte sub_80A9E80 - thumb_func_end sub_80A9E3C - - thumb_func_start sub_80A9E80 -sub_80A9E80: @ 80A9E80 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9EA0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x9 - bgt _080A9EA4 - adds r0, r1, 0x1 - strh r0, [r4, 0x8] - b _080A9ECC - .align 2, 0 -_080A9EA0: .4byte gTasks -_080A9EA4: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080A9ECC - movs r0, 0 - strh r0, [r4, 0x8] - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - beq _080A9EC8 - ldr r0, _080A9EC4 - b _080A9ECA - .align 2, 0 -_080A9EC4: .4byte sub_80A9ED8 -_080A9EC8: - ldr r0, _080A9ED4 -_080A9ECA: - str r0, [r4] -_080A9ECC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9ED4: .4byte sub_80A9F10 - thumb_func_end sub_80A9E80 - - thumb_func_start sub_80A9ED8 -sub_80A9ED8: @ 80A9ED8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9F08 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080A9F02 - bl sub_8007F4C - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _080A9F0C - str r0, [r4] -_080A9F02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9F08: .4byte gTasks -_080A9F0C: .4byte sub_80A9F10 - thumb_func_end sub_80A9ED8 - - thumb_func_start sub_80A9F10 -sub_80A9F10: @ 80A9F10 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A9F44 - ldrb r0, [r0] - cmp r0, 0 - beq _080A9F3E - bl GetMultiplayerId - ldr r1, _080A9F48 - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080A9F3E - ldr r1, _080A9F4C - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080A9F3E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9F44: .4byte gReceivedRemoteLinkPlayers -_080A9F48: .4byte gUnknown_02038695 -_080A9F4C: .4byte gUnknown_0203869A - thumb_func_end sub_80A9F10 - - thumb_func_start sub_80A9F50 -sub_80A9F50: @ 80A9F50 - push {r4,lr} - movs r2, 0x80 - lsls r2, 19 - movs r0, 0x40 - strh r0, [r2] - ldrh r0, [r2] - movs r3, 0x88 - lsls r3, 5 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r4, _080A9FB8 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080A9FBC - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r0, _080A9FC0 - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x44 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r0, _080A9FC4 - strh r1, [r0] - ldr r0, _080A9FC8 - strh r1, [r0] - ldr r0, _080A9FCC - strh r1, [r0] - ldr r0, _080A9FD0 - strh r1, [r0] - ldr r0, _080A9FD4 - strh r1, [r0] - ldr r0, _080A9FD8 - strh r1, [r0] - ldr r0, _080A9FDC - strh r1, [r0] - ldr r0, _080A9FE0 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9FB8: .4byte gWindowConfig_81E6C3C -_080A9FBC: .4byte gMenuWindow -_080A9FC0: .4byte REG_MOSAIC -_080A9FC4: .4byte gUnknown_030042A4 -_080A9FC8: .4byte gUnknown_030042A0 -_080A9FCC: .4byte gUnknown_030042C0 -_080A9FD0: .4byte gUnknown_030041B4 -_080A9FD4: .4byte gUnknown_03004288 -_080A9FD8: .4byte gUnknown_03004280 -_080A9FDC: .4byte gUnknown_030041B0 -_080A9FE0: .4byte gUnknown_030041B8 - thumb_func_end sub_80A9F50 - - thumb_func_start sub_80A9FE4 -sub_80A9FE4: @ 80A9FE4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r1, _080AA054 - mov r0, sp - movs r2, 0x5 - bl memcpy - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - add r5, sp, 0x8 - movs r6, 0 - ldr r1, _080AA058 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _080AA05C - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_080AA012: - str r6, [sp, 0x8] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080AA012 - str r6, [sp, 0x8] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xC0 - lsls r0, 19 - mov r1, sp - bl sub_80034D4 - ldr r0, _080AA060 - bl LoadFontDefaultPalette - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA054: .4byte gUnknown_083C9228 -_080AA058: .4byte 0x040000d4 -_080AA05C: .4byte 0x85000400 -_080AA060: .4byte gWindowConfig_81E6C3C - thumb_func_end sub_80A9FE4 - - thumb_func_start sub_80AA064 -sub_80AA064: @ 80AA064 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - ldr r0, _080AA088 - ldrh r0, [r0, 0x2E] - cmp r0, 0x4 - bne _080AA084 - ldr r0, _080AA08C - bl SetMainCallback2 -_080AA084: - pop {r0} - bx r0 - .align 2, 0 -_080AA088: .4byte gMain -_080AA08C: .4byte sub_805469C - thumb_func_end sub_80AA064 - - thumb_func_start sub_80AA090 -sub_80AA090: @ 80AA090 - push {lr} - ldr r1, _080AA0E8 - ldr r0, _080AA0EC - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0FC - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA100 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA104 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA108 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080AA0E8: .4byte REG_BG0HOFS -_080AA0EC: .4byte gUnknown_030042A4 -_080AA0F0: .4byte gUnknown_030042A0 -_080AA0F4: .4byte gUnknown_030042C0 -_080AA0F8: .4byte gUnknown_030041B4 -_080AA0FC: .4byte gUnknown_03004288 -_080AA100: .4byte gUnknown_03004280 -_080AA104: .4byte gUnknown_030041B0 -_080AA108: .4byte gUnknown_030041B8 - thumb_func_end sub_80AA090 - - thumb_func_start sub_80AA10C -sub_80AA10C: @ 80AA10C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, _080AA238 - ldrb r0, [r4, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x8] - movs r0, 0 - bl SetVBlankCallback - bl sub_80A9F50 - bl dp12_8087EA4 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl sub_80A9FE4 - ldr r0, _080AA23C - bl SetVBlankCallback - ldr r0, _080AA240 - bl SetMainCallback2 - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - ldr r4, _080AA244 - movs r0, 0 - strb r0, [r4] - ldr r0, _080AA248 - ldrb r0, [r0, 0x2] - cmp r0, 0 - bne _080AA16A - movs r0, 0 - movs r1, 0 - bl sub_80AE398 -_080AA16A: - ldrb r0, [r4] - bl sub_80AE098 - movs r5, 0 - ldr r6, _080AA24C - adds r0, r6, 0x1 - mov r8, r0 - ldr r7, _080AA250 -_080AA17A: - lsls r2, r5, 2 - adds r0, r2, r7 - ldr r1, [r0] - adds r2, r5 - lsls r2, 17 - movs r0, 0xA8 - lsls r0, 14 - adds r2, r0 - lsrs r2, 16 - lsls r4, r5, 1 - adds r0, r4, r6 - ldrb r3, [r0] - add r4, r8 - ldrb r0, [r4] - str r0, [sp] - ldr r0, _080AA254 - bl sub_8003460 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080AA17A - ldr r1, _080AA258 - ldr r4, _080AA25C - movs r0, 0 - strh r0, [r4] - strh r0, [r1] - movs r5, 0 - movs r0, 0 - bl sub_80AA5BC - ldrb r0, [r4] - bl sub_80AA5E8 - ldr r4, _080AA254 - ldr r1, _080AA260 - movs r0, 0x12 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xD6 - movs r3, 0x12 - bl sub_8003460 - ldr r1, _080AA264 - movs r0, 0xC - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xDC - movs r3, 0 - bl sub_8003460 - ldr r0, _080AA268 - bl LoadSpriteSheet - ldr r0, _080AA26C - bl LoadSpritePalette - movs r0, 0x3 - bl sub_80AA280 - movs r0, 0x3 - bl sub_80AA658 - movs r0, 0x3 - movs r1, 0 - bl sub_80AA614 - ldr r0, _080AA270 - ldr r1, _080AA274 - ldrb r1, [r1, 0x3] - ldr r2, _080AA278 - ldrb r2, [r2, 0x1] - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AA27C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - movs r0, 0x3 - strh r0, [r1, 0x32] - strh r5, [r1, 0x34] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA238: .4byte gPaletteFade -_080AA23C: .4byte sub_80AA090 -_080AA240: .4byte sub_80AA064 -_080AA244: .4byte gUnknown_02038694 -_080AA248: .4byte gUnknown_02038570 -_080AA24C: .4byte gUnknown_083C9276 -_080AA250: .4byte gUnknown_083C9364 -_080AA254: .4byte gMenuWindow -_080AA258: .4byte gUnknown_0203869C -_080AA25C: .4byte gUnknown_0203869E -_080AA260: .4byte gUnknown_083C9337 -_080AA264: .4byte gUnknown_083C933B -_080AA268: .4byte gUnknown_083C92B4 -_080AA26C: .4byte gUnknown_083C92BC -_080AA270: .4byte gSpriteTemplate_83C92CC -_080AA274: .4byte gUnknown_083C9296 -_080AA278: .4byte gUnknown_083C92A8 -_080AA27C: .4byte gSprites - thumb_func_end sub_80AA10C - - thumb_func_start sub_80AA280 -sub_80AA280: @ 80AA280 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080AA2E8 - movs r1, 0x1E - str r1, [sp] - movs r1, 0x3 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - ldr r4, _080AA2EC - ldr r1, _080AA2F0 - adds r0, r4, 0 - bl StringCopy - lsls r1, r7, 6 - ldr r0, _080AA2F4 - adds r1, r0 - adds r0, r4, 0 - bl StringAppend - movs r5, 0 - ldr r6, _080AA2F8 - adds r0, r6, 0x1 - mov r8, r0 -_080AA2BE: - cmp r7, r5 - bne _080AA2FC - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 17 - movs r0, 0x80 - lsls r0, 10 - adds r2, r0 - lsrs r2, 16 - lsls r1, r5, 1 - adds r0, r1, r6 - ldrb r3, [r0] - add r1, r8 - ldrb r0, [r1] - str r0, [sp] - ldr r0, _080AA2E8 - ldr r1, _080AA2EC - bl sub_8003460 - b _080AA322 - .align 2, 0 -_080AA2E8: .4byte gMenuWindow -_080AA2EC: .4byte 0x02000000 -_080AA2F0: .4byte gUnknown_083C932C -_080AA2F4: .4byte gUnknown_0203857D -_080AA2F8: .4byte gUnknown_083C926E -_080AA2FC: - lsls r1, r5, 6 - ldr r0, _080AA338 - adds r1, r0 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 17 - movs r0, 0x80 - lsls r0, 10 - adds r2, r0 - lsrs r2, 16 - lsls r4, r5, 1 - adds r0, r4, r6 - ldrb r3, [r0] - add r4, r8 - ldrb r0, [r4] - str r0, [sp] - ldr r0, _080AA33C - bl sub_8003460 -_080AA322: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080AA2BE - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA338: .4byte gUnknown_0203857D -_080AA33C: .4byte gMenuWindow - thumb_func_end sub_80AA280 - - thumb_func_start sub_80AA340 -sub_80AA340: @ 80AA340 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA378 - ldr r1, _080AA37C - lsrs r0, 18 - adds r0, r1 - adds r0, 0x26 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA380 - ldr r1, _080AA384 - ldrb r3, [r1] - ldrb r1, [r1, 0x1] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x66 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA378: .4byte 0x02000000 -_080AA37C: .4byte gUnknown_02038570 -_080AA380: .4byte gMenuWindow -_080AA384: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA340 - - thumb_func_start sub_80AA388 -sub_80AA388: @ 80AA388 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA3C0 - ldr r1, _080AA3C4 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x28 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA3C8 - ldr r1, _080AA3CC - ldrb r3, [r1, 0x2] - ldrb r1, [r1, 0x3] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x6C - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA3C0: .4byte 0x02000000 -_080AA3C4: .4byte gUnknown_02038570 -_080AA3C8: .4byte gMenuWindow -_080AA3CC: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA388 - - thumb_func_start sub_80AA3D0 -sub_80AA3D0: @ 80AA3D0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA408 - ldr r1, _080AA40C - lsrs r0, 18 - adds r0, r1 - adds r0, 0x27 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA410 - ldr r1, _080AA414 - ldrb r3, [r1, 0x4] - ldrb r1, [r1, 0x5] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x72 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA408: .4byte 0x02000000 -_080AA40C: .4byte gUnknown_02038570 -_080AA410: .4byte gMenuWindow -_080AA414: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA3D0 - - thumb_func_start sub_80AA418 -sub_80AA418: @ 80AA418 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA450 - ldr r1, _080AA454 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x29 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA458 - ldr r1, _080AA45C - ldrb r3, [r1, 0x6] - ldrb r1, [r1, 0x7] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x78 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA450: .4byte 0x02000000 -_080AA454: .4byte gUnknown_02038570 -_080AA458: .4byte gMenuWindow -_080AA45C: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA418 - - thumb_func_start sub_80AA460 -sub_80AA460: @ 80AA460 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA498 - ldr r1, _080AA49C - lsrs r0, 18 - adds r0, r1 - adds r0, 0x2A - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA4A0 - ldr r1, _080AA4A4 - ldrb r3, [r1, 0x8] - ldrb r1, [r1, 0x9] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x7E - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA498: .4byte 0x02000000 -_080AA49C: .4byte gUnknown_02038570 -_080AA4A0: .4byte gMenuWindow -_080AA4A4: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA460 - - thumb_func_start sub_80AA4A8 -sub_80AA4A8: @ 80AA4A8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA4E0 - ldr r1, _080AA4E4 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x2B - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA4E8 - ldr r1, _080AA4EC - ldrb r3, [r1, 0xA] - ldrb r1, [r1, 0xB] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x84 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA4E0: .4byte 0x02000000 -_080AA4E4: .4byte gUnknown_02038570 -_080AA4E8: .4byte gMenuWindow -_080AA4EC: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA4A8 - - thumb_func_start sub_80AA4F0 -sub_80AA4F0: @ 80AA4F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r7, _080AA5A8 - ldr r0, _080AA5AC - lsls r5, r6, 1 - adds r1, r5, r0 - ldrb r1, [r1] - mov r9, r1 - adds r0, 0x1 - adds r0, r5, r0 - ldrb r0, [r0] - mov r10, r0 - movs r0, 0x7 - add r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - str r0, [sp] - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0 - mov r2, r9 - mov r3, r10 - bl FillWindowRect_DefaultPalette - ldr r0, _080AA5B0 - lsls r4, 6 - adds r4, r5, r4 - adds r0, 0x1E - adds r4, r0 - ldrh r1, [r4] - movs r0, 0xD - muls r1, r0 - ldr r0, _080AA5B4 - adds r1, r0 - lsls r2, r6, 3 - subs r2, r6 - lsls r2, 17 - movs r0, 0x8A - lsls r0, 16 - adds r2, r0 - lsrs r2, 16 - mov r0, r10 - str r0, [sp] - adds r0, r7, 0 - mov r3, r9 - bl sub_8003460 - ldr r0, _080AA5B8 - mov r9, r0 - ldrh r1, [r4] - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r6 - lsls r5, 17 - movs r0, 0xFA - lsls r0, 16 - adds r5, r0 - lsrs r5, 16 - mov r0, r10 - str r0, [sp] - adds r0, r7, 0 - mov r1, r9 - adds r2, r5, 0 - mov r3, r8 - bl sub_8003460 - 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 -_080AA5A8: .4byte gMenuWindow -_080AA5AC: .4byte gUnknown_083C928E -_080AA5B0: .4byte gUnknown_02038570 -_080AA5B4: .4byte gMoveNames -_080AA5B8: .4byte gStringVar1 - thumb_func_end sub_80AA4F0 - - thumb_func_start sub_80AA5BC -sub_80AA5BC: @ 80AA5BC - push {lr} - sub sp, 0x4 - lsls r0, 24 - ldr r2, _080AA5E0 - ldr r1, _080AA5E4 - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x12 - str r0, [sp] - adds r0, r2, 0 - movs r2, 0xC2 - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080AA5E0: .4byte gMenuWindow -_080AA5E4: .4byte gUnknown_083C93B4 - thumb_func_end sub_80AA5BC - - thumb_func_start sub_80AA5E8 -sub_80AA5E8: @ 80AA5E8 - push {lr} - sub sp, 0x4 - lsls r0, 24 - ldr r2, _080AA60C - ldr r1, _080AA610 - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x4 - str r0, [sp] - adds r0, r2, 0 - movs r2, 0xE8 - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080AA60C: .4byte gMenuWindow -_080AA610: .4byte gUnknown_083C93F0 - thumb_func_end sub_80AA5E8 - - thumb_func_start sub_80AA614 -sub_80AA614: @ 80AA614 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_80AE770 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _080AA650 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA654 - movs r1, 0xC - str r1, [sp] - adds r1, r4, 0 - movs r2, 0xE2 - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA650: .4byte 0x02000000 -_080AA654: .4byte gMenuWindow - thumb_func_end sub_80AA614 - - thumb_func_start sub_80AA658 -sub_80AA658: @ 80AA658 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80AA340 - adds r0, r5, 0 - bl sub_80AA388 - adds r0, r5, 0 - bl sub_80AA3D0 - adds r0, r5, 0 - bl sub_80AA418 - adds r0, r5, 0 - bl sub_80AA460 - adds r0, r5, 0 - bl sub_80AA4A8 - movs r4, 0 -_080AA684: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80AA4F0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AA684 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AA658 - - thumb_func_start sub_80AA69C -sub_80AA69C: @ 80AA69C - push {r4-r6,lr} - ldr r6, _080AA748 - ldr r5, _080AA74C - ldrb r2, [r5] - lsls r2, 6 - ldr r4, _080AA750 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0x16 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x2 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x18 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x1 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x17 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x21 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x4 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2F - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x5 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x30 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - subs r4, 0x8 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0xD - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r2, r4 - adds r2, 0x2 - adds r0, r6, 0 - movs r1, 0xE - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r2, r4 - adds r2, 0x4 - adds r0, r6, 0 - movs r1, 0xF - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r2, r4 - adds r2, 0x6 - adds r0, r6, 0 - movs r1, 0x10 - bl SetMonData - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AA748: .4byte gPlayerParty -_080AA74C: .4byte gUnknown_02038695 -_080AA750: .4byte gUnknown_02038596 - thumb_func_end sub_80AA69C - - thumb_func_start sub_80AA754 -sub_80AA754: @ 80AA754 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AA774 - ldrh r1, [r0, 0x30] - cmp r1, 0x20 - beq _080AA7A2 - cmp r1, 0x20 - bgt _080AA782 - cmp r1, 0x2 - beq _080AA7F8 - cmp r1, 0x2 - bgt _080AA778 - cmp r1, 0x1 - beq _080AA7D8 - b _080AA870 - .align 2, 0 -_080AA774: .4byte gMain -_080AA778: - cmp r1, 0x8 - beq _080AA868 - cmp r1, 0x10 - beq _080AA7A2 - b _080AA870 -_080AA782: - cmp r1, 0x80 - beq _080AA7C2 - cmp r1, 0x80 - bgt _080AA790 - cmp r1, 0x40 - beq _080AA7AC - b _080AA870 -_080AA790: - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - beq _080AA814 - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - beq _080AA834 - b _080AA870 -_080AA7A2: - ldrh r0, [r4, 0x2E] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x2E] - b _080AA870 -_080AA7AC: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AA7BC - movs r0, 0x8 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7BC: - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7C2: - ldrh r1, [r4, 0x30] - movs r3, 0x30 - ldrsh r0, [r4, r3] - cmp r0, 0x8 - bne _080AA7D2 - movs r0, 0 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7D2: - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7D8: - ldr r2, _080AA7F4 - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 2 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r0, r1 - adds r0, r2 - ldr r2, [r0] - adds r0, r4, 0 - movs r1, 0x1 - b _080AA84E - .align 2, 0 -_080AA7F4: .4byte gUnknown_083C92E4 -_080AA7F8: - ldr r1, _080AA810 - movs r0, 0x2E - ldrsh r2, [r4, r0] - lsls r2, 2 - movs r3, 0x30 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r2, r0 - adds r2, r1 - movs r1, 0x1 - negs r1, r1 - b _080AA84A - .align 2, 0 -_080AA810: .4byte gUnknown_083C92E4 -_080AA814: - ldr r2, _080AA830 - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 2 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r0, r1 - adds r0, r2 - ldr r2, [r0] - adds r0, r4, 0 - movs r1, 0xA - b _080AA84E - .align 2, 0 -_080AA830: .4byte gUnknown_083C92E4 -_080AA834: - ldr r1, _080AA864 - movs r0, 0x2E - ldrsh r2, [r4, r0] - lsls r2, 2 - movs r3, 0x30 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r2, r0 - adds r2, r1 - movs r1, 0xA - negs r1, r1 -_080AA84A: - ldr r2, [r2] - adds r0, r4, 0 -_080AA84E: - bl _call_via_r2 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x34] - lsls r1, 24 - lsrs r1, 24 - bl sub_80AA614 - b _080AA870 - .align 2, 0 -_080AA864: .4byte gUnknown_083C92E4 -_080AA868: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80AAD08 -_080AA870: - ldr r2, _080AA898 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r3, 0x30 - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - strh r0, [r4, 0x20] - ldr r1, _080AA89C - movs r2, 0x30 - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x22] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA898: .4byte gUnknown_083C9296 -_080AA89C: .4byte gUnknown_083C92A8 - thumb_func_end sub_80AA754 - - thumb_func_start sub_80AA8A0 -sub_80AA8A0: @ 80AA8A0 - push {r4,lr} - adds r4, r0, 0 - lsls r2, 24 - lsrs r0, r2, 24 - lsls r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _080AA8C0 - strh r0, [r4, 0x32] - bl sub_80AA280 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA658 -_080AA8C0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA8A0 - - thumb_func_start sub_80AA8C8 -sub_80AA8C8: @ 80AA8C8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8C8 - - thumb_func_start sub_80AA8D8 -sub_80AA8D8: @ 80AA8D8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8D8 - - thumb_func_start sub_80AA8E8 -sub_80AA8E8: @ 80AA8E8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0x2 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8E8 - - thumb_func_start sub_80AA8F8 -sub_80AA8F8: @ 80AA8F8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0x3 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8F8 - - thumb_func_start sub_80AA908 -sub_80AA908: @ 80AA908 - push {lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - asrs r2, 24 - adds r2, r1 - lsls r2, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0xFF - ble _080AA922 - movs r0, 0xFF - b _080AA928 -_080AA922: - cmp r2, 0 - bge _080AA928 - movs r0, 0 -_080AA928: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80AA908 - - thumb_func_start sub_80AA930 -sub_80AA930: @ 80AA930 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AA970 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x26 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x26 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA340 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA970: .4byte gUnknown_02038570 - thumb_func_end sub_80AA930 - - thumb_func_start sub_80AA974 -sub_80AA974: @ 80AA974 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AA9B4 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x28 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA388 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA9B4: .4byte gUnknown_02038570 - thumb_func_end sub_80AA974 - - thumb_func_start sub_80AA9B8 -sub_80AA9B8: @ 80AA9B8 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AA9F8 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x27 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x27 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA3D0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA9F8: .4byte gUnknown_02038570 - thumb_func_end sub_80AA9B8 - - thumb_func_start sub_80AA9FC -sub_80AA9FC: @ 80AA9FC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAA3C - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x29 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x29 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA418 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAA3C: .4byte gUnknown_02038570 - thumb_func_end sub_80AA9FC - - thumb_func_start sub_80AAA40 -sub_80AAA40: @ 80AAA40 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAA80 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x2A - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x2A - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA460 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAA80: .4byte gUnknown_02038570 - thumb_func_end sub_80AAA40 - - thumb_func_start sub_80AAA84 -sub_80AAA84: @ 80AAA84 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAAC4 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x2B - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x2B - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA4A8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAAC4: .4byte gUnknown_02038570 - thumb_func_end sub_80AAA84 - - thumb_func_start sub_80AAAC8 -sub_80AAAC8: @ 80AAAC8 - push {lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - asrs r2, 24 - adds r1, r2 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - movs r2, 0xB1 - lsls r2, 1 - cmp r1, r2 - ble _080AAAE6 - movs r0, 0x1 - b _080AAAEC -_080AAAE6: - cmp r1, 0 - bge _080AAAEC - adds r0, r2, 0 -_080AAAEC: - pop {r1} - bx r1 - thumb_func_end sub_80AAAC8 - - thumb_func_start sub_80AAAF0 -sub_80AAAF0: @ 80AAAF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAB2C - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x1E] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x1E] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAB2C: .4byte gUnknown_02038570 - thumb_func_end sub_80AAAF0 - - thumb_func_start sub_80AAB30 -sub_80AAB30: @ 80AAB30 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAB6C - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x20] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAB6C: .4byte gUnknown_02038570 - thumb_func_end sub_80AAB30 - - thumb_func_start sub_80AAB70 -sub_80AAB70: @ 80AAB70 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AABAC - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x22] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x22] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AABAC: .4byte gUnknown_02038570 - thumb_func_end sub_80AAB70 - - thumb_func_start sub_80AABB0 -sub_80AABB0: @ 80AABB0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AABEC - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x24] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AABEC: .4byte gUnknown_02038570 - thumb_func_end sub_80AABB0 - - thumb_func_start sub_80AABF0 -sub_80AABF0: @ 80AABF0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - movs r0, 0xFF - cmp r1, 0 - ble _080AABFE - movs r0, 0x1 -_080AABFE: - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r5, 0x34] - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080AAC14 - movs r4, 0 - b _080AAC1A -_080AAC14: - cmp r0, 0x4 - ble _080AAC1A - movs r4, 0x4 -_080AAC1A: - lsls r4, 24 - lsrs r0, r4, 24 - bl sub_80AA5BC - asrs r4, 24 - strh r4, [r5, 0x34] - ldr r0, _080AAC54 - strh r4, [r0] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080AAC58 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80AE398 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA280 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA658 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAC54: .4byte gUnknown_0203869C -_080AAC58: .4byte gUnknown_0203869E - thumb_func_end sub_80AABF0 - - thumb_func_start sub_80AAC5C -sub_80AAC5C: @ 80AAC5C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - cmp r1, 0 - ble _080AAC78 - ldr r1, _080AAC74 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r4, r1, 0 - b _080AAC86 - .align 2, 0 -_080AAC74: .4byte gUnknown_0203869E -_080AAC78: - ldr r0, _080AACBC - ldrh r2, [r0] - adds r4, r0, 0 - cmp r2, 0 - beq _080AAC86 - subs r0, r2, 0x1 - strh r0, [r4] -_080AAC86: - adds r1, r4, 0 - ldrh r0, [r1] - cmp r0, 0x3 - bls _080AAC92 - movs r0, 0x3 - strh r0, [r1] -_080AAC92: - ldrb r0, [r4] - bl sub_80AA5E8 - ldr r0, _080AACC0 - ldrb r0, [r0] - ldrb r1, [r4] - bl sub_80AE398 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA280 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA658 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AACBC: .4byte gUnknown_0203869E -_080AACC0: .4byte gUnknown_0203869C - thumb_func_end sub_80AAC5C - - thumb_func_start sub_80AACC4 -sub_80AACC4: @ 80AACC4 - push {lr} - bl UpdatePaletteFade - ldr r0, _080AACF8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080AACF4 - bl sub_80AA69C - ldr r0, _080AACFC - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AACEE - ldr r0, _080AAD00 - ldrb r0, [r0] - bl sub_80AE82C -_080AACEE: - ldr r0, _080AAD04 - bl SetMainCallback2 -_080AACF4: - pop {r0} - bx r0 - .align 2, 0 -_080AACF8: .4byte gPaletteFade -_080AACFC: .4byte gUnknown_0203869A -_080AAD00: .4byte 0x02000000 -_080AAD04: .4byte sub_80AB47C - thumb_func_end sub_80AACC4 - - thumb_func_start sub_80AAD08 -sub_80AAD08: @ 80AAD08 - push {r4,lr} - sub sp, 0x4 - lsls r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _080AAD32 - ldr r1, _080AAD3C - ldrh r0, [r0, 0x34] - movs r4, 0 - strb r0, [r1] - ldr r0, _080AAD40 - bl SetMainCallback2 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_080AAD32: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAD3C: .4byte 0x02000000 -_080AAD40: .4byte sub_80AACC4 - thumb_func_end sub_80AAD08 - - thumb_func_start sub_80AAD44 -sub_80AAD44: @ 80AAD44 - push {r4,r5,lr} - lsls r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _080AAD72 - bl sub_80AA69C - movs r4, 0 - ldr r5, _080AAD78 -_080AAD56: - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, _080AAD7C - ldrb r1, [r1] - bl sub_80AE770 - strh r0, [r5] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080AAD56 - ldr r0, _080AAD80 - bl SetMainCallback2 -_080AAD72: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAD78: .4byte gUnknown_02038670 -_080AAD7C: .4byte gUnknown_0203869C -_080AAD80: .4byte sub_805469C - thumb_func_end sub_80AAD44 - - thumb_func_start sub_80AAD84 -sub_80AAD84: @ 80AAD84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x64 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x48] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4C] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - mov r5, r10 - adds r5, 0x1 - lsls r1, r5, 8 - ldr r0, _080AAEC4 - subs r1, r0, r1 - movs r0, 0 - str r0, [sp, 0x44] - ldr r4, _080AAEC8 - add r0, sp, 0x44 - str r0, [r4] - str r1, [r4, 0x4] - ldr r0, _080AAECC - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - mov r0, r9 - bl StringLength - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x8 - bls _080AADD0 - movs r7, 0x8 -_080AADD0: - movs r6, 0 - mov r8, r5 - mov r1, r10 - lsls r1, 1 - str r1, [sp, 0x58] - ldr r2, [sp, 0x48] - adds r2, 0x20 - str r2, [sp, 0x5C] - cmp r6, r7 - bge _080AAE1E - add r5, sp, 0x40 - add r0, sp, 0x20 - mov r10, r0 - ldr r2, _080AAEC4 -_080AADEC: - mov r1, r9 - adds r0, r1, r6 - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - mov r0, sp - adds r1, r5, 0 - str r2, [sp, 0x60] - bl sub_80034D4 - mov r1, r8 - lsls r0, r1, 8 - ldr r2, [sp, 0x60] - subs r0, r2, r0 - mov r1, r10 - str r1, [r4] - str r0, [r4, 0x4] - ldr r0, _080AAED0 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, 0x20 - adds r6, 0x1 - cmp r6, r7 - blt _080AADEC -_080AAE1E: - movs r1, 0x7C - ldr r2, [sp, 0x58] - subs r1, r2 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080AAED4 - mov r9, r0 - lsls r3, r7, 3 - add r3, r9 - ldr r0, _080AAED8 - ldr r1, [r0] - ldr r2, [r0, 0x4] - str r1, [sp, 0x50] - str r2, [sp, 0x54] - str r1, [r3, 0x3C] - str r2, [r3, 0x40] - mov r2, r8 - lsls r0, r2, 3 - movs r1, 0x80 - lsls r1, 3 - adds r2, r1, 0 - subs r2, r0 - adds r6, r3, 0 - adds r6, 0x40 - ldr r0, _080AAEDC - mov r8, r0 - mov r1, r8 - ands r2, r1 - ldrh r5, [r6] - ldr r4, _080AAEE0 - adds r0, r4, 0 - ands r0, r5 - orrs r0, r2 - strh r0, [r6] - ldrh r5, [r3, 0x3E] - ldr r2, _080AAEE4 - adds r0, r2, 0 - ands r0, r5 - ldr r1, [sp, 0x48] - orrs r0, r1 - strh r0, [r3, 0x3E] - adds r3, 0x3C - add r0, sp, 0x4C - ldrb r0, [r0] - strb r0, [r3] - adds r1, r7, 0x1 - lsls r1, 3 - mov r0, r9 - adds r7, r1, r0 - ldr r0, [sp, 0x50] - ldr r1, [sp, 0x54] - str r0, [r7, 0x3C] - str r1, [r7, 0x40] - ldrh r0, [r6] - lsls r0, 22 - lsrs r0, 22 - adds r0, 0x4 - adds r5, r7, 0 - adds r5, 0x40 - mov r1, r8 - ands r0, r1 - ldrh r3, [r5] - ands r4, r3 - orrs r4, r0 - strh r4, [r5] - ldrh r0, [r7, 0x3E] - ands r2, r0 - ldr r0, [sp, 0x5C] - orrs r2, r0 - strh r2, [r7, 0x3E] - adds r1, r7, 0 - adds r1, 0x3C - add r2, sp, 0x4C - ldrb r2, [r2] - strb r2, [r1] - add sp, 0x64 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAEC4: .4byte 0x06018000 -_080AAEC8: .4byte 0x040000d4 -_080AAECC: .4byte 0x85000040 -_080AAED0: .4byte 0x84000008 -_080AAED4: .4byte gMain -_080AAED8: .4byte gUnknown_083C9400 -_080AAEDC: .4byte 0x000003ff -_080AAEE0: .4byte 0xfffffc00 -_080AAEE4: .4byte 0xfffffe00 - thumb_func_end sub_80AAD84 - - thumb_func_start unref_sub_80AAEE8 -unref_sub_80AAEE8: @ 80AAEE8 - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - movs r0, 0 - cmp r4, 0 - bge _080AAF08 - mov r1, sp - movs r0, 0xAE - strb r0, [r1] - movs r0, 0x1 -_080AAF08: - add r0, sp - adds r1, r4, 0 - cmp r1, 0 - bge _080AAF12 - negs r1, r1 -_080AAF12: - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - mov r0, sp - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_80AAD84 - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80AAEE8 - - thumb_func_start sub_80AAF30 -sub_80AAF30: @ 80AAF30 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r1, _080AAFC0 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080AAFC4 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - bl sub_80AE098 - movs r4, 0x3 - movs r5, 0x1 - negs r5, r5 - ldr r3, _080AAFC8 - movs r2, 0x3 -_080AAF56: - adds r1, r4, r3 - subs r0, r2, r4 - strb r0, [r1] - subs r4, 0x1 - cmp r4, r5 - bgt _080AAF56 - movs r4, 0 - movs r6, 0 - ldr r7, _080AAFCC - ldr r5, _080AAFD0 - mov r9, r5 -_080AAF6C: - lsls r1, r4, 1 - strh r6, [r7] - ldr r0, _080AAFD4 - mov r8, r0 - adds r0, r1, r0 - strh r6, [r0] - ldr r3, _080AAFD8 - adds r1, r3 - strh r6, [r1] - adds r0, r5, 0 - mov r1, r9 - adds r1, 0xC0 - movs r2, 0x40 - str r3, [sp] - bl memcpy - adds r7, 0x2 - adds r5, 0x40 - adds r4, 0x1 - ldr r3, [sp] - cmp r4, 0x2 - ble _080AAF6C - ldr r0, _080AAFCC - movs r1, 0x96 - lsls r1, 1 - strh r1, [r0, 0x6] - movs r0, 0xC8 - lsls r0, 1 - mov r1, r8 - strh r0, [r1, 0x6] - strh r0, [r3, 0x6] - movs r0, 0xFE - bl sub_80B2A7C - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAFC0: .4byte gUnknown_0203856C -_080AAFC4: .4byte gUnknown_02038695 -_080AAFC8: .4byte gUnknown_02038690 -_080AAFCC: .4byte gUnknown_02038670 -_080AAFD0: .4byte gUnknown_02038570 -_080AAFD4: .4byte gUnknown_02038680 -_080AAFD8: .4byte gUnknown_02038678 - thumb_func_end sub_80AAF30 - - thumb_func_start sub_80AAFDC -sub_80AAFDC: @ 80AAFDC - push {lr} - bl sub_80AAF30 - bl sub_8071C20 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80AAFDC - - thumb_func_start sub_80AAFEC -sub_80AAFEC: @ 80AAFEC - push {r4,lr} - ldr r1, _080AB01C - movs r0, 0 - strb r0, [r1] - movs r4, 0 - ldr r3, _080AB020 - ldr r2, _080AB024 - ldr r1, _080AB028 - movs r0, 0x3 -_080AAFFE: - strh r4, [r1] - strh r4, [r2] - strh r4, [r3] - adds r3, 0x2 - adds r2, 0x2 - adds r1, 0x2 - subs r0, 0x1 - cmp r0, 0 - bge _080AAFFE - bl sub_8071C20 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080AB01C: .4byte gUnknown_0203856C -_080AB020: .4byte gUnknown_02038678 -_080AB024: .4byte gUnknown_02038680 -_080AB028: .4byte gUnknown_02038670 - thumb_func_end sub_80AAFEC - - thumb_func_start sub_80AB02C -sub_80AB02C: @ 80AB02C - push {r4,r5,lr} - ldr r1, _080AB078 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - bl sub_80AE098 - movs r2, 0x3 - movs r5, 0x1 - negs r5, r5 - ldr r4, _080AB07C - movs r3, 0x3 -_080AB044: - adds r1, r2, r4 - subs r0, r3, r2 - strb r0, [r1] - subs r2, 0x1 - cmp r2, r5 - bgt _080AB044 - ldr r1, _080AB080 - movs r0, 0 - strh r0, [r1] - adds r4, r1, 0 -_080AB058: - movs r0, 0xFF - bl sub_80B2A7C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _080AB058 - bl sub_8071C20 - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AB078: .4byte gUnknown_02038695 -_080AB07C: .4byte gUnknown_02038690 -_080AB080: .4byte gUnknown_0203869C - thumb_func_end sub_80AB02C - - thumb_func_start unref_sub_80AB084 -unref_sub_80AB084: @ 80AB084 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - mov r8, r0 - ldr r0, _080AB160 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x22 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - movs r2, 0x80 - lsls r2, 19 - movs r3, 0xFA - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r2] - ldr r3, _080AB164 - ldrh r2, [r3] - strh r1, [r3] - ldr r4, _080AB168 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r1, _080AB16C - movs r0, 0x8 - strh r0, [r1] - bl ResetTasks - bl ResetSpriteData - ldr r0, _080AB170 - bl SetMainCallback2 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _080AB174 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080AB178 - movs r7, 0x85 - lsls r7, 24 -_080AB108: - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080AB108 - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r4, _080AB17C - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r5, _080AB180 - adds r0, r5, 0 - adds r1, r4, 0 - bl InitWindowFromConfig - adds r0, r4, 0 - bl LoadFontDefaultPalette - movs r0, 0x7 - str r0, [sp] - adds r0, r5, 0 - mov r1, r8 - movs r2, 0x1 - movs r3, 0x9 - bl sub_8003460 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB160: .4byte REG_BG0HOFS -_080AB164: .4byte 0x04000208 -_080AB168: .4byte 0x04000200 -_080AB16C: .4byte REG_DISPSTAT -_080AB170: .4byte sub_80AB184 -_080AB174: .4byte 0x040000d4 -_080AB178: .4byte 0x85000400 -_080AB17C: .4byte gWindowConfig_81E6FD8 -_080AB180: .4byte gUnknown_03004210 - thumb_func_end unref_sub_80AB084 - - thumb_func_start sub_80AB184 -sub_80AB184: @ 80AB184 - ldr r0, _080AB1A8 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_080AB1A8: .4byte REG_BG0HOFS - thumb_func_end sub_80AB184 - - thumb_func_start nullsub_89 -nullsub_89: @ 80AB1AC - bx lr - thumb_func_end nullsub_89 - - thumb_func_start sub_80AB1B0 -sub_80AB1B0: @ 80AB1B0 - ldr r1, _080AB1B8 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080AB1B8: .4byte gUnknown_0203869A - thumb_func_end sub_80AB1B0 - - thumb_func_start sub_80AB1BC -sub_80AB1BC: @ 80AB1BC - push {r4-r6,lr} - movs r6, 0x80 - lsls r6, 19 - movs r0, 0x40 - strh r0, [r6] - ldr r4, _080AB260 - ldrh r3, [r4] - movs r2, 0 - strh r2, [r4] - ldr r5, _080AB264 - ldrh r0, [r5] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r5] - strh r3, [r4] - ldr r1, _080AB268 - movs r0, 0x8 - strh r0, [r1] - adds r1, 0x4 - movs r3, 0x98 - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080AB26C - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x9C - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080AB270 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080AB274 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - subs r0, 0xC - ldr r3, _080AB278 - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldrh r0, [r6] - movs r3, 0xFE - lsls r3, 7 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r6] - ldr r0, _080AB27C - strh r2, [r0] - ldr r0, _080AB280 - strh r2, [r0] - ldr r0, _080AB284 - strh r2, [r0] - ldr r0, _080AB288 - strh r2, [r0] - ldr r0, _080AB28C - strh r2, [r0] - ldr r0, _080AB290 - strh r2, [r0] - ldr r0, _080AB294 - strh r2, [r0] - ldr r0, _080AB298 - strh r2, [r0] - ldr r0, _080AB29C - strh r2, [r0] - ldr r0, _080AB2A0 - strh r2, [r0] - ldr r0, _080AB2A4 - strh r2, [r0] - ldr r0, _080AB2A8 - strh r2, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AB260: .4byte 0x04000208 -_080AB264: .4byte 0x04000200 -_080AB268: .4byte REG_DISPSTAT -_080AB26C: .4byte 0x00009e09 -_080AB270: .4byte 0x00003a03 -_080AB274: .4byte REG_BLDCNT -_080AB278: .4byte 0x00003f3f -_080AB27C: .4byte gUnknown_030042A4 -_080AB280: .4byte gUnknown_030042A0 -_080AB284: .4byte gUnknown_030042C0 -_080AB288: .4byte gUnknown_030041B4 -_080AB28C: .4byte gUnknown_03004288 -_080AB290: .4byte gUnknown_03004280 -_080AB294: .4byte gUnknown_030041B0 -_080AB298: .4byte gUnknown_030041B8 -_080AB29C: .4byte gUnknown_030042C4 -_080AB2A0: .4byte gUnknown_03004240 -_080AB2A4: .4byte gUnknown_03004200 -_080AB2A8: .4byte gUnknown_03004244 - thumb_func_end sub_80AB1BC - - thumb_func_start sub_80AB2AC -sub_80AB2AC: @ 80AB2AC - push {r4,r5,lr} - ldr r0, _080AB300 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _080AB304 - ldr r1, _080AB308 - bl LZDecompressVram - ldr r0, _080AB30C - ldr r1, _080AB310 - bl LZDecompressVram - ldr r0, _080AB314 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - bl sub_80AB350 - movs r4, 0 - movs r5, 0xA0 -_080AB2DC: - ldr r0, _080AB318 - adds r0, r5, r0 - ldr r1, _080AB31C - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, 0x5 - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - adds r5, 0x20 - adds r4, 0x1 - cmp r4, 0x3 - ble _080AB2DC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB300: .4byte gContestMiscGfx -_080AB304: .4byte gContestAudienceGfx -_080AB308: .4byte 0x06002000 -_080AB30C: .4byte gUnknown_08D1725C -_080AB310: .4byte 0x0600d000 -_080AB314: .4byte gUnknown_08D17144 -_080AB318: .4byte 0x02018004 -_080AB31C: .4byte gUnknown_02038696 - thumb_func_end sub_80AB2AC - - thumb_func_start sub_80AB320 -sub_80AB320: @ 80AB320 - push {r4,lr} - ldr r4, _080AB340 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080AB344 - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r0, _080AB348 - ldr r1, _080AB34C - bl InitWindowFromConfig - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB340: .4byte gWindowConfig_81E6FD8 -_080AB344: .4byte gUnknown_03004210 -_080AB348: .4byte gMenuWindow -_080AB34C: .4byte gWindowConfig_81E6FF4 - thumb_func_end sub_80AB320 - - thumb_func_start sub_80AB350 -sub_80AB350: @ 80AB350 - push {r4,lr} - ldr r0, _080AB38C - bl LoadFontDefaultPalette - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - movs r4, 0xA -_080AB364: - adds r1, r4, 0 - adds r1, 0xF0 - ldr r0, _080AB390 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xD - bls _080AB364 - ldr r0, _080AB394 - movs r1, 0xF3 - movs r2, 0x2 - bl FillPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB38C: .4byte gWindowConfig_81E6FD8 -_080AB390: .4byte gPlttBufferUnfaded + 0x1E2 -_080AB394: .4byte 0x00007e3f - thumb_func_end sub_80AB350 - - thumb_func_start sub_80AB398 -sub_80AB398: @ 80AB398 - push {r4-r6,lr} - ldr r4, _080AB468 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x5C - bl memset - movs r5, 0 - adds r4, 0x2 - movs r2, 0xFF -_080AB3AC: - adds r1, r5, r4 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x3 - ble _080AB3AC - ldr r4, _080AB46C - movs r5, 0x3 -_080AB3BE: - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1C - bl memset - adds r4, 0x1C - subs r5, 0x1 - cmp r5, 0 - bge _080AB3BE - ldr r4, _080AB470 - movs r6, 0x4 - negs r6, r6 - movs r3, 0xFF - adds r2, r4, 0 - subs r2, 0x65 - movs r5, 0x3 -_080AB3DE: - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2, 0x8] - orrs r0, r3 - strb r0, [r2, 0x8] - ldrb r0, [r2, 0x9] - orrs r0, r3 - strb r0, [r2, 0x9] - adds r2, 0x1C - subs r5, 0x1 - cmp r5, 0 - bge _080AB3DE - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x14 - bl memset - adds r0, r4, 0 - adds r0, 0x14 - movs r1, 0 - movs r2, 0x44 - bl memset - adds r0, r4, 0 - adds r0, 0x58 - movs r1, 0 - movs r2, 0x4 - bl memset - adds r0, r4, 0 - adds r0, 0x68 - movs r1, 0 - movs r2, 0x10 - bl memset - ldr r0, _080AB474 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AB43A - movs r0, 0 - bl sub_80B0F28 -_080AB43A: - movs r5, 0 - movs r6, 0xFF - adds r3, r4, 0 - subs r3, 0xB8 - adds r2, r4, 0 - subs r2, 0x57 - ldr r4, _080AB478 -_080AB448: - ldrb r0, [r2] - orrs r0, r6 - strb r0, [r2] - adds r1, r3, r5 - adds r0, r5, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080AB448 - bl sub_80B159C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AB468: .4byte 0x02019204 -_080AB46C: .4byte 0x02019260 -_080AB470: .4byte 0x020192d0 -_080AB474: .4byte gUnknown_0203869A -_080AB478: .4byte gUnknown_02038696 - thumb_func_end sub_80AB398 - - thumb_func_start sub_80AB47C -sub_80AB47C: @ 80AB47C - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, _080AB498 - ldr r1, _080AB49C - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0x1 - beq _080AB554 - cmp r0, 0x1 - bgt _080AB4A0 - cmp r0, 0 - beq _080AB4AA - b _080AB5AE - .align 2, 0 -_080AB498: .4byte gMain -_080AB49C: .4byte 0x0000043c -_080AB4A0: - cmp r0, 0x2 - beq _080AB55A - cmp r0, 0x3 - beq _080AB578 - b _080AB5AE -_080AB4AA: - movs r0, 0 - bl SetVBlankCallback - bl sub_80AB320 - bl sub_80AB1BC - bl dp12_8087EA4 - bl ResetPaletteFade - ldr r0, _080AB538 - ldrb r1, [r0, 0x8] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x8] - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _080AB53C - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080AB540 - movs r7, 0x85 - lsls r7, 24 -_080AB4E0: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080AB4E0 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - ldr r1, _080AB544 - movs r0, 0x4 - strb r0, [r1] - ldr r0, _080AB548 - movs r1, 0xC0 - lsls r1, 9 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bl sub_8040710 - bl sub_80AB398 - ldr r1, _080AB54C - ldr r0, _080AB550 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080AB5AE - .align 2, 0 -_080AB538: .4byte gPaletteFade -_080AB53C: .4byte 0x040000d4 -_080AB540: .4byte 0x85000400 -_080AB544: .4byte gReservedSpritePaletteCount -_080AB548: .4byte 0x02000000 -_080AB54C: .4byte gMain -_080AB550: .4byte 0x0000043c -_080AB554: - bl sub_80AB350 - b _080AB56C -_080AB55A: - ldr r5, _080AB574 - adds r0, r5, 0 - bl sub_80AB70C - lsls r0, 24 - cmp r0, 0 - beq _080AB5AE - movs r0, 0 - strb r0, [r5] -_080AB56C: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080AB5AE - .align 2, 0 -_080AB574: .4byte 0x0201925d -_080AB578: - bl sub_80B2184 - ldr r0, _080AB5B8 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AB5BC - strh r1, [r0] - movs r0, 0x2 - bl BeginFastPaletteFade - ldr r2, _080AB5C0 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _080AB5C4 - bl SetVBlankCallback - ldr r0, _080AB5C8 - movs r1, 0xA - bl CreateTask - ldr r1, _080AB5CC - strb r0, [r1, 0x8] - ldr r0, _080AB5D0 - bl SetMainCallback2 -_080AB5AE: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB5B8: .4byte gUnknown_030042C0 -_080AB5BC: .4byte gUnknown_030041B4 -_080AB5C0: .4byte gPaletteFade -_080AB5C4: .4byte sub_80ABAC4 -_080AB5C8: .4byte sub_80AB5D4 -_080AB5CC: .4byte 0x02019204 -_080AB5D0: .4byte sub_80ABAAC - thumb_func_end sub_80AB47C - - thumb_func_start sub_80AB5D4 -sub_80AB5D4: @ 80AB5D4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080AB5F8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080AB5F4 - ldr r0, _080AB5FC - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AB600 - str r0, [r1] -_080AB5F4: - pop {r0} - bx r0 - .align 2, 0 -_080AB5F8: .4byte gPaletteFade -_080AB5FC: .4byte gTasks -_080AB600: .4byte sub_80AB604 - thumb_func_end sub_80AB5D4 - - thumb_func_start sub_80AB604 -sub_80AB604: @ 80AB604 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080AB648 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AB65C - ldr r2, _080AB64C - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080AB66A - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - bl sub_80AF860 - ldr r0, _080AB650 - movs r1, 0 - bl CreateTask - ldr r1, _080AB654 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080AB658 - str r1, [r0] - b _080AB66A - .align 2, 0 -_080AB648: .4byte gUnknown_0203869A -_080AB64C: .4byte gPaletteFade -_080AB650: .4byte sub_80AB678 -_080AB654: .4byte gTasks -_080AB658: .4byte nullsub_89 -_080AB65C: - ldr r0, _080AB670 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AB674 - str r0, [r1] -_080AB66A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB670: .4byte gTasks -_080AB674: .4byte sub_80AB960 - thumb_func_end sub_80AB604 - - thumb_func_start sub_80AB678 -sub_80AB678: @ 80AB678 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AB68C - ldr r2, _080AB690 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080AB68C: .4byte sub_80C89DC -_080AB690: .4byte sub_80AB694 - thumb_func_end sub_80AB678 - - thumb_func_start sub_80AB694 -sub_80AB694: @ 80AB694 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - ldr r2, _080AB6AC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r3, [r1, 0x8] - ldr r0, _080AB6B0 - str r0, [r1] - bx lr - .align 2, 0 -_080AB6AC: .4byte gTasks -_080AB6B0: .4byte sub_80AB6B4 - thumb_func_end sub_80AB694 - - thumb_func_start sub_80AB6B4 -sub_80AB6B4: @ 80AB6B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _080AB6F8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r5 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bgt _080AB6F2 - bl GetMultiplayerId - adds r0, r4, 0 - bl DestroyTask - ldr r0, _080AB6FC - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - ldr r1, _080AB700 - str r1, [r0] - ldr r1, _080AB704 - ldr r0, _080AB708 - ldr r0, [r0] - str r0, [r1] -_080AB6F2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB6F8: .4byte gTasks -_080AB6FC: .4byte 0x02019204 -_080AB700: .4byte sub_80AB960 -_080AB704: .4byte gRngValue -_080AB708: .4byte gUnknown_03005D28 - thumb_func_end sub_80AB6B4 - - thumb_func_start sub_80AB70C -sub_80AB70C: @ 80AB70C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - mov r10, r0 - ldrb r0, [r0] - cmp r0, 0x6 - bls _080AB722 - b _080AB93C -_080AB722: - lsls r0, 2 - ldr r1, _080AB72C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AB72C: .4byte _080AB730 - .align 2, 0 -_080AB730: - .4byte _080AB74C - .4byte _080AB7A0 - .4byte _080AB7B0 - .4byte _080AB800 - .4byte _080AB814 - .4byte _080AB844 - .4byte _080AB8CC -_080AB74C: - ldr r0, _080AB794 - ldrb r1, [r0, 0x8] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x8] - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - add r5, sp, 0x40 - movs r6, 0 - ldr r1, _080AB798 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r7, _080AB79C - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080AB772: - str r6, [sp, 0x40] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080AB772 - str r6, [sp, 0x40] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - b _080AB7E6 - .align 2, 0 -_080AB794: .4byte gPaletteFade -_080AB798: .4byte 0x040000d4 -_080AB79C: .4byte 0x85000400 -_080AB7A0: - ldr r0, _080AB7AC - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _080AB946 - .align 2, 0 -_080AB7AC: .4byte gContestMiscGfx -_080AB7B0: - ldr r0, _080AB7EC - ldr r4, _080AB7F0 - adds r1, r4, 0 - bl LZDecompressVram - ldr r3, _080AB7F4 - movs r5, 0x80 - lsls r5, 6 - ldr r1, _080AB7F8 - ldr r6, _080AB7FC - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x84 - lsls r7, 24 -_080AB7CC: - str r4, [r1] - str r3, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, r2 - adds r3, r2 - subs r5, r2 - cmp r5, r2 - bhi _080AB7CC - str r4, [r1] - str r3, [r1, 0x4] - lsrs r0, r5, 2 - orrs r0, r7 -_080AB7E6: - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _080AB946 - .align 2, 0 -_080AB7EC: .4byte gContestAudienceGfx -_080AB7F0: .4byte 0x06002000 -_080AB7F4: .4byte 0x02015800 -_080AB7F8: .4byte 0x040000d4 -_080AB7FC: .4byte 0x84000400 -_080AB800: - ldr r0, _080AB80C - ldr r1, _080AB810 - bl LZDecompressVram - b _080AB946 - .align 2, 0 -_080AB80C: .4byte gUnknown_08D1725C -_080AB810: .4byte 0x0600d000 -_080AB814: - ldr r0, _080AB830 - ldr r4, _080AB834 - adds r1, r4, 0 - bl LZDecompressVram - ldr r1, _080AB838 - ldr r0, _080AB83C - str r4, [r0] - str r1, [r0, 0x4] - ldr r1, _080AB840 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080AB946 - .align 2, 0 -_080AB830: .4byte gUnknown_08D17424 -_080AB834: .4byte 0x0600e000 -_080AB838: .4byte 0x02018a04 -_080AB83C: .4byte 0x040000d4 -_080AB840: .4byte 0x84000200 -_080AB844: - ldr r0, _080AB8AC - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - ldr r5, _080AB8B0 - ldr r6, _080AB8B4 - adds r0, r5, 0 - mov r1, sp - adds r2, r6, 0 - bl CpuSet - ldr r0, _080AB8B8 - mov r9, r0 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 5 - ldr r1, _080AB8BC - adds r1, r5 - mov r8, r1 - add r0, r8 - add r4, sp, 0x20 - adds r1, r4, 0 - adds r2, r6, 0 - bl CpuSet - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CpuSet - mov r2, r9 - ldrb r1, [r2] - adds r1, 0x5 - lsls r1, 5 - add r1, r8 - mov r0, sp - adds r2, r6, 0 - bl CpuSet - ldr r1, _080AB8C0 - ldr r0, _080AB8C4 - mov r2, r8 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _080AB8C8 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_80AB350 - b _080AB946 - .align 2, 0 -_080AB8AC: .4byte gUnknown_08D17144 -_080AB8B0: .4byte gPlttBufferUnfaded + 0x100 -_080AB8B4: .4byte REG_BG0CNT -_080AB8B8: .4byte gUnknown_02038695 -_080AB8BC: .4byte 0xffffff00 -_080AB8C0: .4byte 0x02018004 -_080AB8C4: .4byte 0x040000d4 -_080AB8C8: .4byte 0x84000080 -_080AB8CC: - bl sub_80B1118 - bl sub_80AFA5C - bl sub_80AEB30 - bl sub_80AE8B4 - ldr r1, _080AB924 - movs r4, 0 - strb r0, [r1, 0x12] - bl sub_80AFE30 - bl sub_80B0034 - bl sub_80B00C8 - bl sub_80B0324 - bl sub_80B0518 - ldr r1, _080AB928 - strb r4, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r3, 0x3 - strb r3, [r1, 0x2] - movs r2, 0x2 - strb r2, [r1, 0x3] - ldr r0, _080AB92C - strh r4, [r0] - ldr r4, _080AB930 - strb r2, [r4] - ldr r0, _080AB934 - strb r3, [r0] - bl sub_80AE858 - ldr r2, _080AB938 - ldrb r1, [r4] - adds r1, r2 - strb r0, [r1] - bl sub_80B292C - b _080AB946 - .align 2, 0 -_080AB924: .4byte 0x02019204 -_080AB928: .4byte gUnknown_02024A72 -_080AB92C: .4byte gUnknown_020239F8 -_080AB930: .4byte gUnknown_02024C07 -_080AB934: .4byte gUnknown_02024C08 -_080AB938: .4byte gUnknown_02024BE0 -_080AB93C: - movs r0, 0 - mov r1, r10 - strb r0, [r1] - movs r0, 0x1 - b _080AB950 -_080AB946: - mov r2, r10 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r0, 0 -_080AB950: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80AB70C - - thumb_func_start sub_80AB960 -sub_80AB960: @ 80AB960 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _080AB994 - ldrb r2, [r1, 0x8] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x8] - ldrb r1, [r1, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080AB990 - ldr r0, _080AB998 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, _080AB99C - str r0, [r1] -_080AB990: - pop {r0} - bx r0 - .align 2, 0 -_080AB994: .4byte gPaletteFade -_080AB998: .4byte gTasks -_080AB99C: .4byte sub_80AB9A0 - thumb_func_end sub_80AB960 - - thumb_func_start sub_80AB9A0 -sub_80AB9A0: @ 80AB9A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AB9C4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _080ABA7C - lsls r0, 2 - ldr r1, _080AB9C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AB9C4: .4byte gTasks -_080AB9C8: .4byte _080AB9CC - .align 2, 0 -_080AB9CC: - .4byte _080AB9E0 - .4byte _080ABA0A - .4byte _080ABA28 - .4byte _080ABA44 - .4byte _080ABA7C -_080AB9E0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0xA] - adds r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080ABA9C - movs r0, 0 - strh r0, [r4, 0xA] - movs r0, 0x61 - movs r1, 0 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABA9C -_080ABA0A: - ldr r1, _080ABA24 - ldrh r0, [r1] - adds r0, 0x7 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _080ABA9C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - b _080ABA68 - .align 2, 0 -_080ABA24: .4byte gUnknown_030041B4 -_080ABA28: - bl sub_80B2280 - ldr r0, _080ABA40 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080ABA9C - .align 2, 0 -_080ABA40: .4byte gTasks -_080ABA44: - ldr r3, _080ABA70 - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldr r2, _080ABA74 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - bl sub_80B1B14 - ldr r1, _080ABA78 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 -_080ABA68: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080ABA9C - .align 2, 0 -_080ABA70: .4byte REG_BG0CNT -_080ABA74: .4byte REG_BG2CNT -_080ABA78: .4byte gTasks -_080ABA7C: - ldr r0, _080ABAA4 - ldrb r1, [r0, 0x6] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080ABA9C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - ldr r1, _080ABAA8 - str r1, [r0] -_080ABA9C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABAA4: .4byte 0x02019204 -_080ABAA8: .4byte sub_80ABB70 - thumb_func_end sub_80AB9A0 - - thumb_func_start sub_80ABAAC -sub_80ABAAC: @ 80ABAAC - push {lr} - bl AnimateSprites - bl RunTasks - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80ABAAC - - thumb_func_start sub_80ABAC4 -sub_80ABAC4: @ 80ABAC4 - push {lr} - ldr r1, _080ABB3C - ldr r0, _080ABB40 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB44 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB48 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB4C - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB50 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB54 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB58 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB5C - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x22 - ldr r0, _080ABB60 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080ABB64 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - ldr r0, _080ABB68 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080ABB6C - ldrh r0, [r0] - strh r0, [r1] - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080ABB3C: .4byte REG_BG0HOFS -_080ABB40: .4byte gUnknown_030042A4 -_080ABB44: .4byte gUnknown_030042A0 -_080ABB48: .4byte gUnknown_030042C0 -_080ABB4C: .4byte gUnknown_030041B4 -_080ABB50: .4byte gUnknown_03004288 -_080ABB54: .4byte gUnknown_03004280 -_080ABB58: .4byte gUnknown_030041B0 -_080ABB5C: .4byte gUnknown_030041B8 -_080ABB60: .4byte gUnknown_030042C4 -_080ABB64: .4byte gUnknown_03004240 -_080ABB68: .4byte gUnknown_03004200 -_080ABB6C: .4byte gUnknown_03004244 - thumb_func_end sub_80ABAC4 - - thumb_func_start sub_80ABB70 -sub_80ABB70: @ 80ABB70 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080ABBB0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080ABBB4 - strh r1, [r0] - bl sub_80B0D7C - ldr r1, _080ABBB8 - ldr r2, _080ABBBC - ldr r0, _080ABBC0 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080ABBC4 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080ABBC8 - ldrb r0, [r0] - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080ABBD4 - ldr r0, _080ABBCC - ldr r1, _080ABBD0 - bl StringCopy - b _080ABBDC - .align 2, 0 -_080ABBB0: .4byte gUnknown_030042A0 -_080ABBB4: .4byte gUnknown_03004280 -_080ABBB8: .4byte gPlttBufferUnfaded -_080ABBBC: .4byte 0x02018204 -_080ABBC0: .4byte 0x040000d4 -_080ABBC4: .4byte 0x84000100 -_080ABBC8: .4byte gUnknown_02038695 -_080ABBCC: .4byte gUnknown_020238CC -_080ABBD0: .4byte gUnknown_083CAF84 -_080ABBD4: - ldr r0, _080ABC20 - ldr r1, _080ABC24 - bl StringCopy -_080ABBDC: - ldr r5, _080ABC20 - ldr r0, _080ABC28 - ldrb r1, [r0, 0x1] - adds r1, 0x1 - adds r0, r5, 0 - bl sub_80AE020 - bl sub_80AF138 - ldr r4, _080ABC2C - adds r0, r4, 0 - adds r1, r5, 0 - bl StringExpandPlaceholders - ldr r0, _080ABC30 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080ABC34 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ABC38 - str r1, [r0] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ABC20: .4byte gUnknown_020238CC -_080ABC24: .4byte gUnknown_083CAFAE -_080ABC28: .4byte 0x02019204 -_080ABC2C: .4byte gStringVar4 -_080ABC30: .4byte gMenuWindow -_080ABC34: .4byte gTasks -_080ABC38: .4byte sub_80ABC3C - thumb_func_end sub_80ABB70 - - thumb_func_start sub_80ABC3C -sub_80ABC3C: @ 80ABC3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080ABC64 - bl sub_80037A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080ABC5E - ldr r0, _080ABC68 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABC6C - str r0, [r1] -_080ABC5E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABC64: .4byte gMenuWindow -_080ABC68: .4byte gTasks -_080ABC6C: .4byte sub_80ABC70 - thumb_func_end sub_80ABC3C - - thumb_func_start sub_80ABC70 -sub_80ABC70: @ 80ABC70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, _080ABCB0 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080ABC88 - cmp r1, 0x2 - bne _080ABCCE -_080ABC88: - movs r0, 0x5 - bl PlaySE - ldr r0, _080ABCB4 - ldrb r0, [r0] - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080ABCC0 - movs r0, 0x1 - bl sub_80AFFE0 - ldr r0, _080ABCB8 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABCBC - b _080ABCCC - .align 2, 0 -_080ABCB0: .4byte gMain -_080ABCB4: .4byte gUnknown_02038695 -_080ABCB8: .4byte gTasks -_080ABCBC: .4byte sub_80ABCDC -_080ABCC0: - ldr r0, _080ABCD4 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABCD8 -_080ABCCC: - str r0, [r1] -_080ABCCE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ABCD4: .4byte gTasks -_080ABCD8: .4byte sub_80AC0C8 - thumb_func_end sub_80ABC70 - - thumb_func_start sub_80ABCDC -sub_80ABCDC: @ 80ABCDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - ldr r0, _080ABD80 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080ABD84 - strh r1, [r0] - ldr r5, _080ABD88 - ldr r4, _080ABD8C - ldrb r2, [r4] - ldrb r3, [r4, 0x1] - ldrb r0, [r4, 0x2] - str r0, [sp] - ldrb r0, [r4, 0x3] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - bl FillWindowRect_DefaultPalette - movs r6, 0 - ldr r0, _080ABD90 - mov r8, r0 - ldr r7, _080ABD94 - mov r9, r5 - mov r10, r4 -_080ABD1C: - lsls r1, r6, 1 - mov r3, r8 - ldrb r2, [r3] - lsls r0, r2, 6 - adds r1, r0 - ldr r0, _080ABD98 - adds r1, r0 - ldrh r4, [r1] - add r5, sp, 0x8 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r7 - ldrh r0, [r0, 0x8] - cmp r0, 0 - beq _080ABDA0 - adds r0, r2, 0 - bl sub_80B214C - lsls r0, 24 - cmp r0, 0 - beq _080ABDA0 - mov r2, r8 - ldrb r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r0, [r0, 0x8] - adds r1, r4, 0 - bl AreMovesContestCombo - lsls r0, 24 - cmp r0, 0 - beq _080ABDA0 - mov r3, r8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080ABDA0 - add r0, sp, 0x8 - ldr r1, _080ABD9C - b _080ABDC6 - .align 2, 0 -_080ABD80: .4byte gUnknown_030042A0 -_080ABD84: .4byte gUnknown_03004280 -_080ABD88: .4byte gUnknown_03004210 -_080ABD8C: .4byte gUnknown_083CA340 -_080ABD90: .4byte gUnknown_02038695 -_080ABD94: .4byte 0x02019260 -_080ABD98: .4byte gUnknown_0203858E -_080ABD9C: .4byte gUnknownText_UnknownFormatting2 -_080ABDA0: - cmp r4, 0 - beq _080ABDCC - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r7 - ldrh r0, [r1, 0x8] - cmp r0, r4 - bne _080ABDCC - ldr r0, _080ABE74 - lsls r1, r4, 3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - beq _080ABDCC - add r0, sp, 0x8 - ldr r1, _080ABE78 -_080ABDC6: - bl StringCopy - adds r5, r0, 0 -_080ABDCC: - movs r0, 0xD - adds r1, r4, 0 - muls r1, r0 - ldr r0, _080ABE7C - adds r1, r0 - adds r0, r5, 0 - bl StringCopy - lsls r1, r6, 2 - adds r2, r1, r6 - lsls r2, 18 - movs r3, 0xC2 - lsls r3, 18 - adds r2, r3 - lsrs r2, 16 - mov r3, r10 - adds r0, r1, r3 - ldrb r3, [r0] - lsls r3, 3 - adds r3, 0x4 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _080ABE80 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 3 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r9 - add r1, sp, 0x8 - bl sub_8002E4C - mov r0, r9 - bl sub_8002F44 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bhi _080ABE20 - b _080ABD1C -_080ABE20: - ldr r1, _080ABE84 - ldr r3, _080ABE88 - movs r0, 0x48 - str r0, [sp] - movs r0, 0 - movs r2, 0xC - bl sub_814A5C0 - ldr r4, _080ABE8C - movs r0, 0 - ldrsb r0, [r4, r0] - bl sub_80AC0AC - ldr r2, _080ABE90 - ldrb r1, [r4] - lsls r1, 1 - ldr r0, _080ABE94 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl sub_80AEBEC - ldr r1, _080ABE98 - ldr r2, [sp, 0x28] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ABE9C - str r1, [r0] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABE74: .4byte gContestMoves -_080ABE78: .4byte gUnknownText_UnknownFormatting3 -_080ABE7C: .4byte gMoveNames -_080ABE80: .4byte gUnknown_083CA340 + 0x1 -_080ABE84: .4byte 0x0000ffff -_080ABE88: .4byte 0x00002d9f -_080ABE8C: .4byte 0x02019204 -_080ABE90: .4byte gUnknown_02038570 -_080ABE94: .4byte gUnknown_02038695 -_080ABE98: .4byte gTasks -_080ABE9C: .4byte sub_80ABEA0 - thumb_func_end sub_80ABCDC - - thumb_func_start sub_80ABEA0 -sub_80ABEA0: @ 80ABEA0 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r3, _080ABEF4 - ldr r1, _080ABEF8 - ldr r0, _080ABEFC - ldrb r0, [r0] - lsls r0, 6 - adds r1, 0x1E - adds r1, r0, r1 - movs r2, 0x3 -_080ABEBA: - ldrh r0, [r1] - cmp r0, 0 - beq _080ABEC6 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080ABEC6: - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080ABEBA - ldrh r0, [r3, 0x2E] - movs r5, 0x1 - ands r5, r0 - cmp r5, 0 - beq _080ABF08 - bl sub_814A7FC - movs r0, 0x5 - bl PlaySE - ldr r0, _080ABF00 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABF04 - str r0, [r1] - b _080AC098 - .align 2, 0 -_080ABEF4: .4byte gMain -_080ABEF8: .4byte gUnknown_02038570 -_080ABEFC: .4byte gUnknown_02038695 -_080ABF00: .4byte gTasks -_080ABF04: .4byte sub_80AC0C8 -_080ABF08: - ldrh r0, [r3, 0x30] - cmp r0, 0x20 - bne _080ABF10 - b _080AC098 -_080ABF10: - cmp r0, 0x20 - bgt _080ABF1A - cmp r0, 0x2 - beq _080ABF26 - b _080AC098 -_080ABF1A: - cmp r0, 0x40 - beq _080ABFEC - cmp r0, 0x80 - bne _080ABF24 - b _080AC048 -_080ABF24: - b _080AC098 -_080ABF26: - bl sub_814A904 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80AFFE0 - ldr r0, _080ABF64 - ldr r1, _080ABF68 - ldrb r2, [r1] - ldrb r3, [r1, 0x1] - ldrb r4, [r1, 0x2] - str r4, [sp] - ldrb r1, [r1, 0x3] - str r1, [sp, 0x4] - movs r1, 0 - bl FillWindowRect_DefaultPalette - ldr r0, _080ABF6C - ldrb r0, [r0] - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080ABF78 - ldr r0, _080ABF70 - ldr r1, _080ABF74 - bl StringCopy - b _080ABF80 - .align 2, 0 -_080ABF64: .4byte gUnknown_03004210 -_080ABF68: .4byte gUnknown_083CA340 -_080ABF6C: .4byte gUnknown_02038695 -_080ABF70: .4byte gUnknown_020238CC -_080ABF74: .4byte gUnknown_083CAF84 -_080ABF78: - ldr r0, _080ABFC8 - ldr r1, _080ABFCC - bl StringCopy -_080ABF80: - ldr r5, _080ABFC8 - ldr r0, _080ABFD0 - ldrb r1, [r0, 0x1] - adds r1, 0x1 - adds r0, r5, 0 - bl sub_80AE020 - bl sub_80AF138 - ldr r4, _080ABFD4 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringExpandPlaceholders - ldr r0, _080ABFD8 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8003460 - ldr r0, _080ABFDC - movs r1, 0 - strh r1, [r0] - ldr r0, _080ABFE0 - strh r1, [r0] - ldr r1, _080ABFE4 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ABFE8 - str r1, [r0] - b _080AC098 - .align 2, 0 -_080ABFC8: .4byte gUnknown_020238CC -_080ABFCC: .4byte gUnknown_083CAFAE -_080ABFD0: .4byte 0x02019204 -_080ABFD4: .4byte gStringVar4 -_080ABFD8: .4byte gMenuWindow -_080ABFDC: .4byte gUnknown_030042A0 -_080ABFE0: .4byte gUnknown_03004280 -_080ABFE4: .4byte gTasks -_080ABFE8: .4byte sub_80ABC70 -_080ABFEC: - ldr r4, _080AC000 - movs r0, 0 - ldrsb r0, [r4, r0] - bl nullsub_17 - ldrb r0, [r4] - cmp r0, 0 - bne _080AC004 - subs r0, r6, 0x1 - b _080AC006 - .align 2, 0 -_080AC000: .4byte 0x02019204 -_080AC004: - subs r0, 0x1 -_080AC006: - strb r0, [r4] - ldr r4, _080AC03C - movs r0, 0 - ldrsb r0, [r4, r0] - bl sub_80AC0AC - bl sub_80AED58 - ldr r2, _080AC040 - ldrb r1, [r4] - lsls r1, 1 - ldr r0, _080AC044 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl sub_80AEBEC - cmp r6, 0x1 - bls _080AC098 - movs r0, 0x5 - bl PlaySE - b _080AC098 - .align 2, 0 -_080AC03C: .4byte 0x02019204 -_080AC040: .4byte gUnknown_02038570 -_080AC044: .4byte gUnknown_02038695 -_080AC048: - ldr r4, _080AC060 - movs r0, 0 - ldrsb r0, [r4, r0] - bl nullsub_17 - ldrb r1, [r4] - subs r0, r6, 0x1 - cmp r1, r0 - bne _080AC064 - strb r5, [r4] - b _080AC068 - .align 2, 0 -_080AC060: .4byte 0x02019204 -_080AC064: - adds r0, r1, 0x1 - strb r0, [r4] -_080AC068: - ldr r4, _080AC0A0 - movs r0, 0 - ldrsb r0, [r4, r0] - bl sub_80AC0AC - bl sub_80AED58 - ldr r2, _080AC0A4 - ldrb r1, [r4] - lsls r1, 1 - ldr r0, _080AC0A8 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl sub_80AEBEC - cmp r6, 0x1 - bls _080AC098 - movs r0, 0x5 - bl PlaySE -_080AC098: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AC0A0: .4byte 0x02019204 -_080AC0A4: .4byte gUnknown_02038570 -_080AC0A8: .4byte gUnknown_02038695 - thumb_func_end sub_80ABEA0 - - thumb_func_start sub_80AC0AC -sub_80AC0AC: @ 80AC0AC - push {lr} - adds r1, r0, 0 - lsls r1, 28 - movs r0, 0xB0 - lsls r0, 23 - adds r1, r0 - lsrs r1, 24 - movs r0, 0x4 - bl sub_814A880 - pop {r0} - bx r0 - thumb_func_end sub_80AC0AC - - thumb_func_start nullsub_17 -nullsub_17: @ 80AC0C4 - bx lr - thumb_func_end nullsub_17 - - thumb_func_start sub_80AC0C8 -sub_80AC0C8: @ 80AC0C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080AC120 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AC13C - ldr r4, _080AC124 - ldrb r0, [r4] - bl sub_80AF15C - ldrb r2, [r4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r2, _080AC128 - adds r1, r2 - strh r0, [r1, 0x6] - ldr r4, _080AC12C - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AC130 - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080AC134 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080AC138 - str r1, [r0] - bl sub_80AF860 - movs r0, 0 - bl sub_80AFFE0 - b _080AC14E - .align 2, 0 -_080AC120: .4byte gUnknown_0203869A -_080AC124: .4byte gUnknown_02038695 -_080AC128: .4byte 0x02019260 -_080AC12C: .4byte sub_80C8A38 -_080AC130: .4byte sub_80AC15C -_080AC134: .4byte gTasks -_080AC138: .4byte nullsub_89 -_080AC13C: - bl sub_80AF1B8 - ldr r0, _080AC154 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AC158 - str r0, [r1] -_080AC14E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC154: .4byte gTasks -_080AC158: .4byte sub_80AC188 - thumb_func_end sub_80AC0C8 - - thumb_func_start sub_80AC15C -sub_80AC15C: @ 80AC15C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r2, _080AC17C - ldr r0, _080AC180 - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080AC184 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080AC17C: .4byte gTasks -_080AC180: .4byte 0x02019204 -_080AC184: .4byte sub_80AC188 - thumb_func_end sub_80AC15C - - thumb_func_start sub_80AC188 -sub_80AC188: @ 80AC188 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl sub_80AF138 - ldr r0, _080AC1E4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AC1E8 - strh r1, [r0] - movs r0, 0 - bl sub_80AFFE0 - ldr r1, _080AC1EC - ldr r0, _080AC1F0 - movs r2, 0x80 - lsls r2, 3 - ldr r4, _080AC1F4 - str r1, [r4] - str r0, [r4, 0x4] - lsrs r1, r2, 2 - movs r3, 0x84 - lsls r3, 24 - orrs r1, r3 - str r1, [r4, 0x8] - ldr r1, [r4, 0x8] - ldr r1, _080AC1F8 - adds r0, r1 - movs r1, 0 - bl LoadPalette - ldr r1, _080AC1FC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - ldr r1, _080AC200 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC1E4: .4byte gUnknown_030042A0 -_080AC1E8: .4byte gUnknown_03004280 -_080AC1EC: .4byte gPlttBufferFaded -_080AC1F0: .4byte 0x02018604 -_080AC1F4: .4byte 0x040000d4 -_080AC1F8: .4byte 0xfffffc00 -_080AC1FC: .4byte gTasks -_080AC200: .4byte sub_80AC204 - thumb_func_end sub_80AC188 - - thumb_func_start sub_80AC204 -sub_80AC204: @ 80AC204 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AC248 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC242 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080AC242 - bl sub_80B1BDC - movs r0, 0x1 - bl sub_80B25E4 - ldr r0, _080AC24C - str r0, [r4] -_080AC242: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC248: .4byte gTasks -_080AC24C: .4byte sub_80AC250 - thumb_func_end sub_80AC204 - - thumb_func_start sub_80AC250 -sub_80AC250: @ 80AC250 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080AC278 - ldrh r1, [r0, 0x6] - movs r0, 0x90 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _080AC272 - ldr r0, _080AC27C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AC280 - str r0, [r1] -_080AC272: - pop {r0} - bx r0 - .align 2, 0 -_080AC278: .4byte 0x02019204 -_080AC27C: .4byte gTasks -_080AC280: .4byte sub_80AC284 - thumb_func_end sub_80AC250 - - thumb_func_start sub_80AC284 -sub_80AC284: @ 80AC284 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AC2BC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080AC2B6 - ldr r1, _080AC2C0 - movs r0, 0 - strb r0, [r1, 0x10] - ldr r0, _080AC2C4 - ldr r0, [r0] - str r0, [r1, 0x18] - movs r0, 0 - strh r0, [r2, 0x8] - ldr r0, _080AC2C8 - str r0, [r2] -_080AC2B6: - pop {r0} - bx r0 - .align 2, 0 -_080AC2BC: .4byte gTasks -_080AC2C0: .4byte 0x02019204 -_080AC2C4: .4byte gRngValue -_080AC2C8: .4byte sub_80AC2CC - thumb_func_end sub_80AC284 - - thumb_func_start sub_80AC2CC -sub_80AC2CC: @ 80AC2CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _080AC308 - ldrb r7, [r2, 0x11] - ldr r1, _080AC30C - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r0, [r0, r3] - adds r6, r2, 0 - mov r12, r1 - cmp r0, 0x3B - bls _080AC2FC - bl _080AD8CA -_080AC2FC: - lsls r0, 2 - ldr r1, _080AC310 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AC308: .4byte 0x02019204 -_080AC30C: .4byte gTasks -_080AC310: .4byte _080AC314 - .align 2, 0 -_080AC314: - .4byte _080AC404 - .4byte _080AC4B4 - .4byte _080AC4D4 - .4byte _080AC534 - .4byte _080AC5E8 - .4byte _080AC638 - .4byte _080AC6F8 - .4byte _080AC730 - .4byte _080AC77C - .4byte _080AC7F4 - .4byte _080AD750 - .4byte _080AD77C - .4byte _080AC98C - .4byte _080AC9C0 - .4byte _080ACEC0 - .4byte _080ACFD4 - .4byte _080AD040 - .4byte _080AD070 - .4byte _080AD168 - .4byte _080AD11A - .4byte _080AD7B8 - .4byte _080AD868 - .4byte _080AD88C - .4byte _080AC81E - .4byte _080AC8CC - .4byte _080ACAD8 - .4byte _080ACAEE - .4byte _080ACBB0 - .4byte _080ACBDC - .4byte _080ACC44 - .4byte _080ACD2A - .4byte _080AD7E8 - .4byte _080AD840 - .4byte _080AD648 - .4byte _080AD6D8 - .4byte _080AC9EC - .4byte _080ACA24 - .4byte _080ACA44 - .4byte _080ACA84 - .4byte _080ACC98 - .4byte _080ACD00 - .4byte _080AD1A4 - .4byte _080AD8CA - .4byte _080AD514 - .4byte _080AD8CA - .4byte _080ACFA8 - .4byte _080AD0FA - .4byte _080AC96C - .4byte _080AC8F8 - .4byte _080AC94C - .4byte _080ACAAE - .4byte _080ACDC8 - .4byte _080ACE64 - .4byte _080AD316 - .4byte _080AD3D0 - .4byte _080AD700 - .4byte _080AD71C - .4byte _080AD53C - .4byte _080AD5D0 - .4byte _080AD624 -_080AC404: - bl sub_80B0D7C - movs r6, 0 - ldr r0, _080AC484 - adds r1, r0, 0 - adds r1, 0xCC - ldrb r0, [r0, 0x10] - mov r4, r8 - lsls r4, 2 - mov r9, r4 - ldrb r5, [r1] - cmp r0, r5 - beq _080AC42C - adds r2, r1, 0 - adds r1, r0, 0 -_080AC422: - adds r6, 0x1 - adds r0, r6, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080AC422 -_080AC42C: - ldr r4, _080AC484 - strb r6, [r4, 0x11] - ldrb r7, [r4, 0x11] - ldr r0, _080AC488 - ldrb r1, [r0] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080AC498 - ldrb r0, [r4, 0x7] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x7] - bl sub_80AE074 - lsls r0, 24 - cmp r0, 0 - beq _080AC458 - ldrb r0, [r4, 0x11] - bl sub_80B114C -_080AC458: - ldr r4, _080AC48C - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AC490 - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - bl sub_80AF860 - ldr r1, _080AC494 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC484: .4byte 0x02019204 -_080AC488: .4byte gUnknown_0203869A -_080AC48C: .4byte sub_80C8C80 -_080AC490: .4byte sub_80AD8DC -_080AC494: .4byte gTasks -_080AC498: - adds r0, r7, 0 - bl sub_80B114C - ldr r0, _080AC4B0 - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC4B0: .4byte gTasks -_080AC4B4: - ldrb r1, [r6, 0x7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AC4C2 - bl _080AD8CA -_080AC4C2: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x2 - strh r1, [r0, 0x8] - bl _080AD8CA -_080AC4D4: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AC508 - adds r2, r0, r1 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080AC4F6 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _080AC50C -_080AC4F6: - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x1F - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC508: .4byte 0x02019260 -_080AC50C: - bl sub_80AF138 - adds r0, r7, 0 - movs r1, 0 - bl sub_80B0CDC - ldr r0, _080AC530 - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - strh r6, [r1, 0x1C] - movs r0, 0x3 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC530: .4byte gTasks -_080AC534: - mov r4, r8 - lsls r4, 2 - mov r9, r4 - ldr r4, _080AC5C4 - ldr r1, _080AC5C8 - movs r2, 0 - adds r0, r1, 0x3 -_080AC542: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _080AC542 - movs r6, 0x4 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x14 - bl memset - ldr r5, _080AC5CC - adds r7, r4, r5 - ldrb r0, [r7, 0x11] - bl sub_80B28F0 - ldr r3, _080AC5D0 - ldrb r2, [r7, 0x11] - lsls r2, 6 - adds r0, r2, r3 - ldrh r0, [r0] - adds r1, r3, 0 - adds r1, 0x3C - adds r1, r2, r1 - ldr r1, [r1] - adds r3, 0x38 - adds r2, r3 - ldr r2, [r2] - bl sub_80AE9FC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080AC5D4 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r3, r0, r2 - movs r1, 0x78 - strh r1, [r3, 0x24] - adds r2, 0x1C - adds r0, r2 - ldr r1, _080AC5D8 - str r1, [r0] - ldr r0, _080AC5DC - mov r4, r9 - add r4, r8 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0xC] - ldr r1, _080AC5E0 - ldr r0, _080AC5E4 - ldrb r0, [r0] - adds r0, r1 - strb r5, [r0] - ldrb r0, [r7, 0x11] - bl sub_80B09E4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80B0BC4 - strh r6, [r4, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC5C4: .4byte 0x02019348 -_080AC5C8: .4byte gUnknown_02024E84 -_080AC5CC: .4byte 0xfffffebc -_080AC5D0: .4byte gUnknown_02038570 -_080AC5D4: .4byte gSprites -_080AC5D8: .4byte sub_80AD8FC -_080AC5DC: .4byte gTasks -_080AC5E0: .4byte gUnknown_02024BE0 -_080AC5E4: .4byte gUnknown_02024C07 -_080AC5E8: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - mov r3, r12 - adds r2, r0, r3 - ldrb r5, [r2, 0xC] - ldr r1, _080AC62C - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _080AC630 - cmp r1, r0 - beq _080AC60E - bl _080AD8CA -_080AC60E: - lsls r0, r7, 2 - ldr r1, _080AC634 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080AC622 - bl _080AD8CA -_080AC622: - movs r0, 0x5 - strh r0, [r2, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC62C: .4byte gSprites -_080AC630: .4byte SpriteCallbackDummy -_080AC634: .4byte 0x02019338 -_080AC638: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AC660 - adds r5, r0, r1 - ldrb r1, [r5, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AC664 - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x21 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC660: .4byte 0x02019260 -_080AC664: - bl sub_80AF138 - ldr r0, _080AC690 - lsls r1, r7, 6 - ldr r2, _080AC694 - adds r1, r2 - bl StringCopy - ldrh r1, [r5, 0x6] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bhi _080AC6A0 - ldr r0, _080AC698 - adds r2, r1, 0 - movs r1, 0xD - muls r1, r2 - ldr r2, _080AC69C - adds r1, r2 - bl StringCopy - b _080AC6B0 - .align 2, 0 -_080AC690: .4byte gStringVar1 -_080AC694: .4byte gUnknown_02038572 -_080AC698: .4byte gStringVar2 -_080AC69C: .4byte gMoveNames -_080AC6A0: - ldr r0, _080AC6E0 - ldr r2, _080AC6E4 - ldrb r1, [r5, 0xA] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy -_080AC6B0: - ldr r4, _080AC6E8 - ldr r1, _080AC6EC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AC6F0 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AC6F4 - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC6E0: .4byte gStringVar2 -_080AC6E4: .4byte gUnknown_083CC330 -_080AC6E8: .4byte gStringVar4 -_080AC6EC: .4byte gUnknown_083CAFD7 -_080AC6F0: .4byte gMenuWindow -_080AC6F4: .4byte gTasks -_080AC6F8: - ldr r0, _080AC724 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AC708 - bl _080AD8CA -_080AC708: - ldr r0, _080AC728 - adds r0, 0x5A - movs r1, 0 - strb r1, [r0] - ldr r1, _080AC72C - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x7 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC724: .4byte gMenuWindow -_080AC728: .4byte 0x02019204 -_080AC72C: .4byte gTasks -_080AC730: - ldrb r1, [r6, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x5C - adds r0, r1 - ldrh r0, [r0, 0x6] - bl sub_80B2760 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6, 0x11] - bl sub_80B2790 - ldrb r0, [r6, 0x11] - bl sub_80B28F0 - adds r0, r4, 0 - bl sub_80B29B4 - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r1, _080AC778 - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC778: .4byte gTasks -_080AC77C: - ldr r0, _080AC7B8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080AC7BC - ldrb r4, [r0] - cmp r4, 0 - beq _080AC790 - bl _080AD8CA -_080AC790: - adds r0, r7, 0 - bl unref_sub_80B28CC - ldr r1, _080AC7C0 - adds r0, r1, 0 - adds r0, 0x5A - ldrb r0, [r0] - cmp r0, 0 - beq _080AC7C8 - ldr r0, _080AC7C4 - mov r5, r8 - lsls r1, r5, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - strh r4, [r1, 0x1C] - movs r0, 0x9 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC7B8: .4byte gUnknown_0202F7AC -_080AC7BC: .4byte gUnknown_0202F7B1 -_080AC7C0: .4byte 0x02019204 -_080AC7C4: .4byte gTasks -_080AC7C8: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r1, 0x5C - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080AC7E2 - adds r0, r7, 0 - bl sub_80B03A8 -_080AC7E2: - bl unref_sub_80B20C4 - ldr r0, _080AC7F0 - mov r2, r8 - lsls r1, r2, 2 - b _080AC8E2 - .align 2, 0 -_080AC7F0: .4byte gTasks -_080AC7F4: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - mov r4, r12 - adds r2, r0, r4 - ldrh r0, [r2, 0x1C] - adds r1, r0, 0x1 - strh r1, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - bgt _080AC812 - bl _080AD8CA -_080AC812: - movs r0, 0 - strh r0, [r2, 0x1C] - movs r0, 0x7 - strh r0, [r2, 0x8] - bl _080AD8CA -_080AC81E: - mov r5, r8 - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - mov r1, r12 - adds r4, r0, r1 - movs r0, 0 - strh r0, [r4, 0xA] - lsls r2, r7, 3 - subs r0, r2, r7 - lsls r0, 2 - ldr r1, _080AC858 - adds r6, r0, r1 - ldrb r0, [r6, 0x13] - mov r9, r3 - mov r10, r2 - adds r3, r1, 0 - cmp r0, 0xFF - beq _080AC85C - adds r1, r0, 0 - adds r0, r7, 0 - bl sub_80B146C - movs r0, 0xFF - strb r0, [r6, 0x13] - movs r0, 0x18 - strh r0, [r4, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC858: .4byte 0x02019260 -_080AC85C: - ldrb r0, [r6, 0x14] - cmp r0, 0xFF - beq _080AC8C4 - movs r6, 0 - cmp r6, r7 - beq _080AC86E - ldrb r0, [r3, 0x13] - cmp r0, 0xFF - bne _080AC886 -_080AC86E: - adds r6, 0x1 - cmp r6, 0x3 - bgt _080AC886 - cmp r6, r7 - beq _080AC86E - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x13] - cmp r0, 0xFF - beq _080AC86E -_080AC886: - cmp r6, 0x4 - bne _080AC8B4 - mov r2, r10 - subs r4, r2, r7 - lsls r4, 2 - adds r4, r3 - ldrb r1, [r4, 0x14] - adds r0, r7, 0 - bl sub_80B146C - movs r0, 0xFF - strb r0, [r4, 0x14] - ldr r1, _080AC8B0 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC8B0: .4byte gTasks -_080AC8B4: - mov r0, r9 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x30 - strh r1, [r0, 0x8] - bl _080AD8CA -_080AC8C4: - movs r0, 0x30 - strh r0, [r4, 0x8] - bl _080AD8CA -_080AC8CC: - ldr r0, _080AC8F0 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AC8DC - bl _080AD8CA -_080AC8DC: - ldr r0, _080AC8F4 - mov r3, r8 - lsls r1, r3, 2 -_080AC8E2: - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x17 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC8F0: .4byte gMenuWindow -_080AC8F4: .4byte gTasks -_080AC8F8: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AC914 - adds r0, r1 - ldrb r0, [r0, 0x11] - movs r3, 0x3 - ands r3, r0 - cmp r3, 0x1 - bne _080AC918 - movs r0, 0x5 - bl sub_80B1710 - b _080AC934 - .align 2, 0 -_080AC914: .4byte 0x02019260 -_080AC918: - cmp r3, 0x2 - bne _080AC924 - movs r0, 0x6 - bl sub_80B1710 - b _080AC934 -_080AC924: - cmp r3, 0x3 - beq _080AC92E - mov r4, r8 - lsls r0, r4, 2 - b _080AC95E -_080AC92E: - movs r0, 0x7 - bl sub_80B1710 -_080AC934: - ldr r0, _080AC948 - mov r5, r8 - lsls r1, r5, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x31 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC948: .4byte gTasks -_080AC94C: - ldrb r1, [r6, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AC95A - bl _080AD8CA -_080AC95A: - mov r1, r8 - lsls r0, r1, 2 -_080AC95E: - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x2F - strh r1, [r0, 0x8] - bl _080AD8CA -_080AC96C: - movs r0, 0x1 - bl sub_80B1FD0 - ldr r0, _080AC988 - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0xC - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC988: .4byte gTasks -_080AC98C: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AC9B8 - adds r0, r1 - movs r3, 0x2 - ldrsh r1, [r0, r3] - movs r0, 0 - adds r2, r7, 0 - bl sub_80AFBA0 - ldr r1, _080AC9BC - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0xD - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AC9B8: .4byte 0x02019260 -_080AC9BC: .4byte gTasks -_080AC9C0: - ldrb r0, [r6, 0x11] - lsls r0, 2 - movs r5, 0x9A - lsls r5, 1 - adds r1, r6, r5 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AC9DA - bl _080AD8CA -_080AC9DA: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x23 - strh r1, [r0, 0x8] - bl _080AD8CA -_080AC9EC: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080ACA1C - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0x10 - bne _080ACA06 - movs r0, 0x8 - bl sub_80B1710 -_080ACA06: - ldr r0, _080ACA20 - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x24 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACA1C: .4byte 0x02019260 -_080ACA20: .4byte gTasks -_080ACA24: - ldrb r1, [r6, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080ACA32 - bl _080AD8CA -_080ACA32: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x25 - strh r1, [r0, 0x8] - bl _080AD8CA -_080ACA44: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_80AEE54 - lsls r0, 24 - cmp r0, 0 - beq _080ACA70 - ldr r1, _080ACA6C - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r1, 0x26 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACA6C: .4byte gTasks -_080ACA70: - ldr r0, _080ACA80 - mov r5, r8 - lsls r1, r5, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - b _080ACAA6 - .align 2, 0 -_080ACA80: .4byte gTasks -_080ACA84: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080ACAA2 - bl _080AD8CA -_080ACAA2: - movs r0, 0 - strh r0, [r1, 0x1C] -_080ACAA6: - movs r0, 0x32 - strh r0, [r1, 0x8] - bl _080AD8CA -_080ACAAE: - adds r0, r7, 0 - bl sub_80AF038 - lsls r0, 24 - cmp r0, 0 - beq _080ACAC0 - movs r0, 0x63 - bl PlaySE -_080ACAC0: - ldr r0, _080ACAD4 - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x19 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACAD4: .4byte gTasks -_080ACAD8: - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0 - strh r1, [r0, 0xA] - movs r1, 0x1A - strh r1, [r0, 0x8] - bl _080AD8CA -_080ACAEE: - movs r2, 0 - movs r4, 0 - mov r5, r8 - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - add r0, r12 - movs r3, 0xA - ldrsh r6, [r0, r3] - mov r9, r1 - cmp r6, 0x3 - bgt _080ACB58 - ldr r3, _080ACB24 - ldr r1, _080ACB28 -_080ACB0A: - movs r4, 0 - movs r2, 0 - cmp r4, r7 - beq _080ACB2C - ldrb r0, [r3] - cmp r0, r6 - bne _080ACB2C - ldrb r0, [r1, 0x13] - cmp r0, 0xFF - beq _080ACB2C - movs r4, 0x1 - b _080ACB60 - .align 2, 0 -_080ACB24: .4byte gUnknown_02038696 -_080ACB28: .4byte 0x02019260 -_080ACB2C: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080ACB4E - cmp r2, r7 - beq _080ACB2C - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r6 - bne _080ACB2C - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0xFF - beq _080ACB2C - movs r4, 0x1 -_080ACB4E: - cmp r4, 0 - bne _080ACB60 - adds r6, 0x1 - cmp r6, 0x3 - ble _080ACB0A -_080ACB58: - lsls r0, r4, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080ACB98 -_080ACB60: - mov r5, r9 - add r5, r8 - lsls r5, 3 - add r5, r12 - ldr r0, _080ACB90 - adds r0, r2, r0 - ldrb r0, [r0] - strh r0, [r5, 0xA] - lsls r0, r2, 24 - lsrs r0, 24 - lsls r4, r2, 3 - subs r4, r2 - lsls r4, 2 - ldr r1, _080ACB94 - adds r4, r1 - ldrb r1, [r4, 0x13] - bl sub_80B146C - movs r0, 0xFF - strb r0, [r4, 0x13] - movs r0, 0x1B - strh r0, [r5, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACB90: .4byte gUnknown_02038696 -_080ACB94: .4byte 0x02019260 -_080ACB98: - mov r0, r9 - add r0, r8 - lsls r0, 3 - add r0, r12 - strh r1, [r0, 0xA] - strh r1, [r0, 0x1C] - movs r1, 0x33 - strh r1, [r0, 0x8] - bl sub_80AF120 - bl _080AD8CA -_080ACBB0: - ldr r0, _080ACBD4 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080ACBC0 - bl _080AD8CA -_080ACBC0: - ldr r0, _080ACBD8 - mov r4, r8 - lsls r1, r4, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1C - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACBD4: .4byte gMenuWindow -_080ACBD8: .4byte gTasks -_080ACBDC: - movs r6, 0 - mov r5, r8 - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - add r1, r12 - movs r3, 0xA - ldrsh r2, [r1, r3] - ldr r1, _080ACC38 - mov r9, r0 - ldr r3, _080ACC3C - adds r5, r1, 0 - ldrb r4, [r5] - cmp r2, r4 - beq _080ACC08 - adds r1, r2, 0 - adds r2, r5, 0 -_080ACBFE: - adds r6, 0x1 - adds r0, r6, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080ACBFE -_080ACC08: - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0xE] - ldrh r0, [r0, 0x2] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - negs r1, r1 - lsls r2, r6, 24 - lsrs r2, 24 - bl sub_80AFBA0 - ldr r1, _080ACC40 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1D - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACC38: .4byte gUnknown_02038696 -_080ACC3C: .4byte 0x02019260 -_080ACC40: .4byte gTasks -_080ACC44: - movs r6, 0 - mov r5, r8 - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - add r1, r12 - movs r2, 0xA - ldrsh r3, [r1, r2] - ldr r1, _080ACC90 - mov r9, r0 - ldr r2, _080ACC94 - adds r5, r1, 0 - ldrb r4, [r5] - cmp r3, r4 - beq _080ACC6C -_080ACC62: - adds r6, 0x1 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r3, r0 - bne _080ACC62 -_080ACC6C: - lsls r0, r6, 2 - adds r0, r2 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080ACC7E - bl _080AD8CA -_080ACC7E: - mov r0, r9 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x27 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACC90: .4byte gUnknown_02038696 -_080ACC94: .4byte 0x02019338 -_080ACC98: - movs r6, 0 - mov r5, r8 - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - add r1, r12 - movs r3, 0xA - ldrsh r2, [r1, r3] - ldr r1, _080ACCE8 - mov r9, r0 - adds r5, r1, 0 - ldrb r4, [r5] - cmp r2, r4 - beq _080ACCC2 - adds r1, r2, 0 - adds r2, r5, 0 -_080ACCB8: - adds r6, 0x1 - adds r0, r6, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080ACCB8 -_080ACCC2: - lsls r0, r6, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_80AEE54 - lsls r0, 24 - cmp r0, 0 - beq _080ACCF0 - ldr r1, _080ACCEC - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r1, 0x28 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACCE8: .4byte gUnknown_02038696 -_080ACCEC: .4byte gTasks -_080ACCF0: - ldr r0, _080ACCFC - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - b _080ACD22 - .align 2, 0 -_080ACCFC: .4byte gTasks -_080ACD00: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080ACD1E - bl _080AD8CA -_080ACD1E: - movs r0, 0 - strh r0, [r1, 0x1C] -_080ACD22: - movs r0, 0x1E - strh r0, [r1, 0x8] - bl _080AD8CA -_080ACD2A: - movs r6, 0 - ldr r2, _080ACD78 - ldrb r3, [r2] - mov r4, r8 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - mov r5, r12 - adds r4, r0, r5 - movs r5, 0xA - ldrsh r0, [r4, r5] - mov r9, r1 - adds r5, r2, 0 - cmp r3, r0 - beq _080ACD5E - adds r3, r5, 0 - adds r2, r4, 0 -_080ACD4C: - adds r6, 0x1 - cmp r6, 0x3 - bgt _080ACD5E - adds r0, r6, r3 - ldrb r1, [r0] - movs r4, 0xA - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080ACD4C -_080ACD5E: - lsls r4, r6, 24 - lsrs r0, r4, 24 - bl sub_80AF038 - lsls r0, 24 - adds r5, r4, 0 - cmp r0, 0 - beq _080ACD7C - movs r0, 0x63 - bl PlaySE - b _080ACD82 - .align 2, 0 -_080ACD78: .4byte gUnknown_02038696 -_080ACD7C: - movs r0, 0x64 - bl PlaySE -_080ACD82: - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - ldr r1, _080ACDC0 - adds r4, r0, r1 - ldrb r1, [r4, 0x15] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080ACDA6 - lsrs r0, r5, 24 - bl sub_80B03A8 - ldrb r1, [r4, 0x15] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x15] -_080ACDA6: - ldr r0, _080ACDC4 - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x1A - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACDC0: .4byte 0x02019260 -_080ACDC4: .4byte gTasks -_080ACDC8: - mov r5, r8 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - mov r1, r12 - adds r3, r0, r1 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r9, r2 - cmp r0, 0x9 - bgt _080ACDE8 - bl _080AD8CA -_080ACDE8: - movs r0, 0 - strh r0, [r3, 0x1C] - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080ACE48 - adds r2, r0, r1 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080ACE0A - ldrb r1, [r2, 0x11] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080ACE36 -_080ACE0A: - bl sub_80AF138 - ldr r0, _080ACE4C - lsls r1, r7, 6 - ldr r2, _080ACE50 - adds r1, r2 - bl StringCopy - ldr r4, _080ACE54 - ldr r1, _080ACE58 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080ACE5C - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 -_080ACE36: - ldr r0, _080ACE60 - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x34 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACE48: .4byte 0x02019260 -_080ACE4C: .4byte gStringVar1 -_080ACE50: .4byte gUnknown_02038572 -_080ACE54: .4byte gStringVar4 -_080ACE58: .4byte gUnknown_083CC103 -_080ACE5C: .4byte gMenuWindow -_080ACE60: .4byte gTasks -_080ACE64: - ldr r0, _080ACE9C - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080ACE74 - bl _080AD8CA -_080ACE74: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080ACEA0 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080ACEA8 - ldr r0, _080ACEA4 - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x11 - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACE9C: .4byte gMenuWindow -_080ACEA0: .4byte 0x02019260 -_080ACEA4: .4byte gTasks -_080ACEA8: - ldr r0, _080ACEBC - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0xE - strh r0, [r1, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACEBC: .4byte gTasks -_080ACEC0: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080ACEE4 - adds r0, r1 - ldrb r4, [r0, 0x16] - lsls r4, 24 - lsrs r5, r4, 24 - cmp r5, 0 - beq _080ACF48 - bl sub_80AF138 - asrs r0, r4, 24 - cmp r0, 0x1 - bne _080ACEF0 - ldr r0, _080ACEE8 - ldr r1, _080ACEEC - b _080ACEF8 - .align 2, 0 -_080ACEE4: .4byte 0x02019260 -_080ACEE8: .4byte gMenuWindow -_080ACEEC: .4byte gUnknown_083CBD79 -_080ACEF0: - cmp r0, 0x2 - bne _080ACF10 - ldr r0, _080ACF08 - ldr r1, _080ACF0C -_080ACEF8: - movs r2, 0xC2 - lsls r2, 2 - movs r3, 0xF - str r3, [sp] - movs r3, 0x1 - bl sub_8002EB0 - b _080ACF22 - .align 2, 0 -_080ACF08: .4byte gMenuWindow -_080ACF0C: .4byte gUnknown_083CBD9D -_080ACF10: - ldr r0, _080ACF3C - ldr r1, _080ACF40 - movs r2, 0xC2 - lsls r2, 2 - movs r3, 0xF - str r3, [sp] - movs r3, 0x1 - bl sub_8002EB0 -_080ACF22: - movs r0, 0x3 - bl sub_80B1710 - ldr r1, _080ACF44 - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - b _080ACF88 - .align 2, 0 -_080ACF3C: .4byte gMenuWindow -_080ACF40: .4byte gUnknown_083CBDC6 -_080ACF44: .4byte gTasks -_080ACF48: - bl sub_80AF138 - ldr r0, _080ACF90 - lsls r1, r7, 6 - ldr r2, _080ACF94 - adds r1, r2 - bl StringCopy - ldr r4, _080ACF98 - ldr r1, _080ACF9C - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080ACFA0 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - movs r0, 0x2 - bl sub_80B1710 - ldr r1, _080ACFA4 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] -_080ACF88: - movs r1, 0x2D - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACF90: .4byte gStringVar1 -_080ACF94: .4byte gUnknown_02038572 -_080ACF98: .4byte gStringVar4 -_080ACF9C: .4byte gUnknown_083CBD52 -_080ACFA0: .4byte gMenuWindow -_080ACFA4: .4byte gTasks -_080ACFA8: - ldrb r1, [r6, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080ACFB6 - bl _080AD8CA -_080ACFB6: - ldrb r0, [r6, 0x11] - bl sub_80B09B0 - ldr r1, _080ACFD0 - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0xF - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080ACFD0: .4byte gTasks -_080ACFD4: - ldr r0, _080AD034 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080ACFE4 - bl _080AD8CA -_080ACFE4: - ldr r1, _080AD038 - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bgt _080AD002 - bl _080AD8CA -_080AD002: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AD03C - adds r6, r0, r1 - ldrb r1, [r6, 0x15] - movs r5, 0x10 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _080AD02C - movs r1, 0x2 - ldrsh r0, [r6, r1] - ldrb r1, [r6, 0x17] - adds r2, r7, 0 - bl sub_80AFBA0 - ldrh r0, [r6, 0x2] - ldrb r2, [r6, 0x17] - adds r0, r2 - strh r0, [r6, 0x2] -_080AD02C: - strh r5, [r4, 0x8] - bl _080AD8CA - .align 2, 0 -_080AD034: .4byte gMenuWindow -_080AD038: .4byte gTasks -_080AD03C: .4byte 0x02019260 -_080AD040: - lsls r0, r7, 2 - ldr r1, _080AD06C - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080AD058 - bl _080AD8CA -_080AD058: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - strh r1, [r0, 0x1C] - movs r1, 0x11 - strh r1, [r0, 0x8] - bl _080AD8CA - .align 2, 0 -_080AD06C: .4byte 0x02019338 -_080AD070: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AD0CC - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD0E8 - bl sub_80AF138 - ldr r0, _080AD0D0 - lsls r1, r7, 6 - ldr r2, _080AD0D4 - adds r1, r2 - bl StringCopy - ldr r4, _080AD0D8 - ldr r1, _080AD0DC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD0E0 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r0, _080AD0E4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r8 - lsls r4, 3 - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x1C] - bl sub_80B1710 - movs r0, 0x2E - strh r0, [r4, 0x8] - bl _080AD8CA - .align 2, 0 -_080AD0CC: .4byte 0x02019260 -_080AD0D0: .4byte gStringVar1 -_080AD0D4: .4byte gUnknown_02038572 -_080AD0D8: .4byte gStringVar4 -_080AD0DC: .4byte gUnknown_083CC075 -_080AD0E0: .4byte gMenuWindow -_080AD0E4: .4byte gTasks -_080AD0E8: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x29 - strh r1, [r0, 0x8] - bl _080AD8CA -_080AD0FA: - ldrb r1, [r6, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AD108 - bl _080AD8CA -_080AD108: - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x13 - strh r1, [r0, 0x8] - bl _080AD8CA -_080AD11A: - ldr r0, _080AD15C - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD12A - bl _080AD8CA -_080AD12A: - lsls r4, r7, 3 - subs r4, r7 - lsls r4, 2 - ldr r0, _080AD160 - adds r4, r0 - movs r3, 0x2 - ldrsh r0, [r4, r3] - ldrb r1, [r4, 0x18] - negs r1, r1 - adds r2, r7, 0 - bl sub_80AFBA0 - ldrb r1, [r4, 0x18] - ldrh r0, [r4, 0x2] - subs r0, r1 - strh r0, [r4, 0x2] - ldr r1, _080AD164 - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD15C: .4byte gMenuWindow -_080AD160: .4byte 0x02019260 -_080AD164: .4byte gTasks -_080AD168: - bl sub_80B0D7C - lsls r0, r7, 2 - ldr r1, _080AD19C - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _080AD182 - b _080AD8CA -_080AD182: - ldr r0, _080AD1A0 - mov r5, r8 - lsls r4, r5, 2 - add r4, r8 - lsls r4, 3 - adds r4, r0 - strh r6, [r4, 0x1C] - bl sub_80AF138 - movs r0, 0x29 - strh r0, [r4, 0x8] - b _080AD8CA - .align 2, 0 -_080AD19C: .4byte 0x02019338 -_080AD1A0: .4byte gTasks -_080AD1A4: - ldr r2, _080AD1CC - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - adds r1, r2, 0 - cmp r0, 0 - beq _080AD1D0 - ldr r0, [r1] - lsls r0, 20 - lsrs r0, 29 - cmp r7, r0 - beq _080AD1D0 - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - movs r1, 0x39 - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD1CC: .4byte 0x02019328 -_080AD1D0: - ldrb r4, [r1] - lsls r2, r7, 3 - subs r0, r2, r7 - lsls r0, 2 - subs r1, 0xC8 - adds r5, r0, r1 - ldrb r1, [r5, 0x11] - movs r0, 0x10 - ands r0, r1 - mov r10, r2 - cmp r0, 0 - beq _080AD204 - movs r4, 0x1 - ldr r0, _080AD1FC - ldrh r2, [r5, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AD200 - adds r1, r2 - bl StringCopy - b _080AD21E - .align 2, 0 -_080AD1FC: .4byte gStringVar3 -_080AD200: .4byte gMoveNames -_080AD204: - ldr r0, _080AD270 - ldr r3, _080AD274 - ldr r2, _080AD278 - ldrh r1, [r5, 0x6] - lsls r1, 3 - adds r1, r2 - ldrb r1, [r1, 0x1] - lsls r1, 29 - lsrs r1, 27 - adds r1, r3 - ldr r1, [r1] - bl StringCopy -_080AD21E: - lsls r0, r4, 24 - cmp r0, 0 - ble _080AD23A - mov r2, r10 - subs r0, r2, r7 - lsls r0, 2 - ldr r1, _080AD27C - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD23A - movs r4, 0 -_080AD23A: - bl sub_80AF138 - ldr r0, _080AD280 - lsls r1, r7, 6 - ldr r2, _080AD284 - adds r1, r2 - bl StringCopy - ldr r3, _080AD288 - ldrb r0, [r3, 0x13] - lsls r1, r4, 24 - asrs r2, r1, 24 - adds r0, r2, r0 - strb r0, [r3, 0x13] - lsls r0, 24 - adds r4, r1, 0 - cmp r0, 0 - bge _080AD262 - movs r0, 0 - strb r0, [r3, 0x13] -_080AD262: - cmp r2, 0 - bne _080AD290 - ldr r0, _080AD28C - mov r3, r8 - lsls r1, r3, 2 - b _080AD6EC - .align 2, 0 -_080AD270: .4byte gStringVar3 -_080AD274: .4byte gUnknown_083CC2D8 -_080AD278: .4byte gContestMoves -_080AD27C: .4byte 0x02019260 -_080AD280: .4byte gStringVar1 -_080AD284: .4byte gUnknown_02038572 -_080AD288: .4byte 0x02019204 -_080AD28C: .4byte gTasks -_080AD290: - cmp r2, 0 - bge _080AD2A8 - ldr r0, _080AD2A0 - ldr r1, _080AD2A4 - bl StringExpandPlaceholders - b _080AD2D0 - .align 2, 0 -_080AD2A0: .4byte gStringVar4 -_080AD2A4: .4byte gUnknown_083CC0BC -_080AD2A8: - cmp r2, 0 - ble _080AD2C8 - movs r0, 0x13 - ldrsb r0, [r3, r0] - cmp r0, 0x4 - bgt _080AD2C8 - ldr r0, _080AD2C0 - ldr r1, _080AD2C4 - bl StringExpandPlaceholders - b _080AD2D0 - .align 2, 0 -_080AD2C0: .4byte gStringVar4 -_080AD2C4: .4byte gUnknown_083CC0A0 -_080AD2C8: - ldr r0, _080AD300 - ldr r1, _080AD304 - bl StringExpandPlaceholders -_080AD2D0: - ldr r0, _080AD308 - ldr r1, _080AD300 - movs r2, 0xC2 - lsls r2, 2 - movs r3, 0xF - str r3, [sp] - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AD30C - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0 - strh r0, [r1, 0x1C] - strh r0, [r1, 0x1E] - cmp r4, 0 - bge _080AD310 - movs r0, 0x35 - strh r0, [r1, 0x8] - b _080AD8CA - .align 2, 0 -_080AD300: .4byte gStringVar4 -_080AD304: .4byte gUnknown_083CC0E3 -_080AD308: .4byte gMenuWindow -_080AD30C: .4byte gTasks -_080AD310: - movs r0, 0x36 - strh r0, [r1, 0x8] - b _080AD8CA -_080AD316: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - mov r2, r12 - adds r4, r0, r2 - movs r3, 0x1C - ldrsh r2, [r4, r3] - cmp r2, 0x1 - beq _080AD354 - cmp r2, 0x1 - bgt _080AD334 - cmp r2, 0 - beq _080AD33E - b _080AD8CA -_080AD334: - cmp r2, 0x2 - beq _080AD37C - cmp r2, 0x3 - beq _080AD3B0 - b _080AD8CA -_080AD33E: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x1 - bl sub_80B1EA8 - ldr r0, _080AD350 - bl PlayFanfare - b _080AD3A8 - .align 2, 0 -_080AD350: .4byte 0x00000187 -_080AD354: - ldrb r0, [r6, 0x7] - ands r2, r0 - cmp r2, 0 - beq _080AD35E - b _080AD8CA -_080AD35E: - ldr r0, _080AD378 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD36C - b _080AD8CA -_080AD36C: - movs r0, 0x1 - negs r0, r0 - bl sub_80B1CBC - b _080AD3A8 - .align 2, 0 -_080AD378: .4byte gMenuWindow -_080AD37C: - ldrb r1, [r6, 0x6] - movs r0, 0x20 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080AD38C - b _080AD8CA -_080AD38C: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - bgt _080AD39C - b _080AD8CA -_080AD39C: - strh r2, [r4, 0x1E] - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 - bl sub_80B1EA8 -_080AD3A8: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - b _080AD8CA -_080AD3B0: - ldr r0, _080AD3CC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080AD3C2 - b _080AD8CA -_080AD3C2: - strh r0, [r4, 0x1C] - strh r0, [r4, 0x1E] - movs r0, 0x2B - strh r0, [r4, 0x8] - b _080AD8CA - .align 2, 0 -_080AD3CC: .4byte gPaletteFade -_080AD3D0: - mov r4, r8 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - add r0, r12 - movs r5, 0x1C - ldrsh r0, [r0, r5] - mov r9, r1 - cmp r0, 0x4 - bls _080AD3E6 - b _080AD8CA -_080AD3E6: - lsls r0, 2 - ldr r1, _080AD3F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AD3F0: .4byte _080AD3F4 - .align 2, 0 -_080AD3F4: - .4byte _080AD408 - .4byte _080AD420 - .4byte _080AD43E - .4byte _080AD4A0 - .4byte _080AD4EC -_080AD408: - ldr r0, _080AD41C - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD416 - b _080AD8CA -_080AD416: - movs r0, 0x1 - movs r1, 0x1 - b _080AD4C8 - .align 2, 0 -_080AD41C: .4byte gMenuWindow -_080AD420: - ldrb r1, [r6, 0x7] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD42C - b _080AD8CA -_080AD42C: - bl sub_80B1DDC - movs r0, 0xDF - bl PlaySE - movs r0, 0x1 - bl sub_80B1CBC - b _080AD4CC -_080AD43E: - ldrb r1, [r6, 0x6] - movs r0, 0x20 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080AD44E - b _080AD8CA -_080AD44E: - mov r0, r9 - add r0, r8 - lsls r0, 3 - mov r1, r12 - adds r3, r0, r1 - ldrh r0, [r3, 0x1E] - adds r1, r0, 0x1 - strh r1, [r3, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - bgt _080AD468 - b _080AD8CA -_080AD468: - strh r2, [r3, 0x1E] - lsls r4, r7, 3 - subs r4, r7 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x5C - adds r4, r0 - movs r2, 0x2 - ldrsh r0, [r4, r2] - movs r1, 0x92 - lsls r1, 1 - adds r5, r6, r1 - movs r1, 0x2 - ldrsb r1, [r5, r1] - adds r2, r7, 0 - str r3, [sp, 0x4] - bl sub_80AFBA0 - movs r0, 0x2 - ldrsb r0, [r5, r0] - ldrh r2, [r4, 0x2] - adds r0, r2 - strh r0, [r4, 0x2] - ldr r3, [sp, 0x4] - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - b _080AD8CA -_080AD4A0: - lsls r0, r7, 2 - ldr r2, _080AD4E0 - adds r0, r2 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AD4B2 - b _080AD8CA -_080AD4B2: - ldr r3, _080AD4E4 - adds r0, r2, r3 - ldrb r1, [r0, 0x6] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080AD4C2 - b _080AD8CA -_080AD4C2: - movs r1, 0x1 - negs r1, r1 - movs r0, 0x1 -_080AD4C8: - bl sub_80B1EA8 -_080AD4CC: - ldr r0, _080AD4E8 - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - b _080AD8CA - .align 2, 0 -_080AD4E0: .4byte 0x02019338 -_080AD4E4: .4byte 0xfffffecc -_080AD4E8: .4byte gTasks -_080AD4EC: - ldr r0, _080AD510 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080AD4FE - b _080AD8CA -_080AD4FE: - mov r0, r9 - add r0, r8 - lsls r0, 3 - add r0, r12 - strh r1, [r0, 0x1C] - strh r1, [r0, 0x1E] - movs r1, 0x2B - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD510: .4byte gPaletteFade -_080AD514: - lsls r0, r7, 2 - ldr r1, _080AD534 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AD526 - b _080AD8CA -_080AD526: - bl sub_80AF138 - ldr r0, _080AD538 - mov r4, r8 - lsls r1, r4, 2 - b _080AD6EC - .align 2, 0 -_080AD534: .4byte 0x02019338 -_080AD538: .4byte gTasks -_080AD53C: - bl sub_80AF138 - ldr r0, _080AD5A8 - ldr r4, _080AD5AC - ldr r1, [r4] - lsls r1, 20 - lsrs r1, 29 - lsls r1, 6 - ldr r5, _080AD5B0 - adds r1, r5 - bl StringCopy - ldr r0, _080AD5B4 - lsls r1, r7, 6 - adds r1, r5 - bl StringCopy - ldr r0, _080AD5B8 - lsls r1, r7, 3 - subs r1, r7 - lsls r1, 2 - subs r4, 0xC8 - adds r1, r4 - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AD5BC - adds r1, r2 - bl StringCopy - ldr r4, _080AD5C0 - ldr r1, _080AD5C4 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD5C8 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AD5CC - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3A - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD5A8: .4byte gStringVar3 -_080AD5AC: .4byte 0x02019328 -_080AD5B0: .4byte gUnknown_02038572 -_080AD5B4: .4byte gStringVar1 -_080AD5B8: .4byte gStringVar2 -_080AD5BC: .4byte gMoveNames -_080AD5C0: .4byte gStringVar4 -_080AD5C4: .4byte gUnknown_083CC14A -_080AD5C8: .4byte gMenuWindow -_080AD5CC: .4byte gTasks -_080AD5D0: - ldr r5, _080AD614 - adds r0, r5, 0 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD5E0 - b _080AD8CA -_080AD5E0: - bl sub_80AF138 - ldr r4, _080AD618 - ldr r1, _080AD61C - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r2, 0xC2 - lsls r2, 2 - movs r0, 0xF - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AD620 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3B - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD614: .4byte gMenuWindow -_080AD618: .4byte gStringVar4 -_080AD61C: .4byte gUnknown_083CC16E -_080AD620: .4byte gTasks -_080AD624: - ldr r0, _080AD640 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD632 - b _080AD8CA -_080AD632: - bl sub_80AF138 - ldr r0, _080AD644 - mov r3, r8 - lsls r1, r3, 2 - b _080AD6EC - .align 2, 0 -_080AD640: .4byte gMenuWindow -_080AD644: .4byte gTasks -_080AD648: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _080AD6B4 - adds r4, r0, r1 - ldrb r1, [r4, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AD664 - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x15] -_080AD664: - adds r0, r7, 0 - bl sub_80B09B0 - ldr r0, _080AD6B8 - lsls r1, r7, 6 - ldr r2, _080AD6BC - adds r1, r2 - bl StringCopy - ldr r0, _080AD6C0 - ldrh r2, [r4, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AD6C4 - adds r1, r2 - bl StringCopy - ldr r4, _080AD6C8 - ldr r1, _080AD6CC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD6D0 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AD6D4 - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x22 - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD6B4: .4byte 0x02019260 -_080AD6B8: .4byte gStringVar1 -_080AD6BC: .4byte gUnknown_02038572 -_080AD6C0: .4byte gStringVar2 -_080AD6C4: .4byte gMoveNames -_080AD6C8: .4byte gStringVar4 -_080AD6CC: .4byte gUnknown_083CBF60 -_080AD6D0: .4byte gMenuWindow -_080AD6D4: .4byte gTasks -_080AD6D8: - ldr r0, _080AD6F8 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD6E6 - b _080AD8CA -_080AD6E6: - ldr r0, _080AD6FC - mov r5, r8 - lsls r1, r5, 2 -_080AD6EC: - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x37 - strh r0, [r1, 0x8] - b _080AD8CA - .align 2, 0 -_080AD6F8: .4byte gMenuWindow -_080AD6FC: .4byte gTasks -_080AD700: - bl sub_80B1BDC - ldr r0, _080AD718 - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x38 - strh r0, [r1, 0x8] - b _080AD8CA - .align 2, 0 -_080AD718: .4byte gTasks -_080AD71C: - ldrb r1, [r6, 0x6] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080AD72C - b _080AD8CA -_080AD72C: - movs r0, 0x13 - ldrsb r0, [r6, r0] - cmp r0, 0x4 - ble _080AD73A - strb r1, [r6, 0x13] - bl sub_80B1928 -_080AD73A: - ldr r0, _080AD74C - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0xA - strh r0, [r1, 0x8] - b _080AD8CA - .align 2, 0 -_080AD74C: .4byte gTasks -_080AD750: - mov r4, r8 - lsls r2, r4, 2 - add r2, r8 - lsls r2, 3 - add r2, r12 - ldrb r5, [r2, 0xC] - ldr r1, _080AD774 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080AD778 - str r1, [r0] - movs r0, 0xB - strh r0, [r2, 0x8] - b _080AD8CA - .align 2, 0 -_080AD774: .4byte gSprites -_080AD778: .4byte sub_80AD92C -_080AD77C: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - mov r1, r12 - adds r4, r0, r1 - ldrb r5, [r4, 0xC] - ldr r1, _080AD7B4 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r6, r0, r1 - adds r0, r6, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _080AD7A2 - b _080AD8CA -_080AD7A2: - adds r0, r6, 0 - bl FreeSpriteOamMatrix - adds r0, r6, 0 - bl DestroySprite - movs r0, 0x14 - strh r0, [r4, 0x8] - b _080AD8CA - .align 2, 0 -_080AD7B4: .4byte gSprites -_080AD7B8: - movs r6, 0 - mov r2, r8 - lsls r2, 2 - mov r9, r2 -_080AD7C0: - lsls r0, r6, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_80B0CDC - adds r6, 0x1 - cmp r6, 0x3 - ble _080AD7C0 - ldr r1, _080AD7E4 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r1, 0x15 - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD7E4: .4byte gTasks -_080AD7E8: - bl sub_80AF138 - ldr r0, _080AD828 - lsls r1, r7, 6 - ldr r2, _080AD82C - adds r1, r2 - bl StringCopy - ldr r4, _080AD830 - ldr r1, _080AD834 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD838 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AD83C - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x20 - strh r1, [r0, 0x8] - b _080AD8CA - .align 2, 0 -_080AD828: .4byte gStringVar1 -_080AD82C: .4byte gUnknown_02038572 -_080AD830: .4byte gStringVar4 -_080AD834: .4byte gUnknown_083CB00D -_080AD838: .4byte gMenuWindow -_080AD83C: .4byte gTasks -_080AD840: - ldr r0, _080AD860 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - beq _080AD8CA - ldr r0, _080AD864 - mov r4, r8 - lsls r1, r4, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x15 - strh r0, [r1, 0x8] - b _080AD8CA - .align 2, 0 -_080AD860: .4byte gMenuWindow -_080AD864: .4byte gTasks -_080AD868: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080AD8CA - movs r0, 0 - strh r0, [r1, 0x1C] - movs r0, 0x16 - strh r0, [r1, 0x8] - b _080AD8CA -_080AD88C: - ldrb r0, [r6, 0x10] - adds r0, 0x1 - movs r1, 0 - strb r0, [r6, 0x10] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080AD8B8 - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - strh r1, [r0, 0xC] - ldr r1, _080AD8B4 - str r1, [r0] - b _080AD8C4 - .align 2, 0 -_080AD8B4: .4byte sub_80AD960 -_080AD8B8: - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - add r0, r12 - strh r1, [r0, 0x8] -_080AD8C4: - movs r0, 0 - bl nullsub_18 -_080AD8CA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC2CC - - thumb_func_start sub_80AD8DC -sub_80AD8DC: @ 80AD8DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080AD8F8 - ldrb r2, [r3, 0x7] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x7] - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_080AD8F8: .4byte 0x02019204 - thumb_func_end sub_80AD8DC - - thumb_func_start sub_80AD8FC -sub_80AD8FC: @ 80AD8FC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x24] - movs r3, 0x24 - ldrsh r2, [r1, r3] - cmp r2, 0 - beq _080AD910 - subs r0, 0x2 - strh r0, [r1, 0x24] - b _080AD924 -_080AD910: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080AD924 - strh r2, [r1, 0x2E] - ldr r0, _080AD928 - str r0, [r1, 0x1C] -_080AD924: - pop {r0} - bx r0 - .align 2, 0 -_080AD928: .4byte SpriteCallbackDummy - thumb_func_end sub_80AD8FC - - thumb_func_start sub_80AD92C -sub_80AD92C: @ 80AD92C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - subs r0, 0x6 - strh r0, [r2, 0x24] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r3, 0x24 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080AD956 - ldr r0, _080AD95C - str r0, [r2, 0x1C] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080AD956: - pop {r0} - bx r0 - .align 2, 0 -_080AD95C: .4byte SpriteCallbackDummy - thumb_func_end sub_80AD92C - - thumb_func_start sub_80AD960 -sub_80AD960: @ 80AD960 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AD984 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AD9F2 - cmp r0, 0x1 - bgt _080AD988 - cmp r0, 0 - beq _080AD98E - b _080ADA10 - .align 2, 0 -_080AD984: .4byte gTasks -_080AD988: - cmp r0, 0x2 - beq _080ADA08 - b _080ADA10 -_080AD98E: - ldr r0, _080AD9D8 - ldrb r1, [r0] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080AD9E8 - ldr r2, _080AD9DC - ldrb r0, [r2, 0x7] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x7] - bl sub_80AE074 - lsls r0, 24 - cmp r0, 0 - beq _080AD9B8 - bl sub_80AF2FC - bl sub_80AF3C0 -_080AD9B8: - ldr r4, _080AD9E0 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AD9E4 - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - bl sub_80AF860 - strh r6, [r5, 0x8] - b _080ADA10 - .align 2, 0 -_080AD9D8: .4byte gUnknown_0203869A -_080AD9DC: .4byte 0x02019204 -_080AD9E0: .4byte sub_80C8C80 -_080AD9E4: .4byte sub_80AD8DC -_080AD9E8: - bl sub_80AF2FC - bl sub_80AF3C0 - b _080AD9FE -_080AD9F2: - ldr r0, _080ADA04 - ldrb r1, [r0, 0x7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080ADA10 -_080AD9FE: - movs r0, 0x2 - strh r0, [r5, 0x8] - b _080ADA10 - .align 2, 0 -_080ADA04: .4byte 0x02019204 -_080ADA08: - movs r0, 0 - strh r0, [r5, 0x8] - ldr r0, _080ADA18 - str r0, [r5] -_080ADA10: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADA18: .4byte sub_80ADA1C - thumb_func_end sub_80AD960 - - thumb_func_start sub_80ADA1C -sub_80ADA1C: @ 80ADA1C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80B1FD0 - ldr r1, _080ADA44 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - ldr r1, _080ADA48 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADA44: .4byte gTasks -_080ADA48: .4byte sub_80ADA4C - thumb_func_end sub_80ADA1C - - thumb_func_start sub_80ADA4C -sub_80ADA4C: @ 80ADA4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADA70 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080ADA92 - cmp r5, 0x1 - bgt _080ADA74 - cmp r5, 0 - beq _080ADA7A - b _080ADACE - .align 2, 0 -_080ADA70: .4byte gTasks -_080ADA74: - cmp r5, 0x2 - beq _080ADAC0 - b _080ADACE -_080ADA7A: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080ADACE - movs r0, 0x2 - bl sub_80B25E4 - strh r5, [r4, 0xA] - b _080ADAB2 -_080ADA92: - ldr r0, _080ADABC - ldrb r1, [r0, 0x7] - movs r0, 0x2 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080ADACE - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080ADACE - strh r1, [r4, 0xA] -_080ADAB2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ADACE - .align 2, 0 -_080ADABC: .4byte 0x02019204 -_080ADAC0: - bl sub_80AFF10 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - ldr r0, _080ADAD4 - str r0, [r4] -_080ADACE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADAD4: .4byte sub_80ADAD8 - thumb_func_end sub_80ADA4C - - thumb_func_start sub_80ADAD8 -sub_80ADAD8: @ 80ADAD8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80AFF28 - lsls r0, 24 - cmp r0, 0 - beq _080ADAF6 - ldr r0, _080ADAFC - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADB00 - str r0, [r1] -_080ADAF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADAFC: .4byte gTasks -_080ADB00: .4byte sub_80ADB04 - thumb_func_end sub_80ADAD8 - - thumb_func_start sub_80ADB04 -sub_80ADB04: @ 80ADB04 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADB30 - ldr r3, _080ADB34 - ldr r1, _080ADB38 - str r2, [r1] - str r3, [r1, 0x4] - ldr r2, _080ADB3C - str r2, [r1, 0x8] - ldr r1, [r1, 0x8] - ldr r2, _080ADB40 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - movs r0, 0x2 - strh r0, [r1, 0xA] - ldr r0, _080ADB44 - str r0, [r1] - bx lr - .align 2, 0 -_080ADB30: .4byte 0x02018204 -_080ADB34: .4byte gPlttBufferUnfaded -_080ADB38: .4byte 0x040000d4 -_080ADB3C: .4byte 0x84000100 -_080ADB40: .4byte gTasks -_080ADB44: .4byte sub_80ADB48 - thumb_func_end sub_80ADB04 - - thumb_func_start sub_80ADB48 -sub_80ADB48: @ 80ADB48 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADB80 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080ADB7A - movs r0, 0 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xA] - subs r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080ADB7A - ldr r0, _080ADB84 - str r0, [r1] -_080ADB7A: - pop {r0} - bx r0 - .align 2, 0 -_080ADB80: .4byte gTasks -_080ADB84: .4byte sub_80ADB88 - thumb_func_end sub_80ADB48 - - thumb_func_start sub_80ADB88 -sub_80ADB88: @ 80ADB88 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _080ADBEC - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080ADBF0 - adds r0, r1 - ldrb r4, [r0, 0x1A] - bl sub_80AF138 - ldr r0, _080ADBF4 - ldrb r1, [r6] - lsls r1, 6 - ldr r2, _080ADBF8 - adds r1, r2 - bl StringCopy - ldr r6, _080ADBFC - ldr r0, _080ADC00 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r6, 0 - bl StringExpandPlaceholders - ldr r0, _080ADC04 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r6, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080ADC08 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADC0C - str r1, [r0] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADBEC: .4byte gUnknown_02038695 -_080ADBF0: .4byte 0x02019260 -_080ADBF4: .4byte gStringVar1 -_080ADBF8: .4byte gUnknown_02038572 -_080ADBFC: .4byte gStringVar4 -_080ADC00: .4byte gUnknown_083CB2F0 -_080ADC04: .4byte gMenuWindow -_080ADC08: .4byte gTasks -_080ADC0C: .4byte sub_80ADC10 - thumb_func_end sub_80ADB88 - - thumb_func_start sub_80ADC10 -sub_80ADC10: @ 80ADC10 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080ADC40 - bl sub_80037A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080ADC3A - ldr r1, _080ADC44 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080ADC48 - str r1, [r0] - bl sub_80B0D7C -_080ADC3A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADC40: .4byte gMenuWindow -_080ADC44: .4byte gTasks -_080ADC48: .4byte sub_80ADC4C - thumb_func_end sub_80ADC10 - - thumb_func_start sub_80ADC4C -sub_80ADC4C: @ 80ADC4C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADC7C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080ADC76 - movs r0, 0 - strh r0, [r4, 0x8] - bl sub_80AFF10 - ldr r0, _080ADC80 - str r0, [r4] -_080ADC76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADC7C: .4byte gTasks -_080ADC80: .4byte sub_80ADC84 - thumb_func_end sub_80ADC4C - - thumb_func_start sub_80ADC84 -sub_80ADC84: @ 80ADC84 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80AFF28 - lsls r0, 24 - cmp r0, 0 - beq _080ADCA6 - ldr r1, _080ADCAC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080ADCB0 - str r1, [r0] -_080ADCA6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADCAC: .4byte gTasks -_080ADCB0: .4byte sub_80ADCB4 - thumb_func_end sub_80ADC84 - - thumb_func_start sub_80ADCB4 -sub_80ADCB4: @ 80ADCB4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80B2184 - ldr r1, _080ADCD4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADCD8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADCD4: .4byte gTasks -_080ADCD8: .4byte sub_80B237C - thumb_func_end sub_80ADCB4 - - thumb_func_start sub_80ADCDC -sub_80ADCDC: @ 80ADCDC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80B2280 - ldr r1, _080ADCFC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADD00 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADCFC: .4byte gTasks -_080ADD00: .4byte sub_80ADD04 - thumb_func_end sub_80ADCDC - - thumb_func_start sub_80ADD04 -sub_80ADD04: @ 80ADD04 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, _080ADD40 - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldr r2, _080ADD44 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldr r1, _080ADD48 - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080ADD54 - ldr r0, _080ADD4C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADD50 - b _080ADD64 - .align 2, 0 -_080ADD40: .4byte REG_BG0CNT -_080ADD44: .4byte REG_BG2CNT -_080ADD48: .4byte 0x02019204 -_080ADD4C: .4byte gTasks -_080ADD50: .4byte sub_80ADDA4 -_080ADD54: - bl sub_80B1B14 - ldr r0, _080ADD6C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADD70 -_080ADD64: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADD6C: .4byte gTasks -_080ADD70: .4byte sub_80ADD74 - thumb_func_end sub_80ADD04 - - thumb_func_start sub_80ADD74 -sub_80ADD74: @ 80ADD74 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080ADD98 - ldrb r1, [r0, 0x6] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080ADD94 - ldr r0, _080ADD9C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADDA0 - str r0, [r1] -_080ADD94: - pop {r0} - bx r0 - .align 2, 0 -_080ADD98: .4byte 0x02019204 -_080ADD9C: .4byte gTasks -_080ADDA0: .4byte sub_80ABB70 - thumb_func_end sub_80ADD74 - - thumb_func_start sub_80ADDA4 -sub_80ADDA4: @ 80ADDA4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080ADE24 - movs r1, 0 - strh r1, [r0] - ldr r0, _080ADE28 - strh r1, [r0] - ldr r3, _080ADE2C - ldr r2, _080ADE30 - movs r1, 0x3 -_080ADDBC: - ldrh r0, [r3, 0x4] - strh r0, [r2] - adds r3, 0x1C - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080ADDBC - movs r5, 0 - bl sub_80AF668 - bl sub_80AF138 - ldr r0, _080ADE34 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080ADE2C - adds r0, r1 - ldrh r0, [r0, 0x8] - bl sub_80BE23C - ldr r1, _080ADE38 - ldr r0, _080ADE3C - ldr r0, [r0] - str r0, [r1] - ldr r4, _080ADE40 - ldr r1, _080ADE44 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080ADE48 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080ADE4C - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xC] - ldr r1, _080ADE50 - str r1, [r0] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADE24: .4byte gUnknown_030042A0 -_080ADE28: .4byte gUnknown_03004280 -_080ADE2C: .4byte 0x02019260 -_080ADE30: .4byte gUnknown_02038680 -_080ADE34: .4byte gUnknown_02038695 -_080ADE38: .4byte gUnknown_03005D28 -_080ADE3C: .4byte gRngValue -_080ADE40: .4byte gStringVar4 -_080ADE44: .4byte gUnknown_083CB02C -_080ADE48: .4byte gMenuWindow -_080ADE4C: .4byte gTasks -_080ADE50: .4byte sub_80ADE54 - thumb_func_end sub_80ADDA4 - - thumb_func_start sub_80ADE54 -sub_80ADE54: @ 80ADE54 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080ADE98 - bl sub_80037A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080ADE92 - bl sub_80B2184 - ldr r1, _080ADE9C - movs r0, 0 - strh r0, [r1] - ldr r1, _080ADEA0 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0x62 - movs r1, 0 - bl PlaySE12WithPanning - ldr r1, _080ADEA4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080ADEA8 - str r1, [r0] -_080ADE92: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADE98: .4byte gMenuWindow -_080ADE9C: .4byte gUnknown_030042C0 -_080ADEA0: .4byte gUnknown_030041B4 -_080ADEA4: .4byte gTasks -_080ADEA8: .4byte sub_80ADEAC - thumb_func_end sub_80ADE54 - - thumb_func_start sub_80ADEAC -sub_80ADEAC: @ 80ADEAC - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _080ADEE0 - ldrh r0, [r1] - subs r0, 0x7 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bge _080ADEC4 - movs r0, 0 - strh r0, [r1] -_080ADEC4: - ldrh r2, [r1] - cmp r2, 0 - bne _080ADEDA - ldr r0, _080ADEE4 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADEE8 - str r0, [r1] - strh r2, [r1, 0x8] -_080ADEDA: - pop {r0} - bx r0 - .align 2, 0 -_080ADEE0: .4byte gUnknown_030041B4 -_080ADEE4: .4byte gTasks -_080ADEE8: .4byte sub_80ADEEC - thumb_func_end sub_80ADEAC - - thumb_func_start sub_80ADEEC -sub_80ADEEC: @ 80ADEEC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADF20 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x31 - ble _080ADF40 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _080ADF24 - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080ADF2C - ldr r0, _080ADF28 - b _080ADF3E - .align 2, 0 -_080ADF20: .4byte gTasks -_080ADF24: .4byte gUnknown_0203869A -_080ADF28: .4byte sub_80ADF4C -_080ADF2C: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080ADF48 -_080ADF3E: - str r0, [r4] -_080ADF40: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADF48: .4byte sub_80ADFD8 - thumb_func_end sub_80ADEEC - - thumb_func_start sub_80ADF4C -sub_80ADF4C: @ 80ADF4C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080ADF88 - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADF8C - adds r1, r5, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080ADF90 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADF94 - str r1, [r0] - bl sub_80AF860 - movs r0, 0 - bl sub_80AFFE0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADF88: .4byte sub_80C8AD0 -_080ADF8C: .4byte sub_80ADF98 -_080ADF90: .4byte gTasks -_080ADF94: .4byte nullsub_89 - thumb_func_end sub_80ADF4C - - thumb_func_start sub_80ADF98 -sub_80ADF98: @ 80ADF98 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, _080ADFCC - ldr r0, _080ADFD0 - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080ADFD4 - str r1, [r0] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080ADFCC: .4byte gTasks -_080ADFD0: .4byte 0x02019204 -_080ADFD4: .4byte sub_80ADFD8 - thumb_func_end sub_80ADF98 - - thumb_func_start sub_80ADFD8 -sub_80ADFD8: @ 80ADFD8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080AE000 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ADFFC - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080AE004 - ldr r1, _080AE008 - str r1, [r0] - ldr r0, _080AE00C - bl SetMainCallback2 -_080ADFFC: - pop {r0} - bx r0 - .align 2, 0 -_080AE000: .4byte gPaletteFade -_080AE004: .4byte gUnknown_0300485C -_080AE008: .4byte sub_80AE010 -_080AE00C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80ADFD8 - - thumb_func_start sub_80AE010 -sub_80AE010: @ 80AE010 - push {lr} - bl ScriptContext2_Disable - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80AE010 - - thumb_func_start sub_80AE020 -sub_80AE020: @ 80AE020 - push {r4,lr} - adds r4, r0, 0 - b _080AE028 -_080AE026: - adds r4, 0x1 -_080AE028: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080AE04C - cmp r0, 0xFC - bne _080AE026 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _080AE026 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - movs r1, 0xFF - strb r1, [r0] - adds r1, r4, 0x2 - bl StringAppend -_080AE04C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AE020 - - thumb_func_start sub_80AE054 -sub_80AE054: @ 80AE054 - push {lr} - ldr r0, _080AE06C - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AE068 - ldr r1, _080AE070 - movs r0, 0x3 - strb r0, [r1] -_080AE068: - pop {r0} - bx r0 - .align 2, 0 -_080AE06C: .4byte gUnknown_0203869A -_080AE070: .4byte gUnknown_02038695 - thumb_func_end sub_80AE054 - - thumb_func_start sub_80AE074 -sub_80AE074: @ 80AE074 - push {lr} - ldr r0, _080AE088 - ldr r1, _080AE08C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080AE090 - movs r0, 0 - b _080AE092 - .align 2, 0 -_080AE088: .4byte gUnknown_02038695 -_080AE08C: .4byte gUnknown_0203869B -_080AE090: - movs r0, 0x1 -_080AE092: - pop {r1} - bx r1 - thumb_func_end sub_80AE074 - - thumb_func_start sub_80AE098 -sub_80AE098: @ 80AE098 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _080AE0F0 - mov r0, sp - adds r1, r6, 0 - bl StringCopy - mov r0, sp - bl SkipExtCtrlCodes - ldr r0, _080AE0F4 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AE0CE - mov r0, sp - ldrb r2, [r0, 0x5] - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x5] - mov r0, sp - strb r2, [r0, 0x7] -_080AE0CE: - ldr r5, _080AE0F8 - ldrb r0, [r5] - lsls r0, 6 - ldr r4, _080AE0FC - adds r0, r4 - mov r1, sp - movs r2, 0x8 - bl memcpy - ldrb r0, [r6, 0x8] - cmp r0, 0 - bne _080AE100 - ldrb r0, [r5] - lsls r0, 6 - adds r0, r4, r0 - movs r1, 0xD8 - b _080AE108 - .align 2, 0 -_080AE0F0: .4byte gSaveBlock2 -_080AE0F4: .4byte gUnknown_0203869A -_080AE0F8: .4byte gUnknown_02038695 -_080AE0FC: .4byte gUnknown_0203857D -_080AE100: - ldrb r0, [r5] - lsls r0, 6 - adds r0, r4, r0 - movs r1, 0xD9 -_080AE108: - strb r1, [r0, 0x8] - ldr r5, _080AE17C - ldr r4, _080AE180 - ldrb r0, [r4] - lsls r0, 6 - adds r1, r5, 0 - adds r1, 0x18 - adds r0, r1 - movs r1, 0 - str r1, [r0] - ldrb r0, [r4] - lsls r0, 6 - adds r0, r5 - adds r0, 0x2C - strb r1, [r0] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _080AE184 - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r4] - lsls r1, 6 - adds r1, r5 - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - ldr r0, _080AE188 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AE19A - mov r0, sp - bl SkipExtCtrlCodes - adds r0, r6, 0 - movs r1, 0x3 - bl GetMonData - cmp r0, 0x1 - bne _080AE18C - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x5] - movs r0, 0xFC - strb r0, [r1, 0xA] - b _080AE19A - .align 2, 0 -_080AE17C: .4byte gUnknown_02038570 -_080AE180: .4byte gUnknown_02038695 -_080AE184: .4byte gPlayerParty -_080AE188: .4byte gUnknown_0203869A -_080AE18C: - mov r0, sp - ldrb r2, [r0, 0x5] - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x5] - mov r0, sp - strb r2, [r0, 0xA] -_080AE19A: - ldr r5, _080AE2C4 - ldrb r0, [r5] - lsls r0, 6 - ldr r1, _080AE2C8 - mov r8, r1 - add r0, r8 - mov r1, sp - movs r2, 0xB - bl memcpy - movs r0, 0x64 - adds r4, r7, 0 - muls r4, r0 - ldr r0, _080AE2CC - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x16 - bl GetMonData - mov r6, r8 - subs r6, 0x2 - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - adds r1, 0x26 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x17 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - adds r1, 0x27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x18 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - adds r1, 0x28 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x21 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - adds r1, 0x29 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2F - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - adds r1, 0x2A - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x30 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - adds r1, 0x2B - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0xD - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - strh r0, [r1, 0x1E] - adds r0, r4, 0 - movs r1, 0xE - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - strh r0, [r1, 0x20] - adds r0, r4, 0 - movs r1, 0xF - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - strh r0, [r1, 0x22] - adds r0, r4, 0 - movs r1, 0x10 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - adds r1, r6 - strh r0, [r1, 0x24] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - mov r2, r8 - adds r2, 0x36 - adds r1, r2 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - ldrb r1, [r5] - lsls r1, 6 - movs r2, 0x3A - add r8, r2 - add r1, r8 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r2, r0, 16 - mov r8, r2 - ldrb r0, [r5] - lsls r0, 6 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r3, [r0] - adds r0, 0x1 - ldrb r4, [r0] - adds r0, 0x1 - ldrb r5, [r0] - adds r0, 0x1 - ldrb r6, [r0] - adds r0, 0x1 - ldrb r7, [r0] - cmp r2, 0xFE - bne _080AE2D0 - adds r3, 0x14 - b _080AE31E - .align 2, 0 -_080AE2C4: .4byte gUnknown_02038695 -_080AE2C8: .4byte gUnknown_02038572 -_080AE2CC: .4byte gPlayerParty -_080AE2D0: - cmp r2, 0xFF - bne _080AE2E0 - lsls r0, r4, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 - b _080AE31E -_080AE2E0: - movs r0, 0x80 - lsls r0, 1 - cmp r2, r0 - bne _080AE2F4 - lsls r0, r5, 16 - movs r2, 0xA0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - b _080AE31E -_080AE2F4: - ldr r0, _080AE308 - cmp r2, r0 - bne _080AE30C - lsls r0, r6, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - lsrs r6, r0, 16 - b _080AE31E - .align 2, 0 -_080AE308: .4byte 0x00000101 -_080AE30C: - movs r0, 0x81 - lsls r0, 1 - cmp r8, r0 - bne _080AE31E - lsls r0, r7, 16 - movs r2, 0xA0 - lsls r2, 13 - adds r0, r2 - lsrs r7, r0, 16 -_080AE31E: - cmp r3, 0xFF - ble _080AE324 - movs r3, 0xFF -_080AE324: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080AE32E - movs r4, 0xFF -_080AE32E: - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080AE338 - movs r5, 0xFF -_080AE338: - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080AE342 - movs r6, 0xFF -_080AE342: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080AE34C - movs r7, 0xFF -_080AE34C: - ldr r2, _080AE390 - ldr r1, _080AE394 - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x26 - strb r3, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x27 - strb r4, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x28 - strb r5, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x29 - strb r6, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x2A - strb r7, [r0] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE390: .4byte gUnknown_02038570 -_080AE394: .4byte gUnknown_02038695 - thumb_func_end sub_80AE098 - - thumb_func_start sub_80AE398 -sub_80AE398: @ 80AE398 - push {r4-r7,lr} - sub sp, 0x40 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - movs r6, 0 - bl sub_80AE054 - movs r5, 0 - ldr r2, _080AE470 -_080AE3AE: - ldrb r1, [r2, 0x1C] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r7, r0 - bne _080AE3FE - cmp r4, 0 - bne _080AE3C2 - lsls r0, r1, 29 - cmp r0, 0 - blt _080AE3F2 -_080AE3C2: - cmp r4, 0x1 - bne _080AE3CE - ldrb r0, [r2, 0x1C] - lsls r0, 28 - cmp r0, 0 - blt _080AE3F2 -_080AE3CE: - cmp r4, 0x2 - bne _080AE3DA - ldrb r0, [r2, 0x1C] - lsls r0, 27 - cmp r0, 0 - blt _080AE3F2 -_080AE3DA: - cmp r4, 0x3 - bne _080AE3E6 - ldrb r0, [r2, 0x1C] - lsls r0, 26 - cmp r0, 0 - blt _080AE3F2 -_080AE3E6: - cmp r4, 0x4 - bne _080AE3FE - ldrb r0, [r2, 0x1C] - lsls r0, 25 - cmp r0, 0 - bge _080AE3FE -_080AE3F2: - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - add r0, sp - strb r5, [r0] -_080AE3FE: - adds r2, 0x40 - adds r5, 0x1 - cmp r5, 0x3B - ble _080AE3AE - mov r0, sp - adds r1, r0, r6 - movs r0, 0xFF - strb r0, [r1] - movs r5, 0 - ldr r7, _080AE470 -_080AE412: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080AE474 - lsls r2, r5, 6 - adds r2, r1 - mov r1, sp - adds r4, r1, r0 - ldrb r1, [r4] - lsls r1, 6 - adds r1, r7 - adds r0, r2, 0 - movs r2, 0x40 - bl memcpy - ldrb r0, [r4] - adds r2, r5, 0x1 - subs r1, r6, 0x1 - cmp r0, 0xFF - beq _080AE454 - adds r3, r4, 0 -_080AE448: - ldrb r0, [r3, 0x1] - strb r0, [r3] - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080AE448 -_080AE454: - lsls r0, r1, 24 - lsrs r6, r0, 24 - adds r5, r2, 0 - cmp r5, 0x2 - ble _080AE412 - ldr r0, _080AE478 - ldrb r0, [r0] - bl sub_80AE098 - add sp, 0x40 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE470: .4byte gUnknown_083C9408 -_080AE474: .4byte gUnknown_02038570 -_080AE478: .4byte gUnknown_02038694 - thumb_func_end sub_80AE398 - - thumb_func_start sub_80AE47C -sub_80AE47C: @ 80AE47C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _080AE48E - movs r0, 0x3 - b _080AE50A -_080AE48E: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080AE49E - movs r0, 0x4 - b _080AE50A -_080AE49E: - ldr r0, _080AE4B0 - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080AE4F2 - lsls r0, 2 - ldr r1, _080AE4B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AE4B0: .4byte gUnknown_0203869C -_080AE4B4: .4byte _080AE4B8 - .align 2, 0 -_080AE4B8: - .4byte _080AE4CC - .4byte _080AE4D2 - .4byte _080AE4D8 - .4byte _080AE4DE - .4byte _080AE4E4 -_080AE4CC: - adds r0, r4, 0 - movs r1, 0x32 - b _080AE4E8 -_080AE4D2: - adds r0, r4, 0 - movs r1, 0x33 - b _080AE4E8 -_080AE4D8: - adds r0, r4, 0 - movs r1, 0x34 - b _080AE4E8 -_080AE4DE: - adds r0, r4, 0 - movs r1, 0x35 - b _080AE4E8 -_080AE4E4: - adds r0, r4, 0 - movs r1, 0x36 -_080AE4E8: - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - b _080AE4F6 -_080AE4F2: - movs r0, 0 - b _080AE50A -_080AE4F6: - ldr r0, _080AE510 - adds r2, r1, 0 - ldrh r1, [r0] - movs r0, 0x2 - cmp r2, r1 - bhi _080AE50A - movs r0, 0 - cmp r2, r1 - bcc _080AE50A - movs r0, 0x1 -_080AE50A: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080AE510: .4byte gUnknown_0203869E - thumb_func_end sub_80AE47C - - thumb_func_start sub_80AE514 -sub_80AE514: @ 80AE514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r5, 0 - ldr r7, _080AE588 - adds r0, r7, 0x1 - mov r9, r0 - ldr r6, _080AE58C - adds r3, r6, 0x1 - mov r8, r3 -_080AE52C: - ldr r4, _080AE590 - adds r4, r5, r4 - ldrb r0, [r4] - lsls r0, 1 - adds r1, r0, r7 - ldrb r2, [r1] - mov r3, r9 - adds r1, r0, r3 - ldrb r3, [r1] - adds r0, r6 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrb r0, [r0] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _080AE594 - movs r1, 0 - bl FillWindowRect_DefaultPalette - adds r0, r5, 0 - bl sub_80AE5BC - adds r0, r5, 0 - bl sub_80AE6CC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080AE52C - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE588: .4byte gUnknown_083CA308 -_080AE58C: .4byte gUnknown_083CA310 -_080AE590: .4byte gUnknown_02038696 -_080AE594: .4byte gUnknown_03004210 - thumb_func_end sub_80AE514 - - thumb_func_start PutWindowTilemap -PutWindowTilemap: @ 80AE598 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - ldr r1, _080AE5B8 - bl StringCopy - strb r4, [r0] - adds r0, 0x1 - adds r1, r5, 0 - bl StringCopy - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AE5B8: .4byte gUnknown_083CC59C - thumb_func_end PutWindowTilemap - - thumb_func_start sub_80AE5BC -sub_80AE5BC: @ 80AE5BC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r0, r1, 24 - movs r2, 0xA0 - lsls r2, 20 - adds r1, r2 - lsrs r1, 24 - bl sub_80AE5D4 - pop {r0} - bx r0 - thumb_func_end sub_80AE5BC - - thumb_func_start sub_80AE5D4 -sub_80AE5D4: @ 80AE5D4 - push {r4-r7,lr} - sub sp, 0x8 - adds r2, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080AE660 - ldr r1, _080AE664 - adds r0, r3, 0 - bl PutWindowTilemap - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x6 - strb r0, [r3, 0x1] - movs r0, 0x4 - strb r0, [r3, 0x2] - adds r3, 0x3 - movs r0, 0xBA - strb r0, [r3] - adds r3, 0x1 - ldr r0, _080AE668 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AE67C - ldr r1, _080AE66C - lsls r0, r4, 3 - subs r0, r4 - lsls r2, r0, 2 - adds r0, r2, r1 - ldrh r6, [r0, 0x1A] - cmp r6, 0x1 - bne _080AE67C - adds r1, 0x8 - adds r1, r2, r1 - adds r0, r3, 0 - bl StringCopy - ldr r0, _080AE670 - ldr r1, _080AE660 - ldr r2, _080AE674 - adds r2, r4, r2 - ldrb r4, [r2] - movs r2, 0x16 - muls r2, r4 - movs r3, 0x94 - lsls r3, 2 - adds r2, r3 - ldr r5, _080AE678 - lsls r4, 1 - adds r3, r4, r5 - ldrb r3, [r3] - lsls r3, 27 - movs r7, 0xFB - lsls r7, 24 - adds r3, r7 - lsrs r3, 24 - adds r5, 0x1 - adds r4, r5 - ldrb r4, [r4] - lsls r4, 3 - str r4, [sp] - str r6, [sp, 0x4] - bl sub_8004D04 - b _080AE6B0 - .align 2, 0 -_080AE660: .4byte gUnknown_020238CC -_080AE664: .4byte gEmptyString_81E72B0 -_080AE668: .4byte gUnknown_0203869A -_080AE66C: .4byte gLinkPlayers -_080AE670: .4byte gUnknown_03004210 -_080AE674: .4byte gUnknown_02038696 -_080AE678: .4byte gUnknown_083CA310 -_080AE67C: - lsls r1, r4, 6 - ldr r0, _080AE6B8 - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - ldr r0, _080AE6BC - ldr r1, _080AE6C0 - ldr r2, _080AE6C4 - adds r2, r4, r2 - ldrb r4, [r2] - movs r2, 0x16 - muls r2, r4 - movs r3, 0x94 - lsls r3, 2 - adds r2, r3 - ldr r5, _080AE6C8 - lsls r4, 1 - adds r3, r4, r5 - ldrb r3, [r3] - adds r5, 0x1 - adds r4, r5 - ldrb r4, [r4] - str r4, [sp] - bl sub_8003460 -_080AE6B0: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE6B8: .4byte gUnknown_0203857D -_080AE6BC: .4byte gUnknown_03004210 -_080AE6C0: .4byte gUnknown_020238CC -_080AE6C4: .4byte gUnknown_02038696 -_080AE6C8: .4byte gUnknown_083CA310 - thumb_func_end sub_80AE5D4 - - thumb_func_start sub_80AE6CC -sub_80AE6CC: @ 80AE6CC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r0, r1, 24 - movs r2, 0xA0 - lsls r2, 20 - adds r1, r2 - lsrs r1, 24 - bl sub_80AE6E4 - pop {r0} - bx r0 - thumb_func_end sub_80AE6CC - - thumb_func_start sub_80AE6E4 -sub_80AE6E4: @ 80AE6E4 - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r2, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080AE75C - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x6 - strb r0, [r3, 0x1] - movs r0, 0x4 - strb r0, [r3, 0x2] - adds r3, 0x3 - lsls r1, r4, 6 - ldr r0, _080AE760 - adds r1, r0 - adds r0, r3, 0 - bl PutWindowTilemap - adds r3, r0, 0 - movs r0, 0xFF - strb r0, [r3] - ldr r0, _080AE764 - ldr r1, _080AE75C - ldr r2, _080AE768 - adds r4, r2 - ldrb r4, [r4] - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 18 - adds r2, r3 - lsrs r2, 16 - ldr r5, _080AE76C - lsls r4, 1 - adds r3, r4, r5 - ldrb r3, [r3] - lsls r3, 27 - movs r6, 0xFD - lsls r6, 24 - adds r3, r6 - lsrs r3, 24 - adds r5, 0x1 - adds r4, r5 - ldrb r4, [r4] - lsls r4, 3 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - bl sub_8004D04 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE75C: .4byte gUnknown_020238CC -_080AE760: .4byte gUnknown_02038572 -_080AE764: .4byte gUnknown_03004210 -_080AE768: .4byte gUnknown_02038696 -_080AE76C: .4byte gUnknown_083CA308 - thumb_func_end sub_80AE6E4 - - thumb_func_start sub_80AE770 -sub_80AE770: @ 80AE770 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x4 - bhi _080AE7FC - lsls r0, 2 - ldr r1, _080AE788 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AE788: .4byte _080AE78C - .align 2, 0 -_080AE78C: - .4byte _080AE7A0 - .4byte _080AE7B8 - .4byte _080AE7D0 - .4byte _080AE7E0 - .4byte _080AE7FC -_080AE7A0: - ldr r0, _080AE7B4 - lsls r2, 6 - adds r1, r2, r0 - adds r3, r1, 0 - adds r3, 0x26 - ldrb r5, [r3] - adds r3, 0x4 - ldrb r4, [r3] - adds r1, 0x27 - b _080AE80E - .align 2, 0 -_080AE7B4: .4byte gUnknown_02038570 -_080AE7B8: - ldr r0, _080AE7CC - lsls r2, 6 - adds r1, r2, r0 - adds r3, r1, 0 - adds r3, 0x27 - ldrb r5, [r3] - subs r3, 0x1 - ldrb r4, [r3] - adds r1, 0x28 - b _080AE80E - .align 2, 0 -_080AE7CC: .4byte gUnknown_02038570 -_080AE7D0: - ldr r1, _080AE7DC - lsls r2, 6 - adds r3, r2, r1 - adds r0, r3, 0 - adds r0, 0x28 - b _080AE7EA - .align 2, 0 -_080AE7DC: .4byte gUnknown_02038570 -_080AE7E0: - ldr r1, _080AE7F8 - lsls r2, 6 - adds r3, r2, r1 - adds r0, r3, 0 - adds r0, 0x29 -_080AE7EA: - ldrb r5, [r0] - subs r0, 0x1 - ldrb r4, [r0] - adds r0, 0x2 - ldrb r3, [r0] - adds r0, r1, 0 - b _080AE810 - .align 2, 0 -_080AE7F8: .4byte gUnknown_02038570 -_080AE7FC: - ldr r0, _080AE828 - lsls r2, 6 - adds r1, r2, r0 - adds r3, r1, 0 - adds r3, 0x2A - ldrb r5, [r3] - subs r3, 0x1 - ldrb r4, [r3] - adds r1, 0x26 -_080AE80E: - ldrb r3, [r1] -_080AE810: - adds r1, r2, r0 - adds r1, 0x2B - adds r0, r4, r3 - ldrb r1, [r1] - adds r0, r1 - asrs r0, 1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AE828: .4byte gUnknown_02038570 - thumb_func_end sub_80AE770 - - thumb_func_start sub_80AE82C -sub_80AE82C: @ 80AE82C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r6, _080AE854 -_080AE836: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80AE770 - lsls r1, r4, 1 - adds r1, r6 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AE836 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE854: .4byte gUnknown_02038670 - thumb_func_end sub_80AE82C - - thumb_func_start sub_80AE858 -sub_80AE858: @ 80AE858 - push {r4,r5,lr} - ldr r0, _080AE8A0 - bl LoadCompressedObjectPic - ldr r0, _080AE8A4 - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, _080AE8A8 - movs r1, 0x70 - movs r2, 0x24 - movs r3, 0x1E - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080AE8AC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r5, r2, r4 - ldrb r3, [r5, 0x5] - movs r1, 0xF - ands r1, r3 - movs r3, 0x10 - orrs r1, r3 - strb r1, [r5, 0x5] - adds r4, 0x1C - adds r2, r4 - ldr r1, _080AE8B0 - str r1, [r2] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AE8A0: .4byte gUnknown_083CA4BC -_080AE8A4: .4byte gContest2Pal -_080AE8A8: .4byte gSpriteTemplate_83CA4A4 -_080AE8AC: .4byte gSprites -_080AE8B0: .4byte SpriteCallbackDummy - thumb_func_end sub_80AE858 - - thumb_func_start sub_80AE8B4 -sub_80AE8B4: @ 80AE8B4 - push {lr} - ldr r0, _080AE8F8 - bl LoadCompressedObjectPic - ldr r0, _080AE8FC - bl LoadCompressedObjectPalette - ldr r0, _080AE900 - movs r1, 0x60 - movs r2, 0xA - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AE904 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3E - adds r1, r2 - mov r12, r1 - ldrb r1, [r1] - movs r3, 0x4 - orrs r1, r3 - mov r3, r12 - strb r1, [r3] - ldrh r1, [r2, 0x4] - lsls r1, 22 - lsrs r1, 22 - strh r1, [r2, 0x2E] - pop {r1} - bx r1 - .align 2, 0 -_080AE8F8: .4byte gUnknown_083CA4C4 -_080AE8FC: .4byte gUnknown_083CA4CC -_080AE900: .4byte gUnknown_083CA4D4 -_080AE904: .4byte gSprites - thumb_func_end sub_80AE8B4 - - thumb_func_start unref_sub_80AE908 -unref_sub_80AE908: @ 80AE908 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, _080AE9D4 - mov r9, r0 - ldr r1, _080AE9D8 - mov r8, r1 - ldrb r0, [r1] - lsls r0, 6 - add r0, r9 - ldrh r5, [r0] - lsls r6, r5, 3 - ldr r0, _080AE9DC - adds r0, r6, r0 - ldr r2, _080AE9E0 - mov r10, r2 - lsls r2, r5, 2 - add r2, r10 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080AE9E4 - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - bl DecompressPicFromTable_2 - ldr r0, _080AE9E8 - adds r6, r0 - ldr r0, [r6] - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - mov r1, r8 - ldrb r0, [r1] - lsls r0, 6 - add r0, r9 - ldrh r0, [r0] - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080AE9EC - mov r2, r8 - ldrb r1, [r2] - lsls r1, 6 - add r1, r9 - ldrh r1, [r1] - lsls r1, 2 - add r1, r10 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x70 - movs r3, 0x1E - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080AE9F0 - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r0, r3, r5 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r1, r5, 0 - adds r1, 0x1C - adds r1, r3, r1 - ldr r2, _080AE9F4 - str r2, [r1] - adds r5, 0x10 - adds r3, r5 - ldr r1, _080AE9F8 - str r1, [r3] - movs r1, 0 - bl StartSpriteAffineAnim - adds r0, r4, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080AE9D4: .4byte gUnknown_02038570 -_080AE9D8: .4byte gUnknown_02038695 -_080AE9DC: .4byte gMonFrontPicTable -_080AE9E0: .4byte gMonFrontPicCoords -_080AE9E4: .4byte gUnknown_081FAF4C -_080AE9E8: .4byte gMonPaletteTable -_080AE9EC: .4byte gUnknown_02024E8C -_080AE9F0: .4byte gSprites -_080AE9F4: .4byte SpriteCallbackDummy -_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18 - thumb_func_end unref_sub_80AE908 - - thumb_func_start sub_80AE9FC -sub_80AE9FC: @ 80AE9FC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - mov r8, r1 - adds r6, r2, 0 - lsls r0, 16 - lsrs r0, 16 - bl sub_80B2778 - mov r9, r0 - mov r5, r9 - lsls r0, r5, 3 - ldr r1, _080AEACC - adds r0, r1 - ldr r1, _080AEAD0 - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080AEAD4 - ldr r4, [r4] - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - bl sub_800D334 - adds r0, r5, 0 - mov r1, r8 - adds r2, r6, 0 - bl species_and_otid_get_pal - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r5, 0 - movs r1, 0 - bl GetMonSpriteTemplate_803C56C - ldr r4, _080AEAD8 - movs r0, 0x2 - adds r1, r5, 0 - movs r2, 0 - bl sub_8077E44 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - movs r1, 0x70 - movs r3, 0x1E - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080AEADC - mov r8, r0 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - mov r0, r8 - adds r4, r6, r0 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0x2 - bl sub_8079E90 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - mov r0, r8 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _080AEAE0 - str r1, [r0] - ldrb r0, [r4, 0x5] - lsrs r0, 4 - strh r0, [r4, 0x2E] - strh r5, [r4, 0x32] - adds r0, r5, 0 - bl sub_80AEB1C - lsls r0, 24 - cmp r0, 0 - beq _080AEAE8 - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, _080AEAE4 - b _080AEAF0 - .align 2, 0 -_080AEACC: .4byte gMonBackPicTable -_080AEAD0: .4byte gMonBackPicCoords -_080AEAD4: .4byte gUnknown_081FAF4C -_080AEAD8: .4byte gUnknown_02024E8C -_080AEADC: .4byte gSprites -_080AEAE0: .4byte SpriteCallbackDummy -_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18 -_080AEAE8: - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, _080AEB14 -_080AEAF0: - str r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _080AEB18 - adds r0, r1 - movs r1, 0 - bl StartSpriteAffineAnim - adds r0, r7, 0 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC -_080AEB18: .4byte gSprites - thumb_func_end sub_80AE9FC - - thumb_func_start sub_80AEB1C -sub_80AEB1C: @ 80AEB1C - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC9 - beq _080AEB2A - movs r0, 0x1 - b _080AEB2C -_080AEB2A: - movs r0, 0 -_080AEB2C: - pop {r1} - bx r1 - thumb_func_end sub_80AEB1C - - thumb_func_start sub_80AEB30 -sub_80AEB30: @ 80AEB30 - push {lr} - ldr r0, _080AEB44 - bl sub_80AEB4C - ldr r0, _080AEB48 - bl sub_80AEB4C - pop {r0} - bx r0 - .align 2, 0 -_080AEB44: .4byte 0x0600c000 -_080AEB48: .4byte 0x0600e000 - thumb_func_end sub_80AEB30 - - thumb_func_start sub_80AEB4C -sub_80AEB4C: @ 80AEB4C - movs r1, 0xA0 - lsls r1, 3 - adds r2, r0, r1 - ldr r1, _080AEB60 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080AEB64 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bx lr - .align 2, 0 -_080AEB60: .4byte 0x040000d4 -_080AEB64: .4byte 0x80000140 - thumb_func_end sub_80AEB4C - - thumb_func_start sub_80AEB68 -sub_80AEB68: @ 80AEB68 - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r2, _080AEB90 - ldr r1, _080AEB94 - lsrs r0, 13 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080AEBD0 - lsls r0, 2 - ldr r1, _080AEB98 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AEB90: .4byte gContestEffects -_080AEB94: .4byte gContestMoves -_080AEB98: .4byte _080AEB9C - .align 2, 0 -_080AEB9C: - .4byte _080AEBC0 - .4byte _080AEBC0 - .4byte _080AEBC8 - .4byte _080AEBC8 - .4byte _080AEBD0 - .4byte _080AEBD0 - .4byte _080AEBD0 - .4byte _080AEBD0 - .4byte _080AEBC0 -_080AEBC0: - ldr r0, _080AEBC4 - b _080AEBD2 - .align 2, 0 -_080AEBC4: .4byte 0x00009082 -_080AEBC8: - ldr r0, _080AEBCC - b _080AEBD2 - .align 2, 0 -_080AEBCC: .4byte 0x00009088 -_080AEBD0: - ldr r0, _080AEBE8 -_080AEBD2: - lsls r1, r3, 12 - movs r2, 0x90 - lsls r2, 8 - adds r1, r2 - lsls r0, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_080AEBE8: .4byte 0x00009086 - thumb_func_end sub_80AEB68 - - thumb_func_start sub_80AEBEC -sub_80AEBEC: @ 80AEBEC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080AEC74 - movs r1, 0x10 - str r1, [sp] - movs r1, 0x22 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xB - movs r3, 0x1F - bl FillWindowRect_DefaultPalette - ldr r1, _080AEC78 - lsls r0, r4, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - ldr r1, _080AEC7C - cmp r0, 0 - beq _080AEC34 - adds r1, 0x5 - cmp r0, 0x1 - beq _080AEC34 - adds r1, 0x5 - cmp r0, 0x2 - beq _080AEC34 - adds r1, 0x40 - cmp r0, 0x3 - bne _080AEC34 - subs r1, 0x20 -_080AEC34: - ldr r0, _080AEC74 - mov r8, r0 - ldr r6, _080AEC78 - lsls r5, r4, 3 - ldr r7, _080AEC80 - ldr r0, _080AEC84 - mov r9, r0 - ldr r4, _080AEC88 - ldr r3, _080AEC8C - movs r2, 0x4 -_080AEC48: - strh r1, [r3] - adds r0, r1, 0 - adds r0, 0x10 - strh r0, [r4] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, 0x2 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080AEC48 - adds r0, r5, r6 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - bne _080AEC90 - movs r0, 0 - b _080AEC9C - .align 2, 0 -_080AEC74: .4byte gUnknown_03004210 -_080AEC78: .4byte gContestMoves -_080AEC7C: .4byte 0x00004040 -_080AEC80: .4byte gContestEffects -_080AEC84: .4byte gUnknown_083CADD4 -_080AEC88: .4byte 0x0600c816 -_080AEC8C: .4byte 0x0600c7d6 -_080AEC90: - ldrb r0, [r1, 0x1] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 -_080AEC9C: - cmp r0, 0x8 - bls _080AECA2 - movs r0, 0x8 -_080AECA2: - movs r2, 0 - ldr r1, _080AECB8 - adds r4, r1, 0 - adds r1, 0x23 - adds r3, r1, 0 - ldr r1, _080AECBC -_080AECAE: - cmp r2, r0 - bge _080AECC0 - strh r4, [r1] - b _080AECC2 - .align 2, 0 -_080AECB8: .4byte 0x00005012 -_080AECBC: .4byte 0x0600c7ea -_080AECC0: - strh r3, [r1] -_080AECC2: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _080AECAE - adds r0, r5, r6 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1, 0x2] - cmp r0, 0xFF - bne _080AECDC - movs r0, 0 - b _080AECE8 -_080AECDC: - ldrb r0, [r1, 0x2] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 -_080AECE8: - cmp r0, 0x8 - bls _080AECEE - movs r0, 0x8 -_080AECEE: - movs r2, 0 - ldr r1, _080AED04 - adds r4, r1, 0 - adds r1, 0x22 - adds r3, r1, 0 - ldr r1, _080AED08 -_080AECFA: - cmp r2, r0 - bge _080AED0C - strh r4, [r1] - b _080AED0E - .align 2, 0 -_080AED04: .4byte 0x00005014 -_080AED08: .4byte 0x0600c82a -_080AED0C: - strh r3, [r1] -_080AED0E: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _080AECFA - adds r0, r5, r6 - ldrb r0, [r0] - lsls r0, 2 - add r0, r9 - ldr r1, [r0] - movs r2, 0xD9 - lsls r2, 2 - movs r0, 0x23 - str r0, [sp] - mov r0, r8 - movs r3, 0xB - bl sub_8003460 - ldr r1, _080AED50 - ldr r2, _080AED54 - movs r0, 0x1F - str r0, [sp] - mov r0, r8 - movs r3, 0x10 - bl sub_8003460 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AED50: .4byte gUnknown_083CC5A2 -_080AED54: .4byte 0x00000362 - thumb_func_end sub_80AEBEC - - thumb_func_start sub_80AED58 -sub_80AED58: @ 80AED58 - push {lr} - sub sp, 0x8 - ldr r0, _080AED78 - movs r1, 0x1C - str r1, [sp] - movs r1, 0x28 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xB - movs r3, 0x23 - bl FillWindowRect_DefaultPalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080AED78: .4byte gUnknown_03004210 - thumb_func_end sub_80AED58 - - thumb_func_start sub_80AED7C -sub_80AED7C: @ 80AED7C - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, _080AEDD8 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080AEDEC - cmp r6, 0 - beq _080AEDEC - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80AEB68 - lsls r0, 16 - lsrs r0, 16 - lsls r3, r5, 6 - ldr r1, _080AEDDC - adds r1, r3, r1 - strh r0, [r1] - ldr r1, _080AEDE0 - adds r1, r3, r1 - adds r2, r0, 0x1 - strh r2, [r1] - ldr r1, _080AEDE4 - adds r2, r3, r1 - adds r1, r0, 0 - adds r1, 0x10 - strh r1, [r2] - ldr r1, _080AEDE8 - adds r3, r1 - adds r0, 0x11 - strh r0, [r3] - b _080AEE08 - .align 2, 0 -_080AEDD8: .4byte gUnknown_02038696 -_080AEDDC: .4byte 0x0600c028 -_080AEDE0: .4byte 0x0600c02a -_080AEDE4: .4byte 0x0600c068 -_080AEDE8: .4byte 0x0600c06a -_080AEDEC: - lsls r1, r5, 6 - ldr r0, _080AEE10 - adds r0, r1, r0 - movs r2, 0 - strh r2, [r0] - ldr r0, _080AEE14 - adds r0, r1, r0 - strh r2, [r0] - ldr r3, _080AEE18 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080AEE1C - adds r1, r0 - strh r2, [r1] -_080AEE08: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AEE10: .4byte 0x0600c028 -_080AEE14: .4byte 0x0600c02a -_080AEE18: .4byte 0x0600c068 -_080AEE1C: .4byte 0x0600c06a - thumb_func_end sub_80AED7C - - thumb_func_start unref_sub_80AEE20 -unref_sub_80AEE20: @ 80AEE20 - push {r4,lr} - movs r4, 0 -_080AEE24: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _080AEE48 - adds r0, r1 - ldrh r0, [r0, 0x6] - adds r1, r4, 0 - bl sub_80AED7C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AEE24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEE48: .4byte 0x02019260 - thumb_func_end unref_sub_80AEE20 - - thumb_func_start sub_80AEE4C -sub_80AEE4C: @ 80AEE4C - ldr r0, _080AEE50 - bx lr - .align 2, 0 -_080AEE50: .4byte 0x00002034 - thumb_func_end sub_80AEE4C - - thumb_func_start sub_80AEE54 -sub_80AEE54: @ 80AEE54 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - lsls r5, r7, 3 - subs r0, r5, r7 - lsls r0, 2 - ldr r1, _080AEE84 - adds r0, r1 - ldrb r0, [r0, 0x10] - movs r2, 0x30 - ands r2, r0 - mov r10, r1 - cmp r2, 0 - bne _080AEE88 - movs r0, 0 - b _080AEF3C - .align 2, 0 -_080AEE84: .4byte 0x02019260 -_080AEE88: - ldr r0, _080AEEB0 - adds r0, r7, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r2, 0x10 - bne _080AEEF0 - adds r0, r7, 0 - bl sub_80AEE4C - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r4, 0 - adds r6, r5, 0 - b _080AEEC4 - .align 2, 0 -_080AEEB0: .4byte gUnknown_02038696 -_080AEEB4: - mov r1, r9 - adds r0, r1, r4 - lsls r0, 6 - ldr r1, _080AEEE8 - adds r0, r1 - mov r1, r8 - strh r1, [r0] - adds r4, 0x1 -_080AEEC4: - subs r0, r6, r7 - lsls r0, 2 - ldr r1, _080AEEEC - adds r5, r0, r1 - movs r0, 0xD - ldrsb r0, [r5, r0] - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - cmp r0, r4 - bgt _080AEEB4 - ldr r0, [sp] - cmp r0, 0 - beq _080AEF3A - movs r0, 0x5B - b _080AEF2C - .align 2, 0 -_080AEEE8: .4byte 0x0600c026 -_080AEEEC: .4byte 0x02019260 -_080AEEF0: - movs r1, 0 - mov r8, r1 - movs r4, 0x3 - adds r6, r5, 0 - b _080AEF0A -_080AEEFA: - mov r1, r9 - adds r0, r1, r4 - lsls r0, 6 - ldr r1, _080AEF4C - adds r0, r1 - mov r1, r8 - strh r1, [r0] - subs r4, 0x1 -_080AEF0A: - subs r0, r6, r7 - lsls r0, 2 - mov r1, r10 - adds r5, r0, r1 - movs r0, 0xD - ldrsb r0, [r5, r0] - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - cmp r0, r4 - blt _080AEEFA - ldr r0, [sp] - cmp r0, 0 - beq _080AEF3A - movs r0, 0x26 -_080AEF2C: - bl PlaySE - ldrb r1, [r5, 0x10] - movs r0, 0x31 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x10] -_080AEF3A: - movs r0, 0x1 -_080AEF3C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080AEF4C: .4byte 0x0600bfe6 - thumb_func_end sub_80AEE54 - - thumb_func_start sub_80AEF50 -sub_80AEF50: @ 80AEF50 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r5, 0 -_080AEF5A: - ldr r0, _080AEF80 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80AEE4C - lsls r0, 16 - lsrs r6, r0, 16 - movs r4, 0 - lsls r7, r5, 3 - adds r2, r5, 0x1 - b _080AEF92 - .align 2, 0 -_080AEF80: .4byte gUnknown_02038696 -_080AEF84: - mov r1, r8 - adds r0, r1, r4 - lsls r0, 6 - ldr r3, _080AEFE0 - adds r0, r3 - strh r6, [r0] - adds r4, 0x1 -_080AEF92: - subs r0, r7, r5 - lsls r0, 2 - ldr r1, _080AEFE4 - adds r0, r1 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - str r2, [sp] - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - ldr r2, [sp] - cmp r4, r0 - blt _080AEF84 - movs r6, 0 - cmp r4, 0x2 - bgt _080AEFCE - lsls r0, r4, 6 - ldr r1, _080AEFE0 - adds r0, r1 - mov r3, r8 - lsls r1, r3, 6 - adds r0, r1 -_080AEFC4: - strh r6, [r0] - adds r0, 0x40 - adds r4, 0x1 - cmp r4, 0x2 - ble _080AEFC4 -_080AEFCE: - adds r5, r2, 0 - cmp r5, 0x3 - ble _080AEF5A - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AEFE0: .4byte 0x0600c026 -_080AEFE4: .4byte 0x02019260 - thumb_func_end sub_80AEF50 - - thumb_func_start sub_80AEFE8 -sub_80AEFE8: @ 80AEFE8 - push {lr} - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - cmp r1, 0x4 - bhi _080AF02A - lsls r0, r1, 2 - ldr r1, _080AF000 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AF000: .4byte _080AF004 - .align 2, 0 -_080AF004: - .4byte _080AF018 - .4byte _080AF01C - .4byte _080AF020 - .4byte _080AF024 - .4byte _080AF028 -_080AF018: - movs r0, 0x80 - b _080AF02A -_080AF01C: - movs r0, 0x84 - b _080AF02A -_080AF020: - movs r0, 0x86 - b _080AF02A -_080AF024: - movs r0, 0x88 - b _080AF02A -_080AF028: - movs r0, 0x82 -_080AF02A: - movs r1, 0x90 - lsls r1, 8 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80AEFE8 - - thumb_func_start sub_80AF038 -sub_80AF038: @ 80AF038 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r5, 0x1 - movs r4, 0 - ldr r0, _080AF074 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x2 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - ldr r1, _080AF078 - adds r2, r0, r1 - ldr r0, [r2, 0x10] - ldr r1, _080AF07C - ands r0, r1 - cmp r0, 0 - bne _080AF06C - ldrb r0, [r2, 0xF] - cmp r0, 0 - beq _080AF080 -_080AF06C: - adds r0, r3, 0 - movs r1, 0 - b _080AF0A6 - .align 2, 0 -_080AF074: .4byte gUnknown_02038696 -_080AF078: .4byte 0x02019260 -_080AF07C: .4byte 0x00ff0003 -_080AF080: - ldrb r1, [r2, 0xC] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080AF090 - adds r0, r3, 0 - movs r1, 0x1 - b _080AF0A6 -_080AF090: - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080AF0A2 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080AF0B0 -_080AF0A2: - adds r0, r3, 0 - movs r1, 0x2 -_080AF0A6: - bl sub_80AEFE8 - lsls r0, 16 - lsrs r4, r0, 16 - b _080AF0B2 -_080AF0B0: - movs r5, 0 -_080AF0B2: - cmp r5, 0 - beq _080AF0EC - lsls r2, r6, 6 - ldr r0, _080AF0DC - adds r0, r2, r0 - strh r4, [r0] - ldr r0, _080AF0E0 - adds r0, r2, r0 - adds r1, r4, 0x1 - strh r1, [r0] - ldr r0, _080AF0E4 - adds r1, r2, r0 - adds r0, r4, 0 - adds r0, 0x10 - strh r0, [r1] - ldr r0, _080AF0E8 - adds r2, r0 - adds r0, r4, 0 - adds r0, 0x11 - strh r0, [r2] - b _080AF106 - .align 2, 0 -_080AF0DC: .4byte 0x0600c028 -_080AF0E0: .4byte 0x0600c02a -_080AF0E4: .4byte 0x0600c068 -_080AF0E8: .4byte 0x0600c06a -_080AF0EC: - lsls r1, r6, 6 - ldr r0, _080AF110 - adds r0, r1, r0 - strh r5, [r0] - ldr r0, _080AF114 - adds r0, r1, r0 - strh r5, [r0] - ldr r2, _080AF118 - adds r0, r1, r2 - strh r5, [r0] - ldr r0, _080AF11C - adds r1, r0 - strh r5, [r1] -_080AF106: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080AF110: .4byte 0x0600c028 -_080AF114: .4byte 0x0600c02a -_080AF118: .4byte 0x0600c068 -_080AF11C: .4byte 0x0600c06a - thumb_func_end sub_80AF038 - - thumb_func_start sub_80AF120 -sub_80AF120: @ 80AF120 - push {r4,lr} - movs r4, 0 -_080AF124: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80AF038 - adds r4, 0x1 - cmp r4, 0x3 - ble _080AF124 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF120 - - thumb_func_start sub_80AF138 -sub_80AF138: @ 80AF138 - push {lr} - sub sp, 0x8 - ldr r0, _080AF158 - movs r1, 0x11 - str r1, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x1 - movs r3, 0xF - bl FillWindowRect_DefaultPalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080AF158: .4byte gUnknown_03004210 - thumb_func_end sub_80AF138 - - thumb_func_start sub_80AF15C -sub_80AF15C: @ 80AF15C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - adds r0, r4, 0 - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - beq _080AF174 - movs r0, 0 - b _080AF1AA -_080AF174: - ldr r0, _080AF190 - ldrb r0, [r0] - cmp r4, r0 - beq _080AF198 - adds r0, r4, 0 - bl sub_81288F4 - bl sub_8128944 - lsls r0, 24 - ldr r2, _080AF194 - lsrs r0, 23 - lsls r1, r4, 6 - b _080AF1A2 - .align 2, 0 -_080AF190: .4byte gUnknown_02038695 -_080AF194: .4byte gUnknown_02038570 -_080AF198: - ldr r2, _080AF1B0 - ldr r0, _080AF1B4 - ldrb r0, [r0] - lsls r0, 1 - lsls r1, r5, 6 -_080AF1A2: - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] -_080AF1AA: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AF1B0: .4byte gUnknown_02038570 -_080AF1B4: .4byte 0x02019204 - thumb_func_end sub_80AF15C - - thumb_func_start sub_80AF1B8 -sub_80AF1B8: @ 80AF1B8 - push {r4,lr} - movs r4, 0 -_080AF1BC: - adds r0, r4, 0 - bl sub_80AF15C - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r2, _080AF1E0 - adds r1, r2 - strh r0, [r1, 0x6] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF1BC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF1E0: .4byte 0x02019260 - thumb_func_end sub_80AF1B8 - - thumb_func_start sub_80AF1E4 -sub_80AF1E4: @ 80AF1E4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _080AF1FC - adds r0, r5, 0 - adds r0, 0xA - lsls r0, 24 - lsrs r3, r0, 24 - b _080AF1FE -_080AF1FC: - movs r3, 0xE -_080AF1FE: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - ldr r1, _080AF21C - adds r1, r0, r1 - ldrh r0, [r1, 0x6] - cmp r0, 0 - bne _080AF228 - ldr r0, _080AF220 - ldr r1, _080AF224 - adds r2, r3, 0 - bl PutWindowTilemap - b _080AF23A - .align 2, 0 -_080AF21C: .4byte 0x02019260 -_080AF220: .4byte gUnknown_020238CC -_080AF224: .4byte gUnknownText_MissedTurn -_080AF228: - ldr r0, _080AF270 - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AF274 - adds r1, r2 - adds r2, r3, 0 - bl PutWindowTilemap -_080AF23A: - adds r0, r5, 0 - bl sub_80AF2A0 - ldr r0, _080AF278 - ldr r1, _080AF270 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 18 - movs r3, 0xAE - lsls r3, 18 - adds r2, r3 - lsrs r2, 16 - ldr r4, _080AF27C - lsls r5, 1 - adds r3, r5, r4 - ldrb r3, [r3] - adds r4, 0x1 - adds r5, r4 - ldrb r4, [r5] - str r4, [sp] - bl sub_8003460 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF270: .4byte gUnknown_020238CC -_080AF274: .4byte gMoveNames -_080AF278: .4byte gUnknown_03004210 -_080AF27C: .4byte gUnknown_083CA318 - thumb_func_end sub_80AF1E4 - - thumb_func_start unref_sub_80AF280 -unref_sub_80AF280: @ 80AF280 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_080AF288: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80AF1E4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF288 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end unref_sub_80AF280 - - thumb_func_start sub_80AF2A0 -sub_80AF2A0: @ 80AF2A0 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - ldr r4, _080AF2D8 - ldr r1, _080AF2DC - lsrs r0, 23 - adds r2, r0, r1 - ldrb r2, [r2] - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - adds r0, r2, 0x7 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - bl FillWindowRect_DefaultPalette - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF2D8: .4byte gUnknown_03004210 -_080AF2DC: .4byte gUnknown_083CA318 - thumb_func_end sub_80AF2A0 - - thumb_func_start unref_sub_80AF2E0 -unref_sub_80AF2E0: @ 80AF2E0 - push {r4,lr} - movs r4, 0 -_080AF2E4: - adds r0, r4, 0 - bl sub_80AF2A0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF2E4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80AF2E0 - - thumb_func_start sub_80AF2FC -sub_80AF2FC: @ 80AF2FC - push {r4-r7,lr} - sub sp, 0x8 - movs r4, 0 - ldr r2, _080AF398 -_080AF304: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2] - ldrh r3, [r0, 0x4] - adds r1, r3 - strh r1, [r0, 0x4] - lsls r0, r4, 1 - add r0, sp - strh r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF304 - movs r4, 0 -_080AF326: - movs r2, 0x3 - cmp r2, r4 - bls _080AF354 -_080AF32C: - subs r5, r2, 0x1 - lsls r0, r5, 1 - mov r7, sp - adds r3, r7, r0 - lsls r0, r2, 1 - adds r2, r7, r0 - ldrh r6, [r3] - movs r0, 0 - ldrsh r1, [r3, r0] - movs r7, 0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080AF34C - ldrh r0, [r2] - strh r6, [r2] - strh r0, [r3] -_080AF34C: - lsls r0, r5, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bhi _080AF32C -_080AF354: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080AF326 - movs r4, 0 - ldr r0, _080AF398 - mov r12, r0 - movs r7, 0x4 - negs r7, r7 - movs r6, 0x3 -_080AF36A: - movs r2, 0 - lsls r0, r4, 3 - adds r5, r4, 0x1 - subs r0, r4 - lsls r0, 2 - mov r1, r12 - adds r3, r0, r1 - movs r4, 0x4 - ldrsh r1, [r3, r4] -_080AF37C: - lsls r0, r2, 1 - add r0, sp - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r1, r0 - bne _080AF39C - ands r2, r6 - ldrb r1, [r3, 0xB] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0xB] - b _080AF3A6 - .align 2, 0 -_080AF398: .4byte 0x02019260 -_080AF39C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080AF37C -_080AF3A6: - lsls r0, r5, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF36A - movs r0, 0x1 - bl sub_80B0F28 - bl sub_80B159C - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AF2FC - - thumb_func_start sub_80AF3C0 -sub_80AF3C0: @ 80AF3C0 - push {lr} - ldr r2, _080AF3D0 - adds r3, r2, 0 -_080AF3C6: - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _080AF3D4 - movs r1, 0x5 - b _080AF3F2 - .align 2, 0 -_080AF3D0: .4byte 0x02019260 -_080AF3D4: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - cmp r0, 0 - ble _080AF3F2 - movs r1, 0x1 - cmp r0, 0x1D - ble _080AF3F2 - movs r1, 0x2 - cmp r0, 0x3B - ble _080AF3F2 - movs r1, 0x4 - cmp r0, 0x4F - bgt _080AF3F2 - movs r1, 0x3 -_080AF3F2: - strb r1, [r2, 0x1A] - adds r2, 0x1C - adds r0, r3, 0 - adds r0, 0x54 - cmp r2, r0 - ble _080AF3C6 - pop {r0} - bx r0 - thumb_func_end sub_80AF3C0 - - thumb_func_start sub_80AF404 -sub_80AF404: @ 80AF404 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _080AF42C - adds r2, r1, r0 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080AF428 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080AF430 -_080AF428: - movs r0, 0 - b _080AF432 - .align 2, 0 -_080AF42C: .4byte 0x02019260 -_080AF430: - movs r0, 0x1 -_080AF432: - pop {r1} - bx r1 - thumb_func_end sub_80AF404 - - thumb_func_start sub_80AF438 -sub_80AF438: @ 80AF438 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r0, _080AF594 - mov r10, r0 - movs r1, 0 - mov r12, r1 - movs r0, 0x7 - negs r0, r0 - mov r9, r0 - movs r1, 0x2 - negs r1, r1 - mov r8, r1 -_080AF458: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - mov r1, r10 - adds r3, r0, r1 - movs r0, 0 - strh r0, [r3, 0x2] - strh r0, [r3] - mov r0, r12 - strb r0, [r3, 0x12] - ldrb r2, [r3, 0xC] - movs r0, 0x6 - ands r0, r2 - cmp r0, 0 - beq _080AF48A - lsls r0, r2, 29 - lsrs r0, 30 - subs r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 1 - mov r1, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] -_080AF48A: - mov r1, r12 - strb r1, [r3, 0xE] - ldrb r0, [r3, 0x10] - mov r1, r8 - ands r1, r0 - mov r0, r12 - strb r0, [r3, 0xF] - movs r0, 0x3 - negs r0, r0 - ands r1, r0 - movs r6, 0x5 - negs r6, r6 - ands r1, r6 - movs r7, 0x9 - negs r7, r7 - ands r1, r7 - ldrb r0, [r3, 0xC] - mov r4, r8 - ands r4, r0 - strb r4, [r3, 0xC] - movs r0, 0xFF - strb r0, [r3, 0x13] - movs r0, 0x1 - negs r0, r0 - strb r0, [r3, 0x14] - subs r0, 0x30 - ands r1, r0 - strb r1, [r3, 0x10] - ldrb r2, [r3, 0x15] - lsls r1, r2, 31 - lsrs r1, 31 - lsls r1, 2 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - mov r1, r8 - ands r0, r1 - strb r0, [r3, 0x15] - ldrb r0, [r3, 0x11] - movs r2, 0x4 - negs r2, r2 - ands r2, r0 - movs r0, 0x21 - negs r0, r0 - ands r2, r0 - strb r2, [r3, 0x11] - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _080AF500 - adds r0, r4, 0 - mov r1, r9 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3, 0xC] - adds r0, r2, 0 - ands r0, r6 - strb r0, [r3, 0x11] -_080AF500: - ldrb r2, [r3, 0x11] - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080AF518 - ldrb r0, [r3, 0xB] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0xB] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r3, 0x11] -_080AF518: - ldrb r0, [r3, 0x11] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x11] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080AF458 - movs r5, 0 - mov r6, r10 - mov r9, r5 - adds r7, r6, 0 - subs r7, 0x5C - movs r0, 0x18 - negs r0, r0 - adds r0, r6 - mov r8, r0 -_080AF53E: - lsls r4, r5, 3 - subs r4, r5 - lsls r4, 2 - adds r4, r6 - ldrh r2, [r4, 0x6] - strh r2, [r4, 0x8] - lsls r1, r5, 1 - ldrb r0, [r7, 0x1] - lsls r0, 3 - adds r1, r0 - adds r0, r6, 0 - subs r0, 0x40 - adds r0, r1 - strh r2, [r0] - ldrh r0, [r4, 0x6] - bl contest_get_move_excitement - ldrb r1, [r7, 0x1] - lsls r1, 2 - adds r1, r5, r1 - add r1, r8 - strb r0, [r1] - mov r1, r9 - strh r1, [r4, 0x6] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080AF53E - ldr r2, _080AF598 - ldrb r1, [r2, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF594: .4byte 0x02019260 -_080AF598: .4byte 0x02019328 - thumb_func_end sub_80AF438 - - thumb_func_start sub_80AF59C -sub_80AF59C: @ 80AF59C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _080AF5C4 - adds r2, r1, r0 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080AF5C0 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080AF5C8 -_080AF5C0: - movs r0, 0x1 - b _080AF5CA - .align 2, 0 -_080AF5C4: .4byte 0x02019260 -_080AF5C8: - movs r0, 0 -_080AF5CA: - pop {r1} - bx r1 - thumb_func_end sub_80AF59C - - thumb_func_start unref_sub_80AF5D0 -unref_sub_80AF5D0: @ 80AF5D0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r1, _080AF5E8 - ldrb r1, [r1] - cmp r0, r1 - beq _080AF600 -_080AF5E2: - movs r0, 0x1 - b _080AF626 - .align 2, 0 -_080AF5E8: .4byte gUnknown_02038695 -_080AF5EC: - ldrb r0, [r4, 0x6] - movs r1, 0x1 - b _080AF5F6 -_080AF5F2: - ldrb r0, [r4, 0x6] - movs r1, 0x2 -_080AF5F6: - orrs r0, r1 - strb r0, [r4, 0x6] - b _080AF5E2 -_080AF5FC: - strb r3, [r2] - b _080AF5E2 -_080AF600: - movs r0, 0 - ldr r4, _080AF62C - adds r5, r4, 0x2 -_080AF606: - cmp r3, 0x3 - beq _080AF5EC - cmp r3, 0x4 - beq _080AF5F2 - adds r2, r0, r5 - ldrb r1, [r2] - cmp r1, r3 - beq _080AF5E2 - cmp r1, 0xFF - beq _080AF5FC - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080AF606 - movs r0, 0 -_080AF626: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AF62C: .4byte 0x02019204 - thumb_func_end unref_sub_80AF5D0 - - thumb_func_start sub_80AF630 -sub_80AF630: @ 80AF630 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80AF688 - ldr r1, _080AF65C - lsls r4, 1 - adds r1, r4, r1 - strh r0, [r1] - ldr r2, _080AF660 - adds r2, r4, r2 - ldr r1, _080AF664 - adds r4, r1 - ldrh r4, [r4] - adds r0, r4 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF65C: .4byte gUnknown_02038688 -_080AF660: .4byte gUnknown_02038678 -_080AF664: .4byte gUnknown_02038670 - thumb_func_end sub_80AF630 - - thumb_func_start sub_80AF668 -sub_80AF668: @ 80AF668 - push {r4,lr} - movs r4, 0 -_080AF66C: - adds r0, r4, 0 - bl sub_80AF630 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF66C - bl sub_80AF6A0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF668 - - thumb_func_start sub_80AF688 -sub_80AF688: @ 80AF688 - lsls r0, 24 - ldr r1, _080AF69C - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 17 - asrs r0, 16 - bx lr - .align 2, 0 -_080AF69C: .4byte gUnknown_02038680 - thumb_func_end sub_80AF688 - - thumb_func_start sub_80AF6A0 -sub_80AF6A0: @ 80AF6A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x70 - mov r0, sp - movs r1, 0 - movs r2, 0x8 - bl memset - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x8 - str r1, [sp, 0x64] - mov r3, sp - adds r3, 0xC - str r3, [sp, 0x68] - mov r6, sp - adds r6, 0x14 - str r6, [sp, 0x6C] - mov r4, sp -_080AF6CE: - bl Random - strh r0, [r4] - movs r2, 0 - cmp r2, r9 - bge _080AF70C - mov r1, sp - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bne _080AF6F0 - subs r4, 0x2 - movs r7, 0x1 - negs r7, r7 - add r9, r7 - b _080AF70C -_080AF6F0: - adds r2, 0x1 - cmp r2, r9 - bge _080AF70C - lsls r0, r2, 1 - mov r3, sp - adds r1, r3, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _080AF6F0 - subs r4, 0x2 - movs r6, 0x1 - negs r6, r6 - add r9, r6 -_080AF70C: - adds r4, 0x2 - movs r7, 0x1 - add r9, r7 - mov r0, r9 - cmp r0, 0x3 - ble _080AF6CE - movs r1, 0 - mov r9, r1 - mov r4, sp - ldr r6, _080AF81C - ldr r2, [sp, 0x64] - ldr r5, _080AF820 - ldr r3, [sp, 0x68] -_080AF726: - mov r7, r9 - lsls r1, r7, 4 - movs r7, 0 - ldrsh r0, [r6, r7] - str r0, [r2] - movs r7, 0 - ldrsh r0, [r5, r7] - str r0, [r3] - ldrh r0, [r4] - str r0, [r2, 0x8] - ldr r0, [sp, 0x6C] - adds r1, r0, r1 - mov r7, r9 - str r7, [r1] - adds r4, 0x2 - adds r6, 0x2 - adds r2, 0x10 - adds r5, 0x2 - adds r3, 0x10 - movs r0, 0x1 - add r9, r0 - mov r1, r9 - cmp r1, 0x3 - ble _080AF726 - movs r3, 0 - mov r9, r3 -_080AF75A: - movs r4, 0x3 - cmp r4, r9 - ble _080AF7E4 - add r7, sp, 0x48 - ldr r6, [sp, 0x68] - str r6, [sp, 0x58] - ldr r0, [sp, 0x64] - adds r0, 0x8 - str r0, [sp, 0x5C] - ldr r1, [sp, 0x6C] - str r1, [sp, 0x60] -_080AF770: - subs r3, r4, 0x1 - mov r10, r3 - mov r0, r10 - adds r1, r4, 0 - ldr r2, [sp, 0x64] - bl sub_80AF828 - lsls r0, 24 - cmp r0, 0 - beq _080AF7DE - mov r6, r10 - lsls r2, r6, 4 - ldr r0, [sp, 0x64] - adds r3, r0, r2 - ldr r0, [r3] - str r0, [sp, 0x48] - ldr r1, [sp, 0x58] - adds r6, r1, r2 - ldr r0, [r6] - str r0, [r7, 0x4] - ldr r0, [sp, 0x5C] - adds r0, r2 - mov r8, r0 - ldr r0, [r0] - str r0, [r7, 0x8] - ldr r1, [sp, 0x60] - adds r2, r1, r2 - ldr r0, [r2] - str r0, [r7, 0xC] - lsls r1, r4, 4 - ldr r0, [sp, 0x64] - adds r5, r0, r1 - ldr r0, [r5] - str r0, [r3] - ldr r3, [sp, 0x58] - adds r4, r3, r1 - ldr r0, [r4] - str r0, [r6] - ldr r6, [sp, 0x5C] - adds r3, r6, r1 - ldr r0, [r3] - mov r6, r8 - str r0, [r6] - ldr r0, [sp, 0x60] - adds r1, r0, r1 - ldr r0, [r1] - str r0, [r2] - ldr r0, [sp, 0x48] - str r0, [r5] - ldr r0, [r7, 0x4] - str r0, [r4] - ldr r0, [r7, 0x8] - str r0, [r3] - ldr r0, [r7, 0xC] - str r0, [r1] -_080AF7DE: - mov r4, r10 - cmp r4, r9 - bgt _080AF770 -_080AF7E4: - movs r1, 0x1 - add r9, r1 - mov r3, r9 - cmp r3, 0x2 - ble _080AF75A - movs r6, 0 - mov r9, r6 - ldr r2, _080AF824 - ldr r1, [sp, 0x6C] -_080AF7F6: - ldr r0, [r1] - adds r0, r2 - mov r7, r9 - strb r7, [r0] - adds r1, 0x10 - movs r0, 0x1 - add r9, r0 - mov r3, r9 - cmp r3, 0x3 - ble _080AF7F6 - add sp, 0x70 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF81C: .4byte gUnknown_02038678 -_080AF820: .4byte gUnknown_02038670 -_080AF824: .4byte gUnknown_02038690 - thumb_func_end sub_80AF6A0 - - thumb_func_start sub_80AF828 -sub_80AF828: @ 80AF828 - push {lr} - lsls r0, 4 - adds r0, r2 - lsls r1, 4 - adds r3, r1, r2 - ldr r2, [r0] - ldr r1, [r3] - cmp r2, r1 - blt _080AF858 - cmp r2, r1 - bgt _080AF84A - ldr r2, [r0, 0x4] - ldr r1, [r3, 0x4] - cmp r2, r1 - blt _080AF858 - cmp r2, r1 - ble _080AF84E -_080AF84A: - movs r2, 0 - b _080AF85A -_080AF84E: - ldr r1, [r0, 0x8] - ldr r0, [r3, 0x8] - movs r2, 0 - cmp r1, r0 - bge _080AF85A -_080AF858: - movs r2, 0x1 -_080AF85A: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80AF828 - - thumb_func_start sub_80AF860 -sub_80AF860: @ 80AF860 - push {lr} - sub sp, 0x4 - ldr r0, _080AF88C - movs r1, 0 - strh r1, [r0] - ldr r0, _080AF890 - strh r1, [r0] - bl sub_80AF138 - ldr r0, _080AF894 - ldr r1, _080AF898 - movs r2, 0xC2 - lsls r2, 2 - movs r3, 0xF - str r3, [sp] - movs r3, 0x1 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080AF88C: .4byte gUnknown_030042A0 -_080AF890: .4byte gUnknown_03004280 -_080AF894: .4byte gMenuWindow -_080AF898: .4byte gUnknownText_LinkStandbyAndWinner - thumb_func_end sub_80AF860 - - thumb_func_start unref_sub_80AF89C -unref_sub_80AF89C: @ 80AF89C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r2, r3, 2 - ldr r0, _080AF940 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldr r0, _080AF944 - movs r1, 0x14 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_80AFB74 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - asrs r6, 16 - adds r4, r6 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_80AFB74 - adds r4, r0, 0 - subs r4, r5 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - bl sub_80AFB40 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080AF948 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - add r0, r8 - strh r0, [r1, 0xC] - mov r0, r9 - strh r0, [r1, 0xE] - cmp r6, 0 - bge _080AF932 - mov r0, r9 - bl nullsub_19 -_080AF932: - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080AF940: .4byte 0x02019338 -_080AF944: .4byte sub_80AF94C -_080AF948: .4byte gTasks - thumb_func_end unref_sub_80AF89C - - thumb_func_start sub_80AF94C -sub_80AF94C: @ 80AF94C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AF988 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrb r5, [r2, 0xE] - ldrh r3, [r2, 0xA] - movs r0, 0xA - ldrsh r1, [r2, r0] - cmp r1, 0 - bne _080AF990 - adds r0, r5, 0 - bl nullsub_19 - adds r0, r4, 0 - bl DestroyTask - lsls r1, r5, 2 - ldr r0, _080AF98C - adds r1, r0 - ldrb r2, [r1, 0x2] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x2] - b _080AFA56 - .align 2, 0 -_080AF988: .4byte gTasks -_080AF98C: .4byte 0x02019338 -_080AF990: - ldrh r0, [r2, 0x1C] - adds r0, 0x1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080AFA56 - movs r0, 0 - strh r0, [r2, 0x1C] - cmp r1, 0 - bge _080AF9BC - ldrh r0, [r2, 0x8] - subs r1, r0, 0x1 - strh r1, [r2, 0x8] - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r3, 0x1 - strh r0, [r2, 0xA] - movs r0, 0x16 - bl PlaySE - b _080AF9D0 -_080AF9BC: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 24 - lsrs r6, r0, 24 - subs r0, r3, 0x1 - strh r0, [r2, 0xA] - movs r0, 0x15 - bl PlaySE -_080AF9D0: - ldr r3, _080AFA00 - lsls r0, r4, 2 - adds r0, r4 - lsls r2, r0, 3 - adds r0, r2, r3 - ldrh r1, [r0, 0xC] - ldr r0, _080AFA04 - cmp r1, r0 - beq _080AFA38 - adds r0, r3, r2 - adds r0, 0xC - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 5 - adds r1, 0x93 - adds r1, r6, r1 - lsls r1, 1 - ldr r2, _080AFA08 - adds r1, r2 - movs r2, 0x2 - bl RequestSpriteCopy - b _080AFA56 - .align 2, 0 -_080AFA00: .4byte gTasks -_080AFA04: .4byte 0x0000ffff -_080AFA08: .4byte 0x0600c000 -_080AFA0C: - adds r0, r2, r3 - lsls r1, 1 - adds r1, 0xE - adds r0, r1 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 5 - adds r1, 0x93 - adds r1, r6, r1 - lsls r1, 1 - ldr r7, _080AFA34 - adds r1, r7 - movs r2, 0x2 - bl RequestSpriteCopy - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080AFA56 - .align 2, 0 -_080AFA34: .4byte 0x0600c000 -_080AFA38: - movs r1, 0 - adds r3, 0x8 -_080AFA3C: - adds r0, r1, 0x4 - lsls r0, 1 - adds r0, r2 - adds r4, r0, r3 - movs r7, 0 - ldrsh r0, [r4, r7] - cmp r0, 0 - blt _080AFA0C - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _080AFA3C -_080AFA56: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AF94C - - thumb_func_start sub_80AFA5C -sub_80AFA5C: @ 80AFA5C - push {r4-r7,lr} - sub sp, 0x4 - movs r3, 0 - ldr r0, _080AFAAC - mov r12, r0 - mov r4, sp - movs r6, 0 - ldr r2, _080AFAB0 - ldr r5, _080AFAB4 -_080AFA6E: - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 5 - adds r0, r1, 0 - adds r0, 0x56 - lsls r0, 1 - add r0, r12 - strh r6, [r4] - mov r7, sp - str r7, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, 0x76 - lsls r1, 1 - add r1, r12 - strh r6, [r4] - str r7, [r2] - str r1, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080AFA6E - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AFAAC: .4byte 0x0600c000 -_080AFAB0: .4byte 0x040000d4 -_080AFAB4: .4byte 0x81000008 - thumb_func_end sub_80AFA5C - - thumb_func_start unref_sub_80AFAB8 -unref_sub_80AFAB8: @ 80AFAB8 - push {r4-r6,lr} - sub sp, 0x14 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r0, 16 - asrs r0, 16 - bl sub_80AFB74 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080AFAF4 - cmp r4, 0 - beq _080AFAE0 - ldr r2, _080AFAF8 - cmp r4, 0x1 - beq _080AFAE0 - ldr r2, _080AFAFC - cmp r4, 0x2 - bne _080AFAE0 - ldr r2, _080AFB00 -_080AFAE0: - movs r1, 0 - lsls r3, r4, 2 - movs r6, 0 -_080AFAE6: - cmp r1, r5 - bcs _080AFB04 - lsls r0, r1, 1 - add r0, sp - strh r2, [r0] - b _080AFB0A - .align 2, 0 -_080AFAF4: .4byte 0x000050a2 -_080AFAF8: .4byte 0x000060a2 -_080AFAFC: .4byte 0x000080a2 -_080AFB00: .4byte 0x000070a2 -_080AFB04: - lsls r0, r1, 1 - add r0, sp - strh r6, [r0] -_080AFB0A: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x8 - bls _080AFAE6 - adds r0, r3, r4 - lsls r0, 6 - ldr r1, _080AFB34 - adds r0, r1 - ldr r1, _080AFB38 - mov r2, sp - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _080AFB3C - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AFB34: .4byte 0x0600c128 -_080AFB38: .4byte 0x040000d4 -_080AFB3C: .4byte 0x80000009 - thumb_func_end unref_sub_80AFAB8 - - thumb_func_start sub_80AFB40 -sub_80AFB40: @ 80AFB40 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AFB64 - cmp r0, 0 - beq _080AFB5A - ldr r1, _080AFB68 - cmp r0, 0x1 - beq _080AFB5A - ldr r1, _080AFB6C - cmp r0, 0x2 - bne _080AFB5A - ldr r1, _080AFB70 -_080AFB5A: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_080AFB64: .4byte 0x00005011 -_080AFB68: .4byte 0x00006011 -_080AFB6C: .4byte 0x00008011 -_080AFB70: .4byte 0x00007011 - thumb_func_end sub_80AFB40 - - thumb_func_start sub_80AFB74 -sub_80AFB74: @ 80AFB74 - push {lr} - lsls r0, 16 - asrs r0, 16 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r2, r0, 24 - cmp r2, 0x10 - ble _080AFB8E - movs r1, 0x10 - b _080AFB98 -_080AFB8E: - movs r0, 0x10 - negs r0, r0 - cmp r2, r0 - bge _080AFB98 - movs r1, 0xF0 -_080AFB98: - lsls r0, r1, 24 - asrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80AFB74 - - thumb_func_start sub_80AFBA0 -sub_80AFBA0: @ 80AFBA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r2, r7, 2 - ldr r0, _080AFC30 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldr r0, _080AFC34 - movs r1, 0x14 - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - lsls r5, 16 - asrs r5, 16 - adds r0, r5, 0 - bl sub_80AFB74 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - adds r5, r0 - lsls r5, 16 - asrs r5, 16 - adds r0, r5, 0 - bl sub_80AFB74 - lsls r4, 24 - asrs r4, 24 - subs r0, r4 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r7, 0 - bl sub_80AFB40 - ldr r2, _080AFC38 - lsls r3, r6, 2 - adds r0, r3, r6 - lsls r0, 3 - adds r1, r0, r2 - adds r0, r4, 0 - cmp r4, 0 - bge _080AFC14 - negs r0, r4 -_080AFC14: - strh r0, [r1, 0x8] - lsls r0, r5, 24 - asrs r0, 24 - strh r0, [r1, 0xA] - cmp r4, 0 - bgt _080AFC28 - cmp r4, 0 - bne _080AFC3C - cmp r0, 0 - ble _080AFC3C -_080AFC28: - movs r0, 0x1 - strh r0, [r1, 0xC] - b _080AFC4A - .align 2, 0 -_080AFC30: .4byte 0x02019338 -_080AFC34: .4byte sub_80AFC74 -_080AFC38: .4byte gTasks -_080AFC3C: - ldr r2, _080AFC6C - lsls r3, r6, 2 - adds r0, r3, r6 - lsls r0, 3 - adds r0, r2 - ldr r1, _080AFC70 - strh r1, [r0, 0xC] -_080AFC4A: - adds r0, r3, r6 - lsls r0, 3 - adds r0, r2 - strh r7, [r0, 0xE] - mov r1, r8 - lsls r0, r1, 16 - cmp r0, 0 - bge _080AFC60 - adds r0, r7, 0 - bl nullsub_19 -_080AFC60: - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080AFC6C: .4byte gTasks -_080AFC70: .4byte 0x0000ffff - thumb_func_end sub_80AFBA0 - - thumb_func_start sub_80AFC74 -sub_80AFC74: @ 80AFC74 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _080AFCD4 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - ldrb r7, [r4, 0xE] - ldrh r3, [r4, 0x8] - ldrh r1, [r4, 0xA] - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xE - bgt _080AFCA6 - b _080AFE1C -_080AFCA6: - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r2, [r4, 0xA] - movs r5, 0xA - ldrsh r0, [r4, r5] - cmp r0, 0 - bne _080AFCDC - adds r0, r7, 0 - bl nullsub_19 - mov r0, r8 - bl DestroyTask - lsls r1, r7, 2 - ldr r0, _080AFCD8 - adds r1, r0 - ldrb r2, [r1, 0x2] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x2] - b _080AFE1C - .align 2, 0 -_080AFCD4: .4byte gTasks -_080AFCD8: .4byte 0x02019338 -_080AFCDC: - cmp r3, 0 - bne _080AFD28 - lsls r0, r1, 16 - mov r9, r0 - cmp r0, 0 - bge _080AFCFA - adds r0, r7, 0 - bl sub_80AFB40 - adds r0, 0x2 - lsls r0, 16 - lsrs r6, r0, 16 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - b _080AFD08 -_080AFCFA: - adds r0, r7, 0 - bl sub_80AFB40 - lsls r0, 16 - lsrs r6, r0, 16 - ldrh r0, [r4, 0xA] - subs r0, 0x1 -_080AFD08: - strh r0, [r4, 0xA] - ldr r1, _080AFD24 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r2, r1, 0x1 - strh r2, [r0, 0x8] - lsls r1, 24 - lsrs r5, r1, 24 - b _080AFD94 - .align 2, 0 -_080AFD24: .4byte gTasks -_080AFD28: - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080AFD62 - lsls r0, r1, 16 - mov r9, r0 - cmp r0, 0 - bge _080AFD50 - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r2, 0x1 - strh r0, [r4, 0xA] - adds r0, r7, 0 - bl sub_80AFB40 - adds r0, 0x2 - b _080AFD90 -_080AFD50: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - subs r0, r2, 0x1 - strh r0, [r4, 0xA] - b _080AFD94 -_080AFD62: - lsls r0, r1, 16 - mov r9, r0 - cmp r0, 0 - bge _080AFD7C - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - adds r0, r2, 0x1 - strh r0, [r4, 0xA] - b _080AFD94 -_080AFD7C: - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 24 - lsrs r5, r0, 24 - subs r0, r2, 0x1 - strh r0, [r4, 0xA] - adds r0, r7, 0 - bl sub_80AFB40 -_080AFD90: - lsls r0, 16 - lsrs r6, r0, 16 -_080AFD94: - mov r10, r5 - cmp r5, 0x7 - bls _080AFDA2 - adds r0, r5, 0 - adds r0, 0x18 - lsls r0, 24 - lsrs r5, r0, 24 -_080AFDA2: - mov r0, sp - strh r6, [r0] - ldr r0, _080AFDE8 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, 0x56 - adds r1, r5, r1 - lsls r1, 1 - ldr r0, _080AFDEC - adds r1, r0 - ldr r2, _080AFDF0 - mov r0, sp - bl CpuSet - mov r2, r9 - cmp r2, 0 - ble _080AFDFC - movs r0, 0x60 - bl PlaySE - ldr r4, _080AFDF4 - adds r0, r4, 0 - bl m4aMPlayImmInit - ldr r1, _080AFDF8 - mov r3, r10 - lsls r2, r3, 24 - asrs r2, 16 - adds r0, r4, 0 - bl m4aMPlayPitchControl - b _080AFE02 - .align 2, 0 -_080AFDE8: .4byte gUnknown_02038696 -_080AFDEC: .4byte 0x0600c000 -_080AFDF0: .4byte 0x01000001 -_080AFDF4: .4byte gMPlay_SE1 -_080AFDF8: .4byte 0x0000ffff -_080AFDFC: - movs r0, 0x16 - bl PlaySE -_080AFE02: - cmp r5, 0 - bne _080AFE1C - cmp r6, 0 - bne _080AFE1C - ldr r0, _080AFE2C - mov r5, r8 - lsls r1, r5, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - negs r0, r0 - strh r0, [r1, 0xC] -_080AFE1C: - 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 -_080AFE2C: .4byte gTasks - thumb_func_end sub_80AFC74 - - thumb_func_start sub_80AFE30 -sub_80AFE30: @ 80AFE30 - push {r4,r5,lr} - ldr r0, _080AFE64 - bl LoadSpriteSheet - movs r4, 0 - ldr r5, _080AFE68 -_080AFE3C: - ldr r0, _080AFE6C - adds r0, r4, r0 - ldrb r0, [r0] - adds r0, r5 - ldrb r2, [r0] - ldr r0, _080AFE70 - movs r1, 0xB4 - movs r3, 0x1 - bl CreateSprite - lsls r1, r4, 2 - ldr r2, _080AFE74 - adds r1, r2 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0x3 - ble _080AFE3C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFE64: .4byte gUnknown_083CA350 -_080AFE68: .4byte gUnknown_083CA338 -_080AFE6C: .4byte gUnknown_02038696 -_080AFE70: .4byte gSpriteTemplate_83CA3AC -_080AFE74: .4byte 0x02019338 - thumb_func_end sub_80AFE30 - - thumb_func_start sub_80AFE78 -sub_80AFE78: @ 80AFE78 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, r6, 2 - ldr r3, _080AFEB0 - adds r2, r3 - ldrb r0, [r2, 0x2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r7, [r2] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - subs r3, 0xD8 - adds r0, r3 - movs r1, 0x4 - ldrsh r0, [r0, r1] - movs r1, 0xA - bl __divsi3 - lsls r0, 17 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x38 - ble _080AFEB4 - movs r5, 0x38 - b _080AFEBA - .align 2, 0 -_080AFEB0: .4byte 0x02019338 -_080AFEB4: - cmp r0, 0 - bge _080AFEBA - movs r5, 0 -_080AFEBA: - ldr r2, _080AFEEC - lsls r3, r7, 4 - adds r0, r3, r7 - lsls r0, 2 - adds r4, r0, r2 - movs r0, 0x3E - adds r0, r4 - mov r12, r0 - ldrb r1, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - strh r6, [r4, 0x2E] - strh r5, [r4, 0x30] - lsls r0, r5, 16 - asrs r0, 16 - movs r5, 0x24 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080AFEF0 - movs r0, 0x1 - b _080AFEF2 - .align 2, 0 -_080AFEEC: .4byte gSprites -_080AFEF0: - ldr r0, _080AFF08 -_080AFEF2: - strh r0, [r4, 0x32] - adds r0, r3, r7 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080AFF0C - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AFF08: .4byte 0x0000ffff -_080AFF0C: .4byte sub_80AFF60 - thumb_func_end sub_80AFE78 - - thumb_func_start sub_80AFF10 -sub_80AFF10: @ 80AFF10 - push {r4,lr} - movs r4, 0 -_080AFF14: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80AFE78 - adds r4, 0x1 - cmp r4, 0x3 - ble _080AFF14 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AFF10 - - thumb_func_start sub_80AFF28 -sub_80AFF28: @ 80AFF28 - push {r4,lr} - movs r3, 0 - ldr r2, _080AFF54 - ldrb r1, [r2, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AFF4C - movs r4, 0x1 -_080AFF3A: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x3 - bgt _080AFF4C - ldrb r1, [r2, 0x2] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080AFF3A -_080AFF4C: - cmp r3, 0x4 - beq _080AFF58 - movs r0, 0 - b _080AFF5A - .align 2, 0 -_080AFF54: .4byte 0x02019338 -_080AFF58: - movs r0, 0x1 -_080AFF5A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80AFF28 - - thumb_func_start sub_80AFF60 -sub_80AFF60: @ 80AFF60 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x24] - movs r0, 0x24 - ldrsh r1, [r3, r0] - movs r4, 0x30 - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _080AFF94 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r1, 2 - ldr r0, _080AFF8C - adds r1, r0 - ldrb r2, [r1, 0x2] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x2] - ldr r0, _080AFF90 - str r0, [r3, 0x1C] - b _080AFF9A - .align 2, 0 -_080AFF8C: .4byte 0x02019338 -_080AFF90: .4byte SpriteCallbackDummy -_080AFF94: - ldrh r0, [r3, 0x32] - adds r0, r2, r0 - strh r0, [r3, 0x24] -_080AFF9A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AFF60 - - thumb_func_start sub_80AFFA0 -sub_80AFFA0: @ 80AFFA0 - push {r4-r6,lr} - movs r2, 0 - ldr r6, _080AFFD0 - ldr r5, _080AFFD4 - ldr r3, _080AFFD8 - ldr r4, _080AFFDC -_080AFFAC: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r0, r2, r4 - ldrb r0, [r0] - adds r0, r5 - ldrb r0, [r0] - strh r0, [r1, 0x22] - adds r3, 0x4 - adds r2, 0x1 - cmp r2, 0x3 - ble _080AFFAC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AFFD0: .4byte gSprites -_080AFFD4: .4byte gUnknown_083CA338 -_080AFFD8: .4byte 0x02019338 -_080AFFDC: .4byte gUnknown_02038696 - thumb_func_end sub_80AFFA0 - - thumb_func_start sub_80AFFE0 -sub_80AFFE0: @ 80AFFE0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r6, _080B0008 - ldr r4, _080B000C - ldr r2, _080B0010 -_080AFFEE: - adds r0, r3, r6 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080B0024 - cmp r5, 0 - bne _080B0014 - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0xB4 - b _080B0022 - .align 2, 0 -_080B0008: .4byte gUnknown_02038696 -_080B000C: .4byte gSprites -_080B0010: .4byte 0x02019338 -_080B0014: - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x80 - lsls r0, 1 -_080B0022: - strh r0, [r1, 0x20] -_080B0024: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x3 - ble _080AFFEE - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80AFFE0 - - thumb_func_start sub_80B0034 -sub_80B0034: @ 80B0034 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080B00A8 - bl LoadSpritePalette - movs r5, 0 - ldr r0, _080B00AC - mov r8, r0 - ldr r7, _080B00B0 - movs r6, 0 -_080B004A: - lsls r0, r5, 3 - ldr r1, _080B00B4 - adds r0, r1 - bl LoadCompressedObjectPic - ldr r0, _080B00B8 - adds r0, r6, r0 - ldr r1, _080B00BC - adds r1, r5, r1 - ldrb r1, [r1] - add r1, r8 - ldrb r2, [r1] - movs r1, 0xCC - movs r3, 0 - bl CreateSprite - lsls r4, r5, 2 - ldr r1, _080B00C0 - adds r4, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, _080B00C4 - bl SetSubspriteTables - ldrb r1, [r4, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r6, 0x18 - adds r5, 0x1 - cmp r5, 0x3 - ble _080B004A - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B00A8: .4byte gUnknown_083CA3E4 -_080B00AC: .4byte gUnknown_083CA33C -_080B00B0: .4byte gSprites -_080B00B4: .4byte gUnknown_083CA3C4 -_080B00B8: .4byte gSpriteTemplate_83CA3F4 -_080B00BC: .4byte gUnknown_02038696 -_080B00C0: .4byte 0x02019338 -_080B00C4: .4byte gUnknown_083CA464 - thumb_func_end sub_80B0034 - - thumb_func_start sub_80B00C8 -sub_80B00C8: @ 80B00C8 - push {lr} - ldr r0, _080B0104 - bl LoadCompressedObjectPic - ldr r0, _080B0108 - bl LoadSpritePalette - ldr r0, _080B010C - movs r1, 0x1E - movs r2, 0x2C - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B0110 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1] - ldr r1, _080B0114 - adds r1, 0x58 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B0104: .4byte gUnknown_083CA46C -_080B0108: .4byte gUnknown_083CA474 -_080B010C: .4byte gSpriteTemplate_83CA484 -_080B0110: .4byte gSprites -_080B0114: .4byte 0x02019204 - thumb_func_end sub_80B00C8 - - thumb_func_start nullsub_18 -nullsub_18: @ 80B0118 - bx lr - thumb_func_end nullsub_18 - - thumb_func_start unref_sub_80B011C -unref_sub_80B011C: @ 80B011C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080B0198 - bl LoadCompressedObjectPic - movs r4, 0 - ldr r5, _080B019C -_080B012C: - lsls r0, r4, 3 - adds r0, r5 - bl LoadCompressedObjectPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B012C - movs r4, 0 - ldr r5, _080B01A0 - adds r0, r5, 0x1 - mov r8, r0 - ldr r7, _080B01A4 - ldr r6, _080B01A8 -_080B014A: - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 3 - ldr r1, _080B01AC - adds r0, r1 - adds r1, r2, r5 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - movs r2, 0x3E - adds r2, r1 - mov r12, r2 - ldrb r2, [r2] - movs r3, 0x4 - orrs r2, r3 - mov r3, r12 - strb r2, [r3] - strh r4, [r1, 0x2E] - adds r1, r4, r6 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B014A - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0198: .4byte gUnknown_083CC3AC -_080B019C: .4byte gUnknown_083CC3B4 -_080B01A0: .4byte gUnknown_083CA330 -_080B01A4: .4byte gSprites -_080B01A8: .4byte 0x0201920d -_080B01AC: .4byte gSpriteTemplate_83CC454 - thumb_func_end unref_sub_80B011C - - thumb_func_start unref_sub_80B01B0 -unref_sub_80B01B0: @ 80B01B0 - push {r4,r5,lr} - movs r2, 0 - ldr r5, _080B01D4 - ldr r4, _080B01D8 - ldr r3, _080B01DC -_080B01BA: - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - str r3, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _080B01BA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B01D4: .4byte 0x0201920d -_080B01D8: .4byte gSprites + 0x1C -_080B01DC: .4byte ObjectCB_SwitchPocketRotatingBallInit - thumb_func_end unref_sub_80B01B0 - - thumb_func_start unref_sub_80B01E0 -unref_sub_80B01E0: @ 80B01E0 - push {r4,r5,lr} - movs r3, 0 - ldr r2, _080B0224 - ldr r4, _080B0228 - ldrb r1, [r4, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080B022C - cmp r1, r0 - bne _080B021A - adds r5, r4, 0 - adds r5, 0x9 - adds r4, r1, 0 -_080B0202: - adds r3, 0x1 - cmp r3, 0x3 - bgt _080B021A - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - beq _080B0202 -_080B021A: - cmp r3, 0x4 - beq _080B0230 - movs r0, 0 - b _080B0232 - .align 2, 0 -_080B0224: .4byte gSprites -_080B0228: .4byte 0x02019204 -_080B022C: .4byte SpriteCallbackDummy -_080B0230: - movs r0, 0x1 -_080B0232: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_80B01E0 - - thumb_func_start ObjectCB_SwitchPocketRotatingBallInit -ObjectCB_SwitchPocketRotatingBallInit: @ 80B0238 - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B0268 - ldr r0, _080B0264 - b _080B0272 - .align 2, 0 -_080B0264: .4byte sub_80B02A8 -_080B0268: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080B027C -_080B0272: - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B027C: .4byte sub_80B0280 - thumb_func_end ObjectCB_SwitchPocketRotatingBallInit - - thumb_func_start sub_80B0280 -sub_80B0280: @ 80B0280 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B02A0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B02A4 - str r0, [r3, 0x1C] -_080B02A0: - pop {r0} - bx r0 - .align 2, 0 -_080B02A4: .4byte sub_80B02A8 - thumb_func_end sub_80B0280 - - thumb_func_start sub_80B02A8 -sub_80B02A8: @ 80B02A8 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080B02EC - adds r0, r1 - ldrb r1, [r0, 0xB] - lsls r1, 30 - lsrs r1, 30 - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080B02F0 - str r0, [r4, 0x1C] - movs r0, 0x18 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B02EC: .4byte 0x02019260 -_080B02F0: .4byte sub_80B02F4 - thumb_func_end sub_80B02A8 - - thumb_func_start sub_80B02F4 -sub_80B02F4: @ 80B02F4 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B0318 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - ldrb r0, [r4, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x1] - ldr r0, _080B0320 - str r0, [r4, 0x1C] -_080B0318: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0320: .4byte SpriteCallbackDummy - thumb_func_end sub_80B02F4 - - thumb_func_start sub_80B0324 -sub_80B0324: @ 80B0324 - push {r4,lr} - ldr r0, _080B035C - movs r1, 0x1E - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B0360 - strb r0, [r1, 0xD] - movs r2, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r4, _080B0364 - movs r3, 0xFF -_080B0342: - lsls r0, r2, 3 - adds r0, r1 - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080B0342 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B035C: .4byte sub_80B0458 -_080B0360: .4byte 0x02019204 -_080B0364: .4byte gUnknown_03004B28 - thumb_func_end sub_80B0324 - - thumb_func_start sub_80B0368 -sub_80B0368: @ 80B0368 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080B03A0 - ldr r5, _080B03A4 - ldrb r2, [r5, 0xD] - lsls r1, r2, 2 - adds r1, r2 - adds r1, r0 - lsls r1, 3 - adds r3, 0x8 - adds r1, r3 - movs r4, 0 - strh r4, [r1] - lsls r0, 2 - adds r0, 0x1 - lsls r0, 1 - ldrb r2, [r5, 0xD] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r0, r1 - adds r0, r3 - strh r4, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B03A0: .4byte gTasks -_080B03A4: .4byte 0x02019204 - thumb_func_end sub_80B0368 - - thumb_func_start sub_80B03A8 -sub_80B03A8: @ 80B03A8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B03D0 - movs r1, 0x1F - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B03D4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B03D0: .4byte sub_80B03D8 -_080B03D4: .4byte gTasks - thumb_func_end sub_80B03A8 - - thumb_func_start sub_80B03D8 -sub_80B03D8: @ 80B03D8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r2, _080B044C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x8] - adds r4, r0, 0 - ldr r6, _080B0450 - ldrb r1, [r6, 0xD] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r4 - lsls r0, 3 - adds r7, r2, 0 - adds r7, 0x8 - adds r1, r0, r7 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B040C - cmp r0, 0xFF - bne _080B0444 -_080B040C: - movs r3, 0 - movs r0, 0xFF - strh r0, [r1] - lsls r1, r4, 2 - adds r1, 0x1 - lsls r1, 1 - ldrb r2, [r6, 0xD] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, r7 - strh r3, [r1] - adds r0, r6, 0 - adds r0, 0x14 - adds r0, r4, r0 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 4 - adds r0, 0x6 - ldr r3, _080B0454 - movs r1, 0x2 - movs r2, 0 - bl BlendPalette - adds r0, r5, 0 - bl DestroyTask -_080B0444: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B044C: .4byte gTasks -_080B0450: .4byte 0x02019204 -_080B0454: .4byte 0x00004bff - thumb_func_end sub_80B03D8 - - thumb_func_start sub_80B0458 -sub_80B0458: @ 80B0458 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - lsls r1, r0, 2 - adds r1, r0 - mov r9, r1 - lsls r7, r1, 3 - ldr r0, _080B04A8 - mov r8, r0 - movs r1, 0x8 - negs r1, r1 - add r1, r8 - mov r10, r1 -_080B047C: - lsls r0, r6, 26 - lsrs r3, r0, 24 - lsls r0, r3, 1 - adds r0, r7 - mov r4, r8 - adds r2, r0, r4 - ldrh r4, [r2] - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r0, 0xFF - beq _080B04F6 - adds r0, r3, 0x1 - lsls r1, r0, 1 - adds r1, r7 - add r1, r8 - movs r5, 0 - ldrsh r1, [r1, r5] - adds r5, r0, 0 - cmp r1, 0 - bne _080B04AC - adds r0, r4, 0x1 - b _080B04AE - .align 2, 0 -_080B04A8: .4byte gUnknown_03004B28 -_080B04AC: - subs r0, r4, 0x1 -_080B04AE: - strh r0, [r2] - lsls r1, r3, 1 - mov r0, r9 - lsls r2, r0, 3 - adds r0, r1, r2 - mov r3, r10 - adds r3, 0x8 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0x10 - beq _080B04CC - cmp r0, 0 - bne _080B04DA -_080B04CC: - lsls r0, r5, 1 - adds r0, r2 - adds r0, r3 - ldrh r1, [r0] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0] -_080B04DA: - ldr r0, _080B0510 - adds r0, 0x14 - adds r0, r6, r0 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 4 - adds r0, 0x6 - adds r1, r4, r7 - add r1, r8 - ldrb r2, [r1] - movs r1, 0x2 - ldr r3, _080B0514 - bl BlendPalette -_080B04F6: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _080B047C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0510: .4byte 0x02019204 -_080B0514: .4byte 0x00004bff - thumb_func_end sub_80B0458 - - thumb_func_start sub_80B0518 -sub_80B0518: @ 80B0518 - push {r4,lr} - ldr r0, _080B0540 - movs r1, 0x1E - bl CreateTask - ldr r1, _080B0544 - strb r0, [r1, 0xE] - movs r4, 0 -_080B0528: - adds r0, r4, 0 - bl sub_80B0548 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B0528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0540: .4byte sub_80B05FC -_080B0544: .4byte 0x02019204 - thumb_func_end sub_80B0518 - - thumb_func_start sub_80B0548 -sub_80B0548: @ 80B0548 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080B0580 - ldr r4, _080B0584 - ldrb r2, [r4, 0xE] - lsls r1, r2, 2 - adds r1, r2 - adds r1, r0 - lsls r1, 3 - adds r3, 0x8 - adds r1, r3 - movs r5, 0 - movs r2, 0xFF - strh r2, [r1] - lsls r0, 2 - adds r0, 0x1 - lsls r0, 1 - ldrb r2, [r4, 0xE] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r0, r1 - adds r0, r3 - strh r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0580: .4byte gTasks -_080B0584: .4byte 0x02019204 - thumb_func_end sub_80B0548 - - thumb_func_start sub_80B0588 -sub_80B0588: @ 80B0588 - push {r4,lr} - movs r4, 0 -_080B058C: - adds r0, r4, 0 - bl sub_80B05A4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B058C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0588 - - thumb_func_start sub_80B05A4 -sub_80B05A4: @ 80B05A4 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80B0548 - adds r0, r4, 0x5 - lsls r2, r0, 5 - ldr r3, _080B05E8 - adds r6, r2, r3 - ldr r5, _080B05EC - adds r2, r5 - ldr r1, _080B05F0 - str r6, [r1] - str r2, [r1, 0x4] - ldr r2, _080B05F4 - str r2, [r1, 0x8] - ldr r6, [r1, 0x8] - lsls r0, 4 - adds r4, 0xC - adds r0, r4 - lsls r0, 1 - subs r3, 0x14 - adds r3, r0, r3 - subs r5, 0x14 - adds r0, r5 - str r3, [r1] - str r0, [r1, 0x4] - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B05E8: .4byte gPlttBufferUnfaded + 0x14 -_080B05EC: .4byte gPlttBufferFaded + 0x14 -_080B05F0: .4byte 0x040000d4 -_080B05F4: .4byte 0x80000001 - thumb_func_end sub_80B05A4 - - thumb_func_start nullsub_19 -nullsub_19: @ 80B05F8 - bx lr - thumb_func_end nullsub_19 - - thumb_func_start sub_80B05FC -sub_80B05FC: @ 80B05FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - movs r7, 0 - lsls r1, r0, 2 - adds r1, r0 - mov r9, r1 - lsls r6, r1, 3 - ldr r0, _080B0664 - mov r8, r0 - ldr r1, _080B0668 - mov r10, r1 -_080B061C: - lsls r0, r7, 26 - lsrs r3, r0, 24 - lsls r0, r3, 1 - adds r0, r6 - mov r4, r8 - adds r2, r0, r4 - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r0, 0xFF - beq _080B06C2 - adds r0, r3, 0x2 - lsls r0, 1 - adds r0, r6 - adds r1, r0, r4 - ldrh r0, [r1] - adds r0, 0x1 - movs r4, 0 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B06C2 - strh r4, [r1] - adds r0, r3, 0x1 - lsls r1, r0, 1 - adds r1, r6 - add r1, r8 - movs r4, 0 - ldrsh r1, [r1, r4] - adds r4, r0, 0 - cmp r1, 0 - bne _080B066C - ldrh r0, [r2] - adds r0, 0x1 - b _080B0670 - .align 2, 0 -_080B0664: .4byte gUnknown_03004B28 -_080B0668: .4byte 0x00004bff -_080B066C: - ldrh r0, [r2] - subs r0, 0x1 -_080B0670: - strh r0, [r2] - lsls r1, r3, 1 - mov r5, r9 - lsls r2, r5, 3 - adds r0, r1, r2 - ldr r3, _080B06DC - adds r3, 0x8 - adds r0, r3 - movs r5, 0 - ldrsh r0, [r0, r5] - adds r5, r1, 0 - cmp r0, 0x10 - beq _080B068E - cmp r0, 0 - bne _080B069C -_080B068E: - lsls r0, r4, 1 - adds r0, r2 - adds r0, r3 - ldrh r1, [r0] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0] -_080B069C: - adds r4, r7, 0x5 - lsls r4, 4 - adds r0, r4, 0 - adds r0, 0xA - adds r5, r6 - add r5, r8 - ldrb r2, [r5] - movs r1, 0x1 - mov r3, r10 - bl BlendPalette - adds r4, 0xC - adds r4, r7 - ldrb r2, [r5] - adds r0, r4, 0 - movs r1, 0x1 - mov r3, r10 - bl BlendPalette -_080B06C2: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _080B061C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B06DC: .4byte gTasks - thumb_func_end sub_80B05FC - - thumb_func_start unref_sub_80B06E0 -unref_sub_80B06E0: @ 80B06E0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - ldr r0, _080B073C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r0, _080B0740 - mov r8, r0 - ldr r1, _080B0744 - mov r12, r1 -_080B0704: - lsls r4, r3, 2 - lsls r0, r3, 26 - lsrs r0, 23 - adds r0, r6 - add r0, r8 - adds r2, r7, r3 - ldrb r1, [r2] - strh r1, [r0] - ldrb r0, [r2] - cmp r0, 0 - beq _080B0726 - mov r1, r12 - adds r0, r4, r1 - ldrb r1, [r0, 0x2] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x2] -_080B0726: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080B0704 - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B073C: .4byte sub_80B0748 -_080B0740: .4byte gUnknown_03004B28 -_080B0744: .4byte 0x02019338 - thumb_func_end unref_sub_80B06E0 - - thumb_func_start sub_80B0748 -sub_80B0748: @ 80B0748 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r2, _080B07F4 - movs r1, 0x8 - adds r1, r2 - mov r10, r1 - ldr r3, [sp] - lsls r3, 2 - str r3, [sp, 0x1C] - ldr r1, [sp] - adds r0, r3, r1 - lsls r0, 3 - str r0, [sp, 0xC] -_080B0774: - ldr r0, _080B07F8 - ldr r3, [sp, 0x4] - adds r0, r3, r0 - ldrb r4, [r0] - lsls r0, r4, 26 - lsrs r1, r0, 24 - lsls r0, r1, 1 - str r0, [sp, 0x8] - ldr r3, [sp] - lsls r0, r3, 2 - adds r0, r3 - lsls r6, r0, 3 - ldr r3, [sp, 0x8] - adds r0, r3, r6 - add r0, r10 - mov r9, r0 - ldrb r7, [r0] - cmp r7, 0 - bne _080B079C - b _080B0910 -_080B079C: - adds r3, r1, 0x1 - lsls r0, r3, 1 - adds r0, r6 - add r0, r10 - ldrb r0, [r0] - mov r8, r0 - adds r2, r1, 0x2 - lsls r0, r2, 1 - adds r0, r6 - add r0, r10 - ldrb r5, [r0] - adds r1, 0x3 - lsls r0, r1, 1 - adds r0, r6 - add r0, r10 - ldrb r6, [r0] - str r3, [sp, 0x10] - str r2, [sp, 0x14] - str r1, [sp, 0x18] - cmp r7, 0x1 - bne _080B0818 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - beq _080B07D2 - b _080B08EA -_080B07D2: - movs r6, 0 - adds r0, r4, 0x5 - lsls r0, 4 - adds r0, 0x1 - movs r1, 0x3 - adds r2, r5, 0 - ldr r3, _080B07FC - bl BlendPalette - cmp r5, 0 - bne _080B0800 - mov r0, r8 - cmp r0, 0x4 - bne _080B0800 - mov r1, r9 - strh r6, [r1] - b _080B08EA - .align 2, 0 -_080B07F4: .4byte gTasks -_080B07F8: .4byte gUnknown_02038696 -_080B07FC: .4byte 0x00007fff -_080B0800: - adds r0, r5, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xD - bls _080B08EA - movs r5, 0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - b _080B08EA -_080B0818: - cmp r7, 0x2 - beq _080B0820 - cmp r7, 0x4 - bne _080B0896 -_080B0820: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bne _080B08EA - movs r6, 0 - adds r0, r4, 0x5 - lsls r0, 4 - adds r0, 0x1 - ldr r2, _080B0854 - lsls r1, r4, 1 - adds r1, r2 - ldrh r3, [r1] - movs r1, 0x3 - adds r2, r5, 0 - bl BlendPalette - cmp r5, 0 - bne _080B0858 - mov r2, r8 - cmp r2, 0x2 - bne _080B0858 - mov r3, r9 - strh r6, [r3] - b _080B08EA - .align 2, 0 -_080B0854: .4byte gUnknown_083CC5A4 -_080B0858: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xE - bne _080B08EA - movs r5, 0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r7, 0x4 - bne _080B08EA - cmp r0, 0x1 - bne _080B08EA - adds r4, 0x9 - lsls r4, 4 - adds r0, r4, 0x2 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0 - bl BlendPalette - adds r4, 0x5 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0 - bl BlendPalette - b _080B08EA -_080B0896: - cmp r7, 0x3 - bne _080B08EA - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xC - bne _080B08EA - movs r6, 0 - adds r0, r4, 0x5 - lsls r0, 4 - adds r4, r0, 0x1 - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - movs r3, 0 - bl BlendPalette - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bne _080B08EA - ldr r0, _080B0930 - lsls r1, r4, 1 - adds r0, r1, r0 - ldrh r2, [r0] - ldr r0, _080B0934 - adds r1, r0 - ldrh r0, [r1] - ldr r1, _080B0938 - str r2, [r1] - str r0, [r1, 0x4] - movs r0, 0x80 - lsls r0, 24 - orrs r7, r0 - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x8] - ldr r2, [sp, 0xC] - adds r0, r1, r2 - add r0, r10 - strh r6, [r0] -_080B08EA: - ldr r3, [sp, 0x10] - lsls r0, r3, 1 - ldr r1, [sp, 0xC] - adds r0, r1 - add r0, r10 - mov r2, r8 - strh r2, [r0] - ldr r3, [sp, 0x14] - lsls r0, r3, 1 - adds r0, r1 - add r0, r10 - strh r5, [r0] - ldr r1, [sp, 0x18] - lsls r0, r1, 1 - ldr r2, [sp, 0xC] - adds r0, r2 - add r0, r10 - strh r6, [r0] - ldr r2, _080B093C -_080B0910: - ldr r0, [sp, 0x4] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - cmp r0, 0x3 - bhi _080B0920 - b _080B0774 -_080B0920: - movs r4, 0 - ldr r3, [sp, 0x1C] - ldr r1, [sp] - adds r0, r3, r1 - lsls r1, r0, 3 - adds r2, 0x8 - adds r0, r1, r2 - b _080B0950 - .align 2, 0 -_080B0930: .4byte gPlttBufferFaded -_080B0934: .4byte gPlttBufferUnfaded -_080B0938: .4byte 0x040000d4 -_080B093C: .4byte gTasks -_080B0940: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bhi _080B0958 - lsls r0, r4, 3 - adds r0, r1 - adds r0, r2 -_080B0950: - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - beq _080B0940 -_080B0958: - cmp r4, 0x4 - bne _080B0980 - movs r4, 0 - ldr r3, _080B0990 - movs r5, 0x3 - negs r5, r5 -_080B0964: - lsls r1, r4, 2 - adds r1, r3 - ldrb r2, [r1, 0x2] - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1, 0x2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B0964 - ldr r0, [sp] - bl DestroyTask -_080B0980: - 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 -_080B0990: .4byte 0x02019338 - thumb_func_end sub_80B0748 - - thumb_func_start unref_sub_80B0994 -unref_sub_80B0994: @ 80B0994 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _080B09A6 - ldr r0, _080B09AC - ldrb r1, [r0, 0x6] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x6] -_080B09A6: - pop {r0} - bx r0 - .align 2, 0 -_080B09AC: .4byte 0x02019204 - thumb_func_end unref_sub_80B0994 - - thumb_func_start sub_80B09B0 -sub_80B09B0: @ 80B09B0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r1, _080B09D4 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B09D8 - adds r0, r2, 0 - bl sub_80B0368 - b _080B09DE - .align 2, 0 -_080B09D4: .4byte 0x02019260 -_080B09D8: - adds r0, r2, 0 - bl sub_80B03A8 -_080B09DE: - pop {r0} - bx r0 - thumb_func_end sub_80B09B0 - - thumb_func_start sub_80B09E4 -sub_80B09E4: @ 80B09E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r9, r0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080B0B2C - mov r1, r9 - adds r7, r1, r0 - ldrb r0, [r7] - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 27 - movs r2, 0x80 - lsls r2, 22 - adds r5, r2 - lsrs r5, 24 - lsls r4, r1, 3 - ldr r0, _080B0B30 - adds r0, r4, r0 - bl LoadCompressedObjectPic - ldr r0, _080B0B34 - adds r4, r0 - adds r0, r4, 0 - bl LoadSpritePalette - mov r3, r9 - lsls r4, r3, 1 - add r4, r9 - lsls r4, 3 - ldr r0, _080B0B38 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB8 - adds r2, r5, 0 - movs r3, 0x1D - bl CreateSprite - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0xF8 - adds r2, r5, 0 - movs r3, 0x1D - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080B0B3C - mov r10, r1 - lsls r5, r6, 4 - adds r5, r6 - lsls r5, 2 - add r5, r10 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x40 - ldr r3, _080B0B40 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B0B44 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldrb r0, [r7] - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 6 - ldr r0, _080B0B48 - adds r3, r0 - mov r1, r8 - lsls r4, r1, 4 - add r4, r8 - lsls r4, 2 - add r4, r10 - ldrh r0, [r4, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldr r2, _080B0B4C - mov r10, r2 - add r0, r10 - str r0, [sp] - movs r0, 0 - movs r1, 0x3 - movs r2, 0xC0 - lsls r2, 19 - bl sub_8040F80 - ldrb r0, [r7] - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 6 - ldr r7, _080B0B50 - adds r3, r7 - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r0, 17 - add r0, r10 - str r0, [sp] - movs r0, 0 - movs r1, 0x3 - movs r2, 0xC0 - lsls r2, 19 - bl sub_8040F80 - ldrh r0, [r4, 0x4] - lsls r0, 22 - lsrs r0, 17 - movs r1, 0xA0 - lsls r1, 3 - adds r0, r1 - add r0, r10 - movs r2, 0 - str r2, [sp, 0x8] - ldr r1, _080B0B54 - add r3, sp, 0x8 - mov r12, r3 - str r3, [r1] - str r0, [r1, 0x4] - ldr r3, _080B0B58 - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x4 - strb r2, [r0] - strb r2, [r0] - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r0, 17 - movs r7, 0xA0 - lsls r7, 3 - adds r0, r7 - add r0, r10 - str r2, [sp, 0x8] - mov r2, r12 - str r2, [r1] - str r0, [r1, 0x4] - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - strh r6, [r4, 0x2E] - mov r3, r8 - strh r3, [r5, 0x2E] - mov r7, r9 - strh r7, [r4, 0x30] - mov r0, r9 - strh r0, [r5, 0x30] - mov r0, r8 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B0B2C: .4byte gUnknown_02038696 -_080B0B30: .4byte gUnknown_083CC4B4 -_080B0B34: .4byte gUnknown_083CC4D4 -_080B0B38: .4byte gSpriteTemplate_83CC53C -_080B0B3C: .4byte gSprites -_080B0B40: .4byte 0x000003ff -_080B0B44: .4byte 0xfffffc00 -_080B0B48: .4byte 0x0600e026 -_080B0B4C: .4byte 0x06010000 -_080B0B50: .4byte 0x0600e036 -_080B0B54: .4byte 0x040000d4 -_080B0B58: .4byte 0x850000c0 - thumb_func_end sub_80B09E4 - - thumb_func_start sub_80B0B5C -sub_80B0B5C: @ 80B0B5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B0B94 - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - adds r5, r1 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r4, r1 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - adds r0, r5, 0 - bl DestroySpriteAndFreeResources - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0B94: .4byte gSprites - thumb_func_end sub_80B0B5C - - thumb_func_start sub_80B0B98 -sub_80B0B98: @ 80B0B98 - ldr r1, _080B0BAC - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080B0BB0 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080B0BAC: .4byte REG_BLDCNT -_080B0BB0: .4byte 0x00000907 - thumb_func_end sub_80B0B98 - - thumb_func_start sub_80B0BB4 -sub_80B0BB4: @ 80B0BB4 - ldr r0, _080B0BC0 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_080B0BC0: .4byte REG_BLDCNT - thumb_func_end sub_80B0BB4 - - thumb_func_start sub_80B0BC4 -sub_80B0BC4: @ 80B0BC4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r4, r0, 0 - mov r9, r1 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - bl sub_80B0B98 - ldr r1, _080B0C38 - mov r8, r1 - lsls r6, r4, 4 - adds r6, r4 - lsls r6, 2 - adds r0, r6, r1 - movs r1, 0x30 - ldrsh r2, [r0, r1] - lsls r2, 2 - ldr r1, _080B0C3C - adds r2, r1 - ldrb r1, [r2, 0x2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2, 0x2] - ldrh r5, [r0, 0x2E] - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x1 - bl StartSpriteAffineAnim - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - mov r1, r8 - adds r0, r4, r1 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0x1C - add r8, r0 - add r6, r8 - ldr r0, _080B0C40 - str r0, [r6] - add r4, r8 - ldr r0, _080B0C44 - str r0, [r4] - mov r1, r9 - cmp r1, 0 - bne _080B0C48 - movs r0, 0x65 - bl PlaySE - b _080B0C4E - .align 2, 0 -_080B0C38: .4byte gSprites -_080B0C3C: .4byte 0x02019338 -_080B0C40: .4byte sub_80B0C5C -_080B0C44: .4byte SpriteCallbackDummy -_080B0C48: - movs r0, 0x2 - bl PlaySE -_080B0C4E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B0BC4 - - thumb_func_start sub_80B0C5C -sub_80B0C5C: @ 80B0C5C - push {lr} - mov r12, r0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B0CA4 - mov r0, r12 - ldrh r1, [r0, 0x2E] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080B0CA8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080B0CA4 - mov r3, r12 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r0, _080B0CAC - mov r1, r12 - str r0, [r1, 0x1C] -_080B0CA4: - pop {r0} - bx r0 - .align 2, 0 -_080B0CA8: .4byte gSprites -_080B0CAC: .4byte sub_80B0CB0 - thumb_func_end sub_80B0C5C - - thumb_func_start sub_80B0CB0 -sub_80B0CB0: @ 80B0CB0 - push {lr} - movs r1, 0x30 - ldrsh r2, [r0, r1] - lsls r2, 2 - ldr r1, _080B0CD8 - adds r2, r1 - ldrb r3, [r2, 0x2] - movs r1, 0x3 - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x2] - ldrh r0, [r0, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_80B0B5C - bl sub_80B0BB4 - pop {r0} - bx r0 - .align 2, 0 -_080B0CD8: .4byte 0x02019338 - thumb_func_end sub_80B0CB0 - - thumb_func_start sub_80B0CDC -sub_80B0CDC: @ 80B0CDC - lsls r0, 24 - lsrs r0, 22 - ldr r1, _080B0CF0 - adds r0, r1 - ldrb r2, [r0, 0x2] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x2] - bx lr - .align 2, 0 -_080B0CF0: .4byte 0x02019338 - thumb_func_end sub_80B0CDC - - thumb_func_start unref_sub_80B0CF4 -unref_sub_80B0CF4: @ 80B0CF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r0, _080B0D5C - movs r1, 0xC0 - lsls r1, 9 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - cmp r1, 0 - bne _080B0D6C - movs r4, 0 - ldr r6, _080B0D60 - adds r3, r6, 0x1 - mov r8, r3 - ldr r5, _080B0D64 - adds r7, r5, 0x1 -_080B0D1C: - lsls r1, r4, 1 - adds r0, r1, r6 - ldrb r2, [r0] - mov r3, r8 - adds r0, r1, r3 - ldrb r3, [r0] - adds r0, r1, r5 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r1, r7 - ldrb r0, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _080B0D68 - movs r1, 0 - bl FillWindowRect_DefaultPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B0D1C - bl sub_80AE514 - bl sub_80AEB30 - b _080B0D70 - .align 2, 0 -_080B0D5C: .4byte 0x02000000 -_080B0D60: .4byte gUnknown_083CA308 -_080B0D64: .4byte gUnknown_083CA310 -_080B0D68: .4byte gUnknown_03004210 -_080B0D6C: - bl sub_80B0D7C -_080B0D70: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80B0CF4 - - thumb_func_start sub_80B0D7C -sub_80B0D7C: @ 80B0D7C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - movs r5, 0 - ldr r0, _080B0ED0 - movs r1, 0xC0 - lsls r1, 9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080B0D98 - b _080B0EC2 -_080B0D98: - movs r4, 0 - ldr r7, _080B0ED4 - adds r3, r7, 0x1 - mov r9, r3 - ldr r6, _080B0ED8 - adds r0, r6, 0x1 - mov r8, r0 -_080B0DA6: - lsls r1, r4, 1 - adds r0, r1, r7 - ldrb r2, [r0] - mov r3, r9 - adds r0, r1, r3 - ldrb r3, [r0] - adds r0, r1, r6 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - add r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _080B0EDC - movs r1, 0 - bl FillWindowRect_DefaultPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B0DA6 - movs r4, 0 - ldr r6, _080B0ED8 - adds r7, r6, 0x1 -_080B0DE2: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _080B0EE0 - adds r0, r1 - ldrh r2, [r0, 0x4] - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _080B0E08 - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 - add r1, sp, 0x8 - movs r0, 0xAE - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080B0E08: - mov r0, sp - adds r0, r5 - adds r0, 0x8 - lsls r1, r2, 16 - asrs r1, 16 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r0, _080B0EE4 - adds r0, r4, r0 - ldrb r0, [r0] - movs r1, 0x16 - adds r2, r0, 0 - muls r2, r1 - movs r3, 0x94 - lsls r3, 2 - adds r2, r3 - lsls r0, 1 - adds r1, r0, r6 - ldrb r3, [r1] - adds r0, r7 - ldrb r0, [r0] - str r0, [sp] - ldr r0, _080B0EDC - add r1, sp, 0x8 - bl sub_8003460 - movs r5, 0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B0DE2 - movs r4, 0 - ldr r6, _080B0ED4 - adds r7, r6, 0x1 -_080B0E52: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _080B0EE0 - adds r0, r1 - ldrh r2, [r0, 0x2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _080B0E78 - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 - add r1, sp, 0x8 - movs r0, 0xAE - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080B0E78: - mov r0, sp - adds r0, r5 - adds r0, 0x8 - lsls r1, r2, 16 - asrs r1, 16 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r0, _080B0EE4 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 18 - adds r2, r3 - lsrs r2, 16 - lsls r1, 1 - adds r0, r1, r6 - ldrb r3, [r0] - adds r1, r7 - ldrb r0, [r1] - str r0, [sp] - ldr r0, _080B0EDC - add r1, sp, 0x8 - bl sub_8003460 - movs r5, 0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080B0E52 - bl sub_80AEB30 -_080B0EC2: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0ED0: .4byte 0x02000000 -_080B0ED4: .4byte gUnknown_083CA308 -_080B0ED8: .4byte gUnknown_083CA310 -_080B0EDC: .4byte gUnknown_03004210 -_080B0EE0: .4byte 0x02019260 -_080B0EE4: .4byte gUnknown_02038696 - thumb_func_end sub_80B0D7C - - thumb_func_start unref_sub_80B0EE8 -unref_sub_80B0EE8: @ 80B0EE8 - push {r4-r7,lr} - adds r7, r0, 0 - movs r4, 0 - subs r0, r1, 0x1 - cmp r4, r0 - bge _080B0F20 - adds r6, r0, 0 -_080B0EF6: - adds r3, r0, 0 - adds r5, r4, 0x1 - cmp r0, r4 - ble _080B0F18 - lsls r0, 2 - subs r0, 0x4 - adds r0, r7 -_080B0F04: - ldr r1, [r0] - ldr r2, [r0, 0x4] - cmp r1, r2 - ble _080B0F10 - str r1, [r0, 0x4] - str r2, [r0] -_080B0F10: - subs r0, 0x4 - subs r3, 0x1 - cmp r3, r4 - bgt _080B0F04 -_080B0F18: - adds r4, r5, 0 - adds r0, r6, 0 - cmp r4, r0 - blt _080B0EF6 -_080B0F20: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80B0EE8 - - thumb_func_start sub_80B0F28 -sub_80B0F28: @ 80B0F28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - add r4, sp, 0x4 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x8 - bl memset - movs r5, 0 - add r4, sp, 0x4 - adds r6, r4, 0 - movs r7, 0 -_080B0F4E: - bl Random - adds r1, r0, 0 - mov r0, sp - adds r0, r7 - adds r0, 0x4 - strh r1, [r0] - movs r2, 0 - cmp r2, r5 - bge _080B0F86 - lsls r0, r1, 16 - lsrs r0, 16 - mov r1, sp - ldrh r1, [r1, 0x4] - cmp r0, r1 - beq _080B0F80 -_080B0F6E: - adds r2, 0x1 - cmp r2, r5 - bge _080B0F86 - lsls r0, r2, 1 - adds r0, r4, r0 - ldrh r1, [r6] - ldrh r0, [r0] - cmp r1, r0 - bne _080B0F6E -_080B0F80: - subs r6, 0x2 - subs r7, 0x2 - subs r5, 0x1 -_080B0F86: - adds r6, 0x2 - adds r7, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _080B0F4E - mov r2, r8 - cmp r2, 0 - bne _080B1050 - movs r5, 0 - ldr r3, _080B1008 - mov r8, r3 -_080B0F9C: - mov r6, r8 - strb r5, [r6] - movs r4, 0 - cmp r4, r5 - bge _080B1018 - ldr r7, _080B100C - mov r9, r7 - lsls r0, r5, 1 - adds r1, r0, 0 - add r1, r9 - mov r12, r1 - mov r2, sp - adds r2, 0x4 - str r2, [sp, 0xC] - add r0, sp - adds r0, 0x4 - str r0, [sp, 0x10] - ldr r3, _080B1008 - adds r6, r3, 0 - mov r10, r6 -_080B0FC4: - ldrb r0, [r3] - lsls r2, r0, 1 - mov r7, r9 - adds r0, r2, r7 - movs r6, 0 - ldrsh r1, [r0, r6] - mov r7, r12 - movs r6, 0 - ldrsh r0, [r7, r6] - cmp r1, r0 - blt _080B0FEC - cmp r1, r0 - bne _080B1010 - ldr r7, [sp, 0xC] - adds r0, r7, r2 - ldrh r0, [r0] - ldr r1, [sp, 0x10] - ldrh r1, [r1] - cmp r0, r1 - bcs _080B1010 -_080B0FEC: - adds r2, r5, 0 - cmp r5, r4 - ble _080B1004 - subs r0, r5, 0x1 - mov r6, r10 - adds r1, r0, r6 -_080B0FF8: - ldrb r0, [r1] - strb r0, [r1, 0x1] - subs r1, 0x1 - subs r2, 0x1 - cmp r2, r4 - bgt _080B0FF8 -_080B1004: - strb r5, [r3] - b _080B1018 - .align 2, 0 -_080B1008: .4byte gUnknown_02038696 -_080B100C: .4byte gUnknown_02038670 -_080B1010: - adds r3, 0x1 - adds r4, 0x1 - cmp r4, r5 - blt _080B0FC4 -_080B1018: - cmp r4, r5 - bne _080B1020 - mov r7, r8 - strb r5, [r7] -_080B1020: - movs r0, 0x1 - add r8, r0 - adds r5, 0x1 - cmp r5, 0x3 - ble _080B0F9C - ldr r4, _080B104C - mov r0, sp - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy - movs r5, 0 -_080B1038: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - adds r0, r4 - strb r5, [r0] - adds r5, 0x1 - cmp r5, 0x3 - ble _080B1038 - b _080B10FC - .align 2, 0 -_080B104C: .4byte gUnknown_02038696 -_080B1050: - mov r0, sp - movs r1, 0xFF - movs r2, 0x4 - bl memset - movs r5, 0 - ldr r3, _080B1070 - movs r6, 0 -_080B1060: - ldr r0, _080B1074 - adds r0, r6, r0 - ldrb r0, [r0, 0xB] - lsls r0, 30 - lsrs r2, r0, 30 - mov r7, sp - adds r1, r7, r2 - b _080B1082 - .align 2, 0 -_080B1070: .4byte gUnknown_02038696 -_080B1074: .4byte 0x02019260 -_080B1078: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - mov r0, sp - adds r1, r0, r2 -_080B1082: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080B1078 - strb r5, [r1] - strb r2, [r3] - adds r3, 0x1 - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B1060 - movs r5, 0 -_080B1098: - movs r4, 0x3 - adds r1, r5, 0x1 - mov r10, r1 - cmp r4, r5 - ble _080B10F6 - mov r9, r4 - ldr r2, _080B110C - mov r8, r2 - add r3, sp, 0x4 - mov r12, r3 -_080B10AC: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r6, _080B1110 - adds r1, r0, r6 - ldrb r2, [r1, 0xB] - ldr r7, _080B1114 - adds r0, r7 - ldrb r3, [r0, 0xB] - mov r1, r9 - ands r1, r2 - mov r0, r9 - ands r0, r3 - subs r3, r4, 0x1 - cmp r1, r0 - bne _080B10F0 - mov r0, r8 - adds r7, r3, r0 - adds r2, r4, r0 - ldrb r6, [r7] - ldrb r1, [r2] - cmp r6, r1 - bcs _080B10F0 - lsls r0, r3, 1 - add r0, r12 - lsls r1, r4, 1 - add r1, r12 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bcs _080B10F0 - ldrb r0, [r2] - strb r6, [r2] - strb r0, [r7] -_080B10F0: - adds r4, r3, 0 - cmp r4, r5 - bgt _080B10AC -_080B10F6: - mov r5, r10 - cmp r5, 0x2 - ble _080B1098 -_080B10FC: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B110C: .4byte gUnknown_02038696 -_080B1110: .4byte 0x02019244 -_080B1114: .4byte 0x02019260 - thumb_func_end sub_80B0F28 - - thumb_func_start sub_80B1118 -sub_80B1118: @ 80B1118 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0xA0 -_080B111E: - ldr r0, _080B1144 - adds r0, r5, r0 - ldr r1, _080B1148 - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, 0x5 - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - adds r5, 0x20 - adds r4, 0x1 - cmp r4, 0x3 - ble _080B111E - bl sub_80AE514 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1144: .4byte 0x02018004 -_080B1148: .4byte gUnknown_02038696 - thumb_func_end sub_80B1118 - - thumb_func_start sub_80B114C -sub_80B114C: @ 80B114C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r7, r6, 3 - subs r0, r7, r6 - lsls r0, 2 - ldr r4, _080B11B8 - adds r5, r0, r4 - movs r0, 0 - strh r0, [r5, 0x2] - strh r0, [r5] - adds r0, r6, 0 - bl sub_80AF404 - lsls r0, 24 - mov r8, r4 - cmp r0, 0 - bne _080B1176 - b _080B13DC -_080B1176: - ldrh r0, [r5, 0x6] - ldr r1, _080B11BC - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0] - mov r12, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - strb r0, [r5, 0xA] - ldrh r0, [r5, 0x6] - ldrh r1, [r5, 0x8] - cmp r0, r1 - bne _080B11C0 - cmp r0, 0 - beq _080B11C0 - ldrb r0, [r5, 0x15] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5, 0x15] - ldrb r2, [r5, 0xB] - lsls r1, r2, 25 - lsrs r1, 29 - adds r1, 0x1 - movs r0, 0x7 - ands r1, r0 - lsls r1, 4 - movs r0, 0x71 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0xB] - b _080B11D8 - .align 2, 0 -_080B11B8: .4byte 0x02019260 -_080B11BC: .4byte gContestMoves -_080B11C0: - lsls r4, r6, 3 - subs r1, r4, r6 - lsls r1, 2 - ldr r3, _080B1264 - adds r1, r3 - ldrb r2, [r1, 0xB] - movs r0, 0x71 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - adds r7, r4, 0 - mov r8, r3 -_080B11D8: - subs r0, r7, r6 - lsls r0, 2 - add r0, r8 - ldr r2, _080B1268 - mov r1, r12 - lsls r3, r1, 2 - adds r2, r3, r2 - ldrb r1, [r2, 0x1] - strh r1, [r0] - strh r1, [r0, 0x2] - mov r0, r8 - adds r0, 0x70 - ldrb r1, [r2, 0x2] - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - strb r6, [r0, 0x11] - movs r2, 0 - adds r4, r3, 0 - movs r1, 0 - mov r5, r8 - adds r5, 0x7D - mov r3, r8 -_080B1204: - strb r1, [r3, 0xE] - adds r0, r5, r2 - strb r1, [r0] - adds r3, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - ble _080B1204 - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B1264 - adds r5, r0, r1 - ldrb r1, [r5, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B123C - ldrh r0, [r5, 0x8] - ldrh r1, [r5, 0x6] - bl AreMovesContestCombo - lsls r0, 24 - cmp r0, 0 - bne _080B123C - ldrb r1, [r5, 0x15] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x15] -_080B123C: - ldr r0, _080B126C - adds r0, r4, r0 - ldr r0, [r0] - bl _call_via_r0 - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B1264 - adds r2, r0, r1 - ldrb r1, [r2, 0x10] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0x10 - bne _080B1270 - ldrh r1, [r2, 0x2] - subs r1, 0xA - movs r0, 0xD - ldrsb r0, [r2, r0] - b _080B128A - .align 2, 0 -_080B1264: .4byte 0x02019260 -_080B1268: .4byte gContestEffects -_080B126C: .4byte gContestEffectFuncs -_080B1270: - ldrb r1, [r2, 0x11] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B1284 - movs r1, 0xD - ldrsb r1, [r2, r1] - lsls r0, r1, 1 - adds r0, r1 - b _080B1288 -_080B1284: - movs r0, 0xD - ldrsb r0, [r2, r0] -_080B1288: - ldrh r1, [r2, 0x2] -_080B128A: - adds r0, r1 - strh r0, [r2, 0x2] - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B12E8 - adds r4, r0, r1 - movs r0, 0 - strb r0, [r4, 0x16] - ldrb r1, [r4, 0x15] - subs r0, 0x41 - ands r0, r1 - strb r0, [r4, 0x15] - adds r0, r6, 0 - bl sub_80B214C - lsls r0, 24 - cmp r0, 0 - beq _080B1322 - ldrh r0, [r4, 0x8] - ldrh r1, [r4, 0x6] - bl AreMovesContestCombo - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080B12EC - ldrb r1, [r4, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B12EC - strb r2, [r4, 0x16] - movs r0, 0x40 - orrs r1, r0 - movs r0, 0x11 - negs r0, r0 - ands r1, r0 - movs r0, 0 - ldrsh r2, [r4, r0] - ldrb r0, [r4, 0x16] - muls r0, r2 - strb r0, [r4, 0x17] - movs r0, 0x8 - orrs r1, r0 - strb r1, [r4, 0x15] - b _080B1322 - .align 2, 0 -_080B12E8: .4byte 0x02019260 -_080B12EC: - ldr r2, _080B1310 - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B1314 - adds r3, r0, r1 - ldrh r0, [r3, 0x6] - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _080B1318 - ldrb r0, [r3, 0x15] - movs r1, 0x10 - orrs r0, r1 - movs r1, 0x40 - orrs r0, r1 - b _080B1320 - .align 2, 0 -_080B1310: .4byte gContestMoves -_080B1314: .4byte 0x02019260 -_080B1318: - ldrb r1, [r3, 0x15] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 -_080B1320: - strb r0, [r3, 0x15] -_080B1322: - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B139C - mov r8, r1 - adds r4, r0, r1 - ldrb r1, [r4, 0x15] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080B1348 - ldrb r0, [r4, 0xB] - lsls r0, 25 - lsrs r0, 29 - adds r0, 0x1 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - strb r1, [r4, 0x18] -_080B1348: - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080B1362 - ldrb r0, [r4, 0x15] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x15] - movs r0, 0 - strh r0, [r4, 0x2] - strh r0, [r4] -_080B1362: - ldrh r0, [r4, 0x6] - bl contest_get_move_excitement - mov r2, r8 - adds r2, 0xC8 - strb r0, [r2] - ldrb r1, [r4, 0x11] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B137A - strb r5, [r2] -_080B137A: - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - ble _080B13A4 - mov r0, r8 - subs r0, 0x5C - ldrb r0, [r0, 0x13] - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r2, r1] - adds r0, r1 - cmp r0, 0x4 - ble _080B13A0 - movs r0, 0x3C - b _080B13A6 - .align 2, 0 -_080B139C: .4byte 0x02019260 -_080B13A0: - movs r0, 0xA - b _080B13A6 -_080B13A4: - movs r0, 0 -_080B13A6: - strb r0, [r2, 0x2] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - b _080B13CA -_080B13BE: - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_080B13C4: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080B13D2 -_080B13CA: - cmp r2, r6 - beq _080B13C4 - cmp r0, 0 - bne _080B13BE -_080B13D2: - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B13E8 - adds r0, r1 - strb r2, [r0, 0x1B] -_080B13DC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B13E8: .4byte 0x02019260 - thumb_func_end sub_80B114C - - thumb_func_start sub_80B13EC -sub_80B13EC: @ 80B13EC - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r0, _080B1400 - adds r2, r0 - strb r1, [r2, 0x13] - bx lr - .align 2, 0 -_080B1400: .4byte 0x02019260 - thumb_func_end sub_80B13EC - - thumb_func_start sub_80B1404 -sub_80B1404: @ 80B1404 - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r0, _080B1418 - adds r2, r0 - strb r1, [r2, 0x14] - bx lr - .align 2, 0 -_080B1418: .4byte 0x02019260 - thumb_func_end sub_80B1404 - - thumb_func_start sub_80B141C -sub_80B141C: @ 80B141C - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x3B - bls _080B1436 - movs r1, 0x35 - bl sub_80B13EC - b _080B1466 -_080B1436: - cmp r1, 0x27 - bls _080B1442 - movs r1, 0x34 - bl sub_80B13EC - b _080B1466 -_080B1442: - cmp r1, 0x1D - bls _080B144E - movs r1, 0x33 - bl sub_80B13EC - b _080B1466 -_080B144E: - cmp r1, 0x13 - bls _080B145A - movs r1, 0x32 - bl sub_80B13EC - b _080B1466 -_080B145A: - cmp r2, 0x9 - bls _080B1466 - adds r0, r3, 0 - movs r1, 0x31 - bl sub_80B13EC -_080B1466: - pop {r0} - bx r0 - thumb_func_end sub_80B141C - - thumb_func_start sub_80B146C -sub_80B146C: @ 80B146C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080B14C8 - lsls r1, r4, 6 - ldr r2, _080B14CC - adds r1, r2 - bl StringCopy - ldr r0, _080B14D0 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r4, _080B14D4 - adds r1, r4 - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080B14D8 - adds r1, r2 - bl StringCopy - ldr r2, _080B14DC - adds r0, r4, 0 - adds r0, 0x70 - ldrb r1, [r0, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x6] - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - lsls r1, r0, 29 - cmp r1, 0 - bne _080B14E8 - ldr r0, _080B14E0 - ldr r1, _080B14E4 - bl StringCopy - b _080B1538 - .align 2, 0 -_080B14C8: .4byte gStringVar1 -_080B14CC: .4byte gUnknown_02038572 -_080B14D0: .4byte gStringVar2 -_080B14D4: .4byte 0x02019260 -_080B14D8: .4byte gMoveNames -_080B14DC: .4byte gContestMoves -_080B14E0: .4byte gStringVar3 -_080B14E4: .4byte gUnknown_083CC280 -_080B14E8: - lsrs r0, r1, 29 - cmp r0, 0x1 - bne _080B1500 - ldr r0, _080B14F8 - ldr r1, _080B14FC - bl StringCopy - b _080B1538 - .align 2, 0 -_080B14F8: .4byte gStringVar3 -_080B14FC: .4byte gUnknown_083CC288 -_080B1500: - lsrs r0, r1, 29 - cmp r0, 0x2 - bne _080B1518 - ldr r0, _080B1510 - ldr r1, _080B1514 - bl StringCopy - b _080B1538 - .align 2, 0 -_080B1510: .4byte gStringVar3 -_080B1514: .4byte gUnknown_083CC290 -_080B1518: - lsrs r0, r1, 29 - cmp r0, 0x3 - bne _080B1530 - ldr r0, _080B1528 - ldr r1, _080B152C - bl StringCopy - b _080B1538 - .align 2, 0 -_080B1528: .4byte gStringVar3 -_080B152C: .4byte gUnknown_083CC299 -_080B1530: - ldr r0, _080B1568 - ldr r1, _080B156C - bl StringCopy -_080B1538: - ldr r4, _080B1570 - ldr r1, _080B1574 - lsls r0, r5, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80AF138 - ldr r0, _080B1578 - movs r2, 0xC2 - lsls r2, 2 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8002EB0 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1568: .4byte gStringVar3 -_080B156C: .4byte gUnknown_083CC2A3 -_080B1570: .4byte gStringVar4 -_080B1574: .4byte gUnknown_083CC188 -_080B1578: .4byte gMenuWindow - thumb_func_end sub_80B146C - - thumb_func_start sub_80B157C -sub_80B157C: @ 80B157C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _080B1598 - adds r1, r0 - ldrb r0, [r1, 0xC] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1, 0xC] - movs r0, 0 - strh r0, [r1, 0x6] - bx lr - .align 2, 0 -_080B1598: .4byte 0x02019260 - thumb_func_end sub_80B157C - - thumb_func_start sub_80B159C -sub_80B159C: @ 80B159C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0 - mov r12, r0 - movs r4, 0 - ldr r1, _080B1600 - mov r9, r1 - add r2, sp, 0x4 - mov r6, r9 - movs r5, 0 - adds r3, r2, 0 -_080B15B8: - mov r0, sp - adds r1, r0, r4 - adds r0, r4, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r4, 0x1 - cmp r4, 0x3 - ble _080B15B8 - movs r4, 0 - ldr r7, _080B1604 - adds r5, r2, 0 - movs r1, 0x1 - mov r8, r1 -_080B15D6: - movs r2, 0 - adds r1, r7, 0 -_080B15DA: - ldrb r0, [r1, 0x19] - cmp r0, r4 - beq _080B1608 - adds r1, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - ble _080B15DA -_080B15E8: - cmp r2, 0x4 - bne _080B1680 - movs r2, 0 - ldrb r0, [r5] - cmp r0, 0 - bne _080B1616 - ldrb r0, [r7, 0x19] - cmp r0, 0xFF - bne _080B1616 - mov r12, r2 - movs r2, 0x1 - b _080B163A - .align 2, 0 -_080B1600: .4byte gUnknown_02038696 -_080B1604: .4byte 0x02019260 -_080B1608: - mov r1, sp - adds r0, r1, r2 - strb r4, [r0] - adds r0, r5, r2 - mov r1, r8 - strb r1, [r0] - b _080B15E8 -_080B1616: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080B1672 - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080B1616 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x19] - cmp r0, 0xFF - bne _080B1616 - lsls r0, r2, 24 - lsrs r0, 24 - mov r12, r0 - adds r2, 0x1 -_080B163A: - cmp r2, 0x3 - bgt _080B1672 - ldr r6, _080B16C8 - lsls r0, r2, 3 - subs r0, r2 - lsls r3, r0, 2 -_080B1646: - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080B166A - adds r0, r3, r7 - ldrb r0, [r0, 0x19] - cmp r0, 0xFF - bne _080B166A - mov r1, r12 - adds r0, r1, r6 - adds r1, r2, r6 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B166A - lsls r0, r2, 24 - lsrs r0, 24 - mov r12, r0 -_080B166A: - adds r3, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - ble _080B1646 -_080B1672: - mov r0, sp - add r0, r12 - strb r4, [r0] - mov r1, r12 - adds r0, r5, r1 - mov r1, r8 - strb r1, [r0] -_080B1680: - adds r4, 0x1 - cmp r4, 0x3 - ble _080B15D6 - movs r4, 0 - ldr r5, _080B16CC - adds r3, r5, 0 - subs r3, 0x60 - movs r6, 0xFF - movs r7, 0x3F -_080B1692: - adds r1, r4, r5 - mov r0, sp - adds r2, r0, r4 - ldrb r0, [r2] - strb r0, [r1] - ldrb r0, [r3, 0x9] - orrs r0, r6 - strb r0, [r3, 0x9] - ldrb r1, [r3] - adds r0, r7, 0 - ands r0, r1 - strb r0, [r3] - mov r0, r9 - adds r1, r4, r0 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080B1692 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B16C8: .4byte gUnknown_02038696 -_080B16CC: .4byte 0x020192d0 - thumb_func_end sub_80B159C - - thumb_func_start sub_80B16D0 -sub_80B16D0: @ 80B16D0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x1 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x54 - ble _080B1702 - movs r0, 0 - strh r0, [r2, 0x30] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldr r0, _080B1708 - str r0, [r2, 0x1C] - ldr r2, _080B170C - ldrb r1, [r2, 0x6] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x6] -_080B1702: - pop {r0} - bx r0 - .align 2, 0 -_080B1708: .4byte SpriteCallbackDummy -_080B170C: .4byte 0x02019204 - thumb_func_end sub_80B16D0 - - thumb_func_start sub_80B1710 -sub_80B1710: @ 80B1710 - push {r4,r5,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080B172C - ldrb r5, [r0, 0x12] - cmp r1, 0x8 - bls _080B1720 - b _080B18C0 -_080B1720: - lsls r0, r1, 2 - ldr r1, _080B1730 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B172C: .4byte 0x02019204 -_080B1730: .4byte _080B1734 - .align 2, 0 -_080B1734: - .4byte _080B1758 - .4byte _080B1758 - .4byte _080B1788 - .4byte _080B17BC - .4byte _080B17F0 - .4byte _080B1824 - .4byte _080B1858 - .4byte _080B18C0 - .4byte _080B188C -_080B1758: - ldr r0, _080B177C - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2E] - ldr r2, _080B1780 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1784 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x20 - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B177C: .4byte gSprites -_080B1780: .4byte 0x000003ff -_080B1784: .4byte 0xfffffc00 -_080B1788: - ldr r0, _080B17B0 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x4 - ldr r3, _080B17B4 - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B17B8 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x1F - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B17B0: .4byte gSprites -_080B17B4: .4byte 0x000003ff -_080B17B8: .4byte 0xfffffc00 -_080B17BC: - ldr r0, _080B17E4 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x8 - ldr r3, _080B17E8 - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B17EC - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x1F - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B17E4: .4byte gSprites -_080B17E8: .4byte 0x000003ff -_080B17EC: .4byte 0xfffffc00 -_080B17F0: - ldr r0, _080B1818 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0xC - ldr r3, _080B181C - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1820 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x2D - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B1818: .4byte gSprites -_080B181C: .4byte 0x000003ff -_080B1820: .4byte 0xfffffc00 -_080B1824: - ldr r0, _080B184C - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0xC - ldr r3, _080B1850 - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1854 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x2D - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B184C: .4byte gSprites -_080B1850: .4byte 0x000003ff -_080B1854: .4byte 0xfffffc00 -_080B1858: - ldr r0, _080B1880 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x10 - ldr r3, _080B1884 - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1888 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x2D - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B1880: .4byte gSprites -_080B1884: .4byte 0x000003ff -_080B1888: .4byte 0xfffffc00 -_080B188C: - ldr r0, _080B18B4 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x18 - ldr r3, _080B18B8 - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B18BC - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0xC3 - bl PlaySE - b _080B18E4 - .align 2, 0 -_080B18B4: .4byte gSprites -_080B18B8: .4byte 0x000003ff -_080B18BC: .4byte 0xfffffc00 -_080B18C0: - ldr r0, _080B1914 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x14 - ldr r3, _080B1918 - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B191C - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x2D - bl PlaySE -_080B18E4: - adds r2, r4, 0 - ldr r4, _080B1914 - adds r2, r5 - lsls r2, 2 - adds r1, r2, r4 - movs r0, 0 - strh r0, [r1, 0x30] - adds r1, 0x3E - ldrb r3, [r1] - subs r0, 0x5 - ands r0, r3 - strb r0, [r1] - adds r4, 0x1C - adds r2, r4 - ldr r0, _080B1920 - str r0, [r2] - ldr r2, _080B1924 - ldrb r0, [r2, 0x6] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1914: .4byte gSprites -_080B1918: .4byte 0x000003ff -_080B191C: .4byte 0xfffffc00 -_080B1920: .4byte sub_80B16D0 -_080B1924: .4byte 0x02019204 - thumb_func_end sub_80B1710 - - thumb_func_start sub_80B1928 -sub_80B1928: @ 80B1928 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r6, _080B19BC - ldr r0, _080B19C0 - mov r10, r0 - movs r1, 0x58 - adds r1, r6 - mov r9, r1 - ldr r0, _080B19C4 - mov r8, r0 - ldr r7, _080B19C8 -_080B1946: - movs r0, 0x13 - ldrsb r0, [r6, r0] - ldr r4, _080B19CC - cmp r5, r0 - bge _080B1952 - adds r4, 0x40 -_080B1952: - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r0, r5, 0 - adds r0, 0x11 - adds r1, r0 - lsls r1, 5 - add r1, r8 - adds r0, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r0, r4, 0 - adds r0, 0x20 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r10 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0 - adds r2, 0x19 - adds r1, r2 - lsls r1, 5 - add r1, r8 - adds r2, r7, 0 - bl CpuSet - movs r0, 0x13 - ldrsb r0, [r6, r0] - cmp r0, 0x4 - ble _080B19A8 - bl sub_80B1A2C -_080B19A8: - adds r5, 0x1 - cmp r5, 0x4 - ble _080B1946 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B19BC: .4byte 0x02019204 -_080B19C0: .4byte gSprites -_080B19C4: .4byte 0x06010000 -_080B19C8: .4byte REG_BG0CNT -_080B19CC: .4byte gContestApplauseMeterGfx - thumb_func_end sub_80B1928 - - thumb_func_start unref_sub_80B19D0 -unref_sub_80B19D0: @ 80B19D0 - push {lr} - sub sp, 0x18 - ldr r1, _080B19F4 - add r0, sp, 0x4 - bl StringCopy - ldr r0, _080B19F8 - movs r2, 0xAA - lsls r2, 2 - movs r1, 0 - str r1, [sp] - add r1, sp, 0x4 - movs r3, 0 - bl sub_8003460 - add sp, 0x18 - pop {r0} - bx r0 - .align 2, 0 -_080B19F4: .4byte gUnknown_083CC2EC -_080B19F8: .4byte gUnknown_03004210 - thumb_func_end unref_sub_80B19D0 - - thumb_func_start contest_get_move_excitement -contest_get_move_excitement: @ 80B19FC - lsls r0, 16 - ldr r3, _080B1A20 - ldr r1, _080B1A24 - lsrs r0, 13 - adds r0, r1 - ldrb r1, [r0, 0x1] - lsls r1, 29 - lsrs r1, 29 - ldr r0, _080B1A28 - ldrh r2, [r0] - lsls r0, r2, 2 - adds r0, r2 - adds r1, r0 - adds r1, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - bx lr - .align 2, 0 -_080B1A20: .4byte gContestExcitementTable -_080B1A24: .4byte gContestMoves -_080B1A28: .4byte gUnknown_0203869C - thumb_func_end contest_get_move_excitement - - thumb_func_start sub_80B1A2C -sub_80B1A2C: @ 80B1A2C - push {r4,r5,lr} - ldr r0, _080B1A60 - movs r1, 0xA - bl CreateTask - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080B1A64 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r0, 0x1 - strh r0, [r4, 0xA] - ldr r0, _080B1A68 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080B1A60: .4byte c3_08130B10 -_080B1A64: .4byte gTasks -_080B1A68: .4byte 0x0000abe2 - thumb_func_end sub_80B1A2C - - thumb_func_start c3_08130B10 -c3_08130B10: @ 80B1A6C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B1A9C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080B1B06 - movs r0, 0 - strh r0, [r2, 0x8] - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080B1AA0 - ldrh r0, [r2, 0x10] - adds r0, 0x1 - b _080B1AA4 - .align 2, 0 -_080B1A9C: .4byte gTasks -_080B1AA0: - ldrh r0, [r2, 0x10] - subs r0, 0x1 -_080B1AA4: - strh r0, [r2, 0x10] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - lsls r0, 4 - movs r3, 0x84 - lsls r3, 1 - adds r6, r3, 0 - adds r0, r6 - lsls r0, 16 - lsrs r0, 16 - ldrb r2, [r4, 0x10] - ldr r3, _080B1B0C - movs r1, 0x1 - bl BlendPalette - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B1AD6 - cmp r0, 0x10 - bne _080B1B06 -_080B1AD6: - ldrh r0, [r4, 0xE] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0xE] - ldr r0, _080B1B10 - ldrb r0, [r0, 0x13] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bgt _080B1B06 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 4 - adds r0, r6 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1F - bl BlendPalette - adds r0, r5, 0 - bl DestroyTask -_080B1B06: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1B0C: .4byte 0x00007fff -_080B1B10: .4byte 0x02019204 - thumb_func_end c3_08130B10 - - thumb_func_start sub_80B1B14 -sub_80B1B14: @ 80B1B14 - push {r4,lr} - ldr r0, _080B1B58 - movs r1, 0xA - bl CreateTask - ldr r4, _080B1B5C - ldr r3, _080B1B60 - adds r2, r3, 0 - adds r2, 0x58 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B1B64 - strh r1, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r0, [r3, 0x6] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1B58: .4byte sub_80B1B68 -_080B1B5C: .4byte gSprites -_080B1B60: .4byte 0x02019204 -_080B1B64: .4byte 0x0000ffba - thumb_func_end sub_80B1B14 - - thumb_func_start sub_80B1B68 -sub_80B1B68: @ 80B1B68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - ldr r4, _080B1BD0 - adds r0, r4, 0 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B1BD4 - adds r2, r0, r1 - ldr r0, _080B1BD8 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r5, 0xD0 - lsls r5, 3 - adds r0, r5, 0 - ldrh r5, [r1, 0x1C] - adds r0, r5 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 24 - ldrh r5, [r2, 0x24] - adds r0, r5 - strh r0, [r2, 0x24] - ldrb r0, [r1, 0x1C] - strh r0, [r1, 0x1C] - movs r1, 0x24 - ldrsh r0, [r2, r1] - cmp r0, 0 - ble _080B1BB2 - movs r0, 0 - strh r0, [r2, 0x24] -_080B1BB2: - movs r5, 0x24 - ldrsh r0, [r2, r5] - cmp r0, 0 - bne _080B1BCA - ldrb r1, [r4, 0x6] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x6] - adds r0, r3, 0 - bl DestroyTask -_080B1BCA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1BD0: .4byte 0x02019204 -_080B1BD4: .4byte gSprites -_080B1BD8: .4byte gTasks - thumb_func_end sub_80B1B68 - - thumb_func_start sub_80B1BDC -sub_80B1BDC: @ 80B1BDC - push {r4-r6,lr} - ldr r6, _080B1C04 - ldr r4, _080B1C08 - adds r5, r4, 0 - adds r5, 0x58 - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _080B1C0C - ldrb r1, [r4, 0x6] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - b _080B1C28 - .align 2, 0 -_080B1C04: .4byte gSprites -_080B1C08: .4byte 0x02019204 -_080B1C0C: - ldr r0, _080B1C30 - movs r1, 0xA - bl CreateTask - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - strh r1, [r0, 0x24] - ldrb r0, [r4, 0x6] - movs r1, 0x40 - orrs r0, r1 -_080B1C28: - strb r0, [r4, 0x6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1C30: .4byte sub_80B1C34 - thumb_func_end sub_80B1BDC - - thumb_func_start sub_80B1C34 -sub_80B1C34: @ 80B1C34 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r5, _080B1CAC - adds r0, r5, 0 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B1CB0 - adds r3, r0, r1 - ldr r0, _080B1CB4 - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - adds r2, r0 - movs r1, 0xD0 - lsls r1, 3 - adds r0, r1, 0 - ldrh r1, [r2, 0x1C] - adds r0, r1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r3, 0x24] - subs r1, r0 - strh r1, [r3, 0x24] - ldrb r0, [r2, 0x1C] - strh r0, [r2, 0x1C] - movs r2, 0x24 - ldrsh r0, [r3, r2] - movs r1, 0x46 - negs r1, r1 - cmp r0, r1 - bge _080B1C82 - ldr r0, _080B1CB8 - strh r0, [r3, 0x24] -_080B1C82: - movs r2, 0x24 - ldrsh r0, [r3, r2] - cmp r0, r1 - bne _080B1CA6 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r5, 0x6] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x6] - adds r0, r4, 0 - bl DestroyTask -_080B1CA6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1CAC: .4byte 0x02019204 -_080B1CB0: .4byte gSprites -_080B1CB4: .4byte gTasks -_080B1CB8: .4byte 0x0000ffba - thumb_func_end sub_80B1C34 - - thumb_func_start sub_80B1CBC -sub_80B1CBC: @ 80B1CBC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B1CF0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B1CF4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0x8] - ldr r2, _080B1CF8 - ldrb r0, [r2, 0x6] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1CF0: .4byte sub_80B1CFC -_080B1CF4: .4byte gTasks -_080B1CF8: .4byte 0x02019204 - thumb_func_end sub_80B1CBC - - thumb_func_start sub_80B1CFC -sub_80B1CFC: @ 80B1CFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B1D20 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B1D30 - cmp r0, 0x1 - bgt _080B1D24 - cmp r0, 0 - beq _080B1D2A - b _080B1D78 - .align 2, 0 -_080B1D20: .4byte gTasks -_080B1D24: - cmp r0, 0x2 - beq _080B1D50 - b _080B1D78 -_080B1D2A: - bl sub_80B1B14 - b _080B1D44 -_080B1D30: - ldr r0, _080B1D4C - ldrb r1, [r0, 0x6] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080B1D78 - movs r0, 0x8 - ldrsb r0, [r4, r0] - bl nullsub_18 -_080B1D44: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - b _080B1D78 - .align 2, 0 -_080B1D4C: .4byte 0x02019204 -_080B1D50: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B1D78 - movs r0, 0 - strh r0, [r4, 0x1E] - bl sub_80B1928 - ldr r2, _080B1D80 - ldrb r1, [r2, 0x6] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x6] - adds r0, r5, 0 - bl DestroyTask -_080B1D78: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1D80: .4byte 0x02019204 - thumb_func_end sub_80B1CFC - - thumb_func_start unref_sub_80B1D84 -unref_sub_80B1D84: @ 80B1D84 - ldr r3, _080B1DB0 - ldr r2, _080B1DB4 - adds r2, 0x58 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080B1DB0: .4byte gSprites -_080B1DB4: .4byte 0x02019204 - thumb_func_end unref_sub_80B1D84 - - thumb_func_start unref_sub_80B1DB8 -unref_sub_80B1DB8: @ 80B1DB8 - ldr r2, _080B1DD4 - ldr r0, _080B1DD8 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080B1DD4: .4byte gSprites -_080B1DD8: .4byte 0x02019204 - thumb_func_end unref_sub_80B1DB8 - - thumb_func_start sub_80B1DDC -sub_80B1DDC: @ 80B1DDC - push {lr} - ldr r0, _080B1DF4 - movs r1, 0xF - bl CreateTask - ldr r2, _080B1DF8 - ldrb r0, [r2, 0x6] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x6] - pop {r0} - bx r0 - .align 2, 0 -_080B1DF4: .4byte sub_80B1DFC -_080B1DF8: .4byte 0x02019204 - thumb_func_end sub_80B1DDC - - thumb_func_start sub_80B1DFC -sub_80B1DFC: @ 80B1DFC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080B1E3C - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - adds r6, r2, 0 - cmp r0, 0x6 - ble _080B1E8E - movs r0, 0 - strh r0, [r3, 0x1C] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B1E50 - ldr r1, _080B1E40 - ldr r2, _080B1E44 - ldr r0, _080B1E48 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080B1E4C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080B1E66 - .align 2, 0 -_080B1E3C: .4byte gTasks -_080B1E40: .4byte 0x02016800 -_080B1E44: .4byte 0x06002000 -_080B1E48: .4byte 0x040000d4 -_080B1E4C: .4byte 0x84000400 -_080B1E50: - ldr r1, _080B1E94 - ldr r2, _080B1E98 - ldr r0, _080B1E9C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080B1EA0 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] -_080B1E66: - adds r0, r4, 0 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r0, 0x1E] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x1E] - movs r1, 0x20 - ldrsh r0, [r0, r1] - cmp r0, 0x9 - bne _080B1E8E - ldr r2, _080B1EA4 - ldrb r1, [r2, 0x6] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x6] - adds r0, r5, 0 - bl DestroyTask -_080B1E8E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1E94: .4byte 0x02015800 -_080B1E98: .4byte 0x06002000 -_080B1E9C: .4byte 0x040000d4 -_080B1EA0: .4byte 0x84000400 -_080B1EA4: .4byte 0x02019204 - thumb_func_end sub_80B1DFC - - thumb_func_start sub_80B1EA8 -sub_80B1EA8: @ 80B1EA8 - push {r4-r7,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080B1EE4 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - cmp r4, 0 - ble _080B1F08 - ldr r7, _080B1EE8 - lsls r0, r5, 24 - adds r4, r0, 0 - cmp r4, 0 - ble _080B1EF0 - movs r5, 0 - ldr r2, _080B1EEC - movs r1, 0x13 - ldrsb r1, [r2, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - b _080B1F1E - .align 2, 0 -_080B1EE4: .4byte sub_80B1F4C -_080B1EE8: .4byte 0x0000237e -_080B1EEC: .4byte 0x02019204 -_080B1EF0: - ldr r2, _080B1F04 - movs r1, 0x13 - ldrsb r1, [r2, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - b _080B1F1E - .align 2, 0 -_080B1F04: .4byte 0x02019204 -_080B1F08: - movs r7, 0 - lsls r0, r5, 24 - adds r4, r0, 0 - cmp r4, 0 - ble _080B1F18 - movs r5, 0 - movs r3, 0xC - b _080B1F1C -_080B1F18: - movs r5, 0xC - movs r3, 0 -_080B1F1C: - ldr r2, _080B1F44 -_080B1F1E: - ldr r1, _080B1F48 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0x8] - strh r5, [r0, 0xA] - asrs r1, r4, 24 - strh r1, [r0, 0xC] - strh r3, [r0, 0xE] - ldrb r1, [r2, 0x7] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x7] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1F44: .4byte 0x02019204 -_080B1F48: .4byte gTasks - thumb_func_end sub_80B1EA8 - - thumb_func_start sub_80B1F4C -sub_80B1F4C: @ 80B1F4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080B1F7C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - cmp r0, 0 - blt _080B1FC4 - movs r0, 0 - strh r0, [r3, 0x1C] - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0 - ble _080B1F80 - ldrh r0, [r3, 0xA] - adds r0, 0x1 - b _080B1F84 - .align 2, 0 -_080B1F7C: .4byte gTasks -_080B1F80: - ldrh r0, [r3, 0xA] - subs r0, 0x1 -_080B1F84: - strh r0, [r3, 0xA] - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r2 - ldrb r2, [r4, 0xA] - ldrh r3, [r4, 0x8] - movs r0, 0x11 - movs r1, 0x1 - bl BlendPalette - ldrb r2, [r4, 0xA] - ldrh r3, [r4, 0x8] - movs r0, 0x1A - movs r1, 0x1 - bl BlendPalette - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B1FC4 - adds r0, r5, 0 - bl DestroyTask - ldr r2, _080B1FCC - ldrb r1, [r2, 0x7] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x7] -_080B1FC4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1FCC: .4byte 0x02019204 - thumb_func_end sub_80B1F4C - - thumb_func_start sub_80B1FD0 -sub_80B1FD0: @ 80B1FD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, _080B204C - ldr r6, _080B2050 - adds r4, r0, 0 - adds r4, 0xD8 - adds r7, r0, 0 -_080B1FE8: - ldrb r1, [r7, 0x10] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _080B2064 - mov r0, r8 - cmp r0, 0 - beq _080B2064 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80B208C - ldrb r2, [r4, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, _080B2054 - adds r1, r2 - ldr r2, _080B2058 - bl CpuSet - ldrb r0, [r4, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldr r2, _080B205C - ldr r0, _080B2060 - adds r0, r5, r0 - ldrb r0, [r0] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0x22] - ldrb r1, [r4, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r3, 0x5 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - b _080B2076 - .align 2, 0 -_080B204C: .4byte 0x02019260 -_080B2050: .4byte gSprites -_080B2054: .4byte 0x060100a0 -_080B2058: .4byte REG_BG0HOFS -_080B205C: .4byte gUnknown_083CA33C -_080B2060: .4byte gUnknown_02038696 -_080B2064: - ldrb r1, [r4, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_080B2076: - strb r1, [r0] - adds r4, 0x4 - adds r7, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B1FE8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B1FD0 - - thumb_func_start sub_80B208C -sub_80B208C: @ 80B208C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _080B20B0 - adds r2, r1, r0 - ldrb r1, [r2, 0x10] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x40 - bne _080B20B8 - ldrb r0, [r2, 0x19] - lsls r0, 6 - ldr r1, _080B20B4 - adds r0, r1 - b _080B20BA - .align 2, 0 -_080B20B0: .4byte 0x02019260 -_080B20B4: .4byte gContestNextTurnNumbersGfx -_080B20B8: - ldr r0, _080B20C0 -_080B20BA: - pop {r1} - bx r1 - .align 2, 0 -_080B20C0: .4byte gContestNextTurnRandomGfx - thumb_func_end sub_80B208C - - thumb_func_start unref_sub_80B20C4 -unref_sub_80B20C4: @ 80B20C4 - push {r4-r7,lr} - movs r6, 0 - ldr r7, _080B2134 -_080B20CA: - adds r0, r6, r7 - ldrb r0, [r0] - cmp r0, 0 - beq _080B2126 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080B2126 - ldr r0, _080B2138 - adds r0, r6, r0 - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_80AEFE8 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 6 - ldr r2, _080B213C - adds r1, r4, r2 - strh r0, [r1] - ldr r1, _080B2140 - adds r2, r4, r1 - adds r1, r0, 0x1 - strh r1, [r2] - ldr r1, _080B2144 - adds r2, r4, r1 - adds r1, r0, 0 - adds r1, 0x10 - strh r1, [r2] - ldr r2, _080B2148 - adds r4, r2 - adds r0, 0x11 - strh r0, [r4] - movs r0, 0x63 - bl PlaySE -_080B2126: - adds r6, 0x1 - cmp r6, 0x3 - ble _080B20CA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2134: .4byte 0x020192dd -_080B2138: .4byte gUnknown_02038696 -_080B213C: .4byte 0x0600c028 -_080B2140: .4byte 0x0600c02a -_080B2144: .4byte 0x0600c068 -_080B2148: .4byte 0x0600c06a - thumb_func_end unref_sub_80B20C4 - - thumb_func_start sub_80B214C -sub_80B214C: @ 80B214C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _080B2178 - adds r2, r1, r0 - ldrb r1, [r2, 0x15] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080B2172 - ldrb r1, [r2, 0xC] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080B217C -_080B2172: - movs r0, 0 - b _080B217E - .align 2, 0 -_080B2178: .4byte 0x02019260 -_080B217C: - movs r0, 0x1 -_080B217E: - pop {r1} - bx r1 - thumb_func_end sub_80B214C - - thumb_func_start sub_80B2184 -sub_80B2184: @ 80B2184 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _080B2250 - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080B2254 - movs r2, 0xF0 - strh r2, [r0] - ldr r0, _080B2258 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080B225C - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080B2260 - movs r0, 0 - str r0, [sp] - ldr r0, _080B2264 - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080B2268 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080B226C - bl LZDecompressVram - ldrb r1, [r4] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r4] - movs r4, 0 - ldr r6, _080B2270 - adds r7, r2, 0 - movs r5, 0x4 - ldr r3, _080B2274 -_080B21EE: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - ldrb r0, [r3, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - adds r3, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _080B21EE - ldr r3, _080B2278 - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r4, 0x1 - orrs r0, r4 - strb r0, [r3] - ldr r2, _080B227C - ldrb r0, [r2] - ands r1, r0 - orrs r1, r4 - strb r1, [r2] - adds r2, 0x2 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x1] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2250: .4byte REG_BG1CNT -_080B2254: .4byte gUnknown_030042C0 -_080B2258: .4byte gUnknown_030041B4 -_080B225C: .4byte REG_BG1HOFS -_080B2260: .4byte 0x0600f000 -_080B2264: .4byte 0x040000d4 -_080B2268: .4byte 0x85000400 -_080B226C: .4byte gUnknown_08D17C3C -_080B2270: .4byte gSprites -_080B2274: .4byte 0x02019338 -_080B2278: .4byte REG_BG2CNT -_080B227C: .4byte REG_BG0CNT - thumb_func_end sub_80B2184 - - thumb_func_start sub_80B2280 -sub_80B2280: @ 80B2280 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r2, _080B2358 - movs r3, 0x80 - lsls r3, 6 - ldr r0, _080B235C - mov r12, r0 - ldr r0, _080B2360 - mov r8, r0 - movs r5, 0 - ldr r1, _080B2364 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080B2368 - movs r7, 0x85 - lsls r7, 24 -_080B22A4: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080B22A4 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _080B236C - movs r2, 0 - str r2, [sp] - ldr r0, _080B2364 - mov r3, sp - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _080B2368 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - mov r0, r12 - strh r2, [r0] - mov r3, r8 - strh r2, [r3] - ldr r2, _080B2370 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - movs r4, 0 - ldr r5, _080B2374 - adds r6, r3, 0 - ldr r3, _080B2378 -_080B231E: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r0, [r3, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1, 0x5] - adds r3, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _080B231E - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2358: .4byte 0x06008000 -_080B235C: .4byte gUnknown_030042C0 -_080B2360: .4byte gUnknown_030041B4 -_080B2364: .4byte 0x040000d4 -_080B2368: .4byte 0x85000400 -_080B236C: .4byte 0x0600f000 -_080B2370: .4byte REG_BG1CNT -_080B2374: .4byte gSprites -_080B2378: .4byte 0x02019338 - thumb_func_end sub_80B2280 - - thumb_func_start sub_80B237C -sub_80B237C: @ 80B237C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080B23AC - movs r0, 0 - strh r0, [r1] - ldr r1, _080B23B0 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0x62 - movs r1, 0 - bl PlaySE12WithPanning - ldr r1, _080B23B4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B23B8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B23AC: .4byte gUnknown_030042C0 -_080B23B0: .4byte gUnknown_030041B4 -_080B23B4: .4byte gTasks -_080B23B8: .4byte sub_80B23BC - thumb_func_end sub_80B237C - - thumb_func_start sub_80B23BC -sub_80B23BC: @ 80B23BC - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _080B23F4 - ldrh r0, [r1] - subs r0, 0x7 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bge _080B23D4 - movs r0, 0 - strh r0, [r1] -_080B23D4: - ldrh r2, [r1] - cmp r2, 0 - bne _080B23EE - ldr r0, _080B23F8 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - strh r2, [r1, 0xC] - ldr r0, _080B23FC - str r0, [r1] -_080B23EE: - pop {r0} - bx r0 - .align 2, 0 -_080B23F4: .4byte gUnknown_030041B4 -_080B23F8: .4byte gTasks -_080B23FC: .4byte sub_80B2400 - thumb_func_end sub_80B23BC - - thumb_func_start sub_80B2400 -sub_80B2400: @ 80B2400 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080B2424 - lsls r3, r4, 2 - adds r0, r3, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x1 - beq _080B247C - cmp r1, 0x1 - bgt _080B2428 - cmp r1, 0 - beq _080B2432 - b _080B24FC - .align 2, 0 -_080B2424: .4byte gTasks -_080B2428: - cmp r1, 0x2 - beq _080B24D6 - cmp r1, 0x3 - beq _080B24EC - b _080B24FC -_080B2432: - movs r2, 0 - adds r6, r3, 0 - ldr r5, _080B2470 - ldr r3, _080B2474 -_080B243A: - adds r0, r2, r5 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _080B243A - bl sub_80AFA5C - bl sub_80B0588 - bl sub_80AEF50 - bl sub_80B1118 - movs r0, 0x1 - bl sub_80B1FD0 - bl sub_80AFFA0 - ldr r0, _080B2478 - adds r1, r6, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x8] - b _080B24FC - .align 2, 0 -_080B2470: .4byte 0x02019218 -_080B2474: .4byte gUnknown_02038696 -_080B2478: .4byte gTasks -_080B247C: - ldr r0, _080B24C0 - ldrb r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080B24D0 - ldr r2, _080B24C4 - ldrb r0, [r2, 0x7] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x7] - bl sub_80AE074 - lsls r0, 24 - cmp r0, 0 - beq _080B249E - bl sub_80AF438 -_080B249E: - ldr r4, _080B24C8 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B24CC - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - bl sub_80AF860 - movs r0, 0x2 - strh r0, [r5, 0x8] - b _080B24FC - .align 2, 0 -_080B24C0: .4byte gUnknown_0203869A -_080B24C4: .4byte 0x02019204 -_080B24C8: .4byte sub_80C8C80 -_080B24CC: .4byte sub_80AD8DC -_080B24D0: - bl sub_80AF438 - b _080B24E2 -_080B24D6: - ldr r0, _080B24E8 - ldrb r1, [r0, 0x7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080B24FC -_080B24E2: - movs r0, 0x3 - strh r0, [r5, 0x8] - b _080B24FC - .align 2, 0 -_080B24E8: .4byte 0x02019204 -_080B24EC: - bl sub_80AF120 - bl sub_80AEB30 - movs r0, 0 - strh r0, [r5, 0x8] - ldr r0, _080B2504 - str r0, [r5] -_080B24FC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B2504: .4byte sub_80B253C - thumb_func_end sub_80B2400 - - thumb_func_start sub_80B2508 -sub_80B2508: @ 80B2508 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080B2530 - ldrh r0, [r1] - adds r0, 0x7 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _080B252C - ldr r0, _080B2534 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080B2538 - str r0, [r1] -_080B252C: - pop {r0} - bx r0 - .align 2, 0 -_080B2530: .4byte gUnknown_030041B4 -_080B2534: .4byte gTasks -_080B2538: .4byte sub_80ADCDC - thumb_func_end sub_80B2508 - - thumb_func_start sub_80B253C -sub_80B253C: @ 80B253C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B255C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x9 - bgt _080B2560 - adds r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080B259C - .align 2, 0 -_080B255C: .4byte gTasks -_080B2560: - ldrh r3, [r1, 0xA] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r0, 0 - bne _080B257E - ldrh r2, [r1, 0x8] - movs r4, 0x8 - ldrsh r0, [r1, r4] - cmp r0, 0x10 - bne _080B257A - adds r0, r3, 0x1 - strh r0, [r1, 0xA] - b _080B259C -_080B257A: - adds r0, r2, 0x1 - b _080B259A -_080B257E: - ldrh r0, [r1, 0x8] - movs r3, 0x8 - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080B2598 - strh r2, [r1, 0xA] - strh r2, [r1, 0xC] - ldr r0, _080B2594 - str r0, [r1] - b _080B259C - .align 2, 0 -_080B2594: .4byte sub_80B25A4 -_080B2598: - subs r0, 0x1 -_080B259A: - strh r0, [r1, 0x8] -_080B259C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B253C - - thumb_func_start sub_80B25A4 -sub_80B25A4: @ 80B25A4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B25C4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x9 - bgt _080B25C8 - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - b _080B25D8 - .align 2, 0 -_080B25C4: .4byte gTasks -_080B25C8: - movs r0, 0 - strh r0, [r4, 0xC] - movs r0, 0x61 - movs r1, 0 - bl PlaySE12WithPanning - ldr r0, _080B25E0 - str r0, [r4] -_080B25D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B25E0: .4byte sub_80B2508 - thumb_func_end sub_80B25A4 - - thumb_func_start sub_80B25E4 -sub_80B25E4: @ 80B25E4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r6, 0 - ldr r5, _080B26B4 -_080B25F6: - bl AllocOamMatrix - lsls r1, r6, 2 - ldr r2, _080B26B8 - mov r8, r2 - adds r4, r1, r2 - ldrb r1, [r4] - lsls r3, r1, 4 - adds r3, r1 - lsls r3, 2 - adds r3, r5 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1F - ands r0, r1 - lsls r0, 1 - ldrb r1, [r3, 0x3] - movs r7, 0x3F - negs r7, r7 - adds r2, r7, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x3] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r2, [r0, 0x1] - movs r3, 0x4 - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strb r2, [r0, 0x1] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - bl StartSpriteAffineAnim - mov r7, r9 - cmp r7, 0x2 - bne _080B267A - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl AnimateSprite - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r3, 0x5 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0] -_080B267A: - adds r6, 0x1 - cmp r6, 0x3 - ble _080B25F6 - ldr r0, _080B26BC - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B26C0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r7, r9 - strh r7, [r1, 0x8] - ldr r2, _080B26C4 - add r2, r8 - ldrb r0, [r2, 0x7] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x7] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B26B4: .4byte gSprites -_080B26B8: .4byte 0x02019338 -_080B26BC: .4byte sub_80B26C8 -_080B26C0: .4byte gTasks -_080B26C4: .4byte 0xfffffecc - thumb_func_end sub_80B25E4 - - thumb_func_start sub_80B26C8 -sub_80B26C8: @ 80B26C8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080B2750 - ldr r4, _080B2754 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080B274A - ldr r0, _080B2758 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - cmp r0, 0x1 - bne _080B2718 - adds r5, r2, 0 - movs r3, 0x4 - adds r2, r4, 0 - movs r4, 0x3 -_080B26FE: - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - adds r2, 0x4 - subs r4, 0x1 - cmp r4, 0 - bge _080B26FE -_080B2718: - movs r4, 0 -_080B271A: - lsls r0, r4, 2 - ldr r5, _080B2754 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B2750 - adds r0, r1 - bl FreeSpriteOamMatrix - adds r4, 0x1 - cmp r4, 0x3 - ble _080B271A - ldr r0, _080B275C - adds r2, r5, r0 - ldrb r1, [r2, 0x7] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x7] - adds r0, r6, 0 - bl DestroyTask -_080B274A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B2750: .4byte gSprites -_080B2754: .4byte 0x02019338 -_080B2758: .4byte gTasks -_080B275C: .4byte 0xfffffecc - thumb_func_end sub_80B26C8 - - thumb_func_start sub_80B2760 -sub_80B2760: @ 80B2760 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _080B2770 - movs r1, 0x1 -_080B2770: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_80B2760 - - thumb_func_start sub_80B2778 -sub_80B2778: @ 80B2778 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080B278C - cmp r1, r0 - bls _080B2786 - movs r1, 0 -_080B2786: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B278C: .4byte 0x0000019b - thumb_func_end sub_80B2778 - - thumb_func_start sub_80B2790 -sub_80B2790: @ 80B2790 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - ldr r4, _080B27F0 - adds r0, r4 - ldrh r0, [r0, 0x6] - bl sub_80B2760 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080B27F4 - lsls r0, r6, 6 - adds r0, r1 - ldrh r0, [r0] - bl sub_80B2778 - lsls r0, 16 - lsrs r7, r0, 16 - adds r4, 0xE8 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x14 - bl memset - bl sub_8075624 - ldr r1, _080B27F8 - movs r2, 0 - adds r0, r1, 0x3 -_080B27D0: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _080B27D0 - cmp r5, 0x90 - beq _080B2848 - cmp r5, 0x90 - bgt _080B2806 - cmp r5, 0x4C - beq _080B2898 - cmp r5, 0x4C - bgt _080B27FC - cmp r5, 0xD - beq _080B2898 - b _080B28BE - .align 2, 0 -_080B27F0: .4byte 0x02019260 -_080B27F4: .4byte gUnknown_02038570 -_080B27F8: .4byte gUnknown_02024E84 -_080B27FC: - cmp r5, 0x82 - beq _080B2898 - cmp r5, 0x8F - beq _080B2898 - b _080B28BE -_080B2806: - cmp r5, 0xD8 - beq _080B2880 - cmp r5, 0xD8 - bgt _080B2814 - cmp r5, 0xAE - beq _080B2822 - b _080B28BE -_080B2814: - cmp r5, 0xDA - beq _080B288C - movs r0, 0x88 - lsls r0, 1 - cmp r5, r0 - beq _080B2848 - b _080B28BE -_080B2822: - ldr r0, _080B2840 - lsls r1, r7, 3 - subs r1, r7 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x6] - cmp r0, 0x7 - beq _080B2838 - ldrb r0, [r1, 0x7] - cmp r0, 0x7 - bne _080B28B8 -_080B2838: - ldr r1, _080B2844 - movs r0, 0 - b _080B28BC - .align 2, 0 -_080B2840: .4byte gBaseStats -_080B2844: .4byte gUnknown_0202F7C4 -_080B2848: - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - ldr r4, _080B2878 - adds r0, r4 - ldrb r5, [r0, 0x1B] - ldr r6, _080B287C - lsls r5, 6 - adds r0, r5, r6 - ldrh r0, [r0] - bl sub_80B2778 - adds r4, 0xE8 - strh r0, [r4, 0x2] - adds r6, 0x38 - adds r5, r6 - ldr r0, [r5] - str r0, [r4, 0x10] - ldrb r0, [r4, 0x4] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x4] - b _080B28BE - .align 2, 0 -_080B2878: .4byte 0x02019260 -_080B287C: .4byte gUnknown_02038570 -_080B2880: - ldr r1, _080B2888 - movs r0, 0xFF - b _080B28BC - .align 2, 0 -_080B2888: .4byte gUnknown_0202F7BE -_080B288C: - ldr r1, _080B2894 - movs r0, 0 - b _080B28BC - .align 2, 0 -_080B2894: .4byte gUnknown_0202F7BE -_080B2898: - ldr r0, _080B28B0 - adds r2, r0, 0 - adds r2, 0x5A - ldrb r1, [r2] - cmp r1, 0 - bne _080B28B8 - movs r0, 0x2 - strb r0, [r2] - ldr r0, _080B28B4 - strb r1, [r0] - b _080B28BE - .align 2, 0 -_080B28B0: .4byte 0x02019204 -_080B28B4: .4byte gUnknown_0202F7C4 -_080B28B8: - ldr r1, _080B28C8 - movs r0, 0x1 -_080B28BC: - strb r0, [r1] -_080B28BE: - bl sub_80B2968 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B28C8: .4byte gUnknown_0202F7C4 - thumb_func_end sub_80B2790 - - thumb_func_start unref_sub_80B28CC -unref_sub_80B28CC: @ 80B28CC - push {r4,lr} - ldr r4, _080B28EC - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x14 - bl memset - subs r4, 0xEA - ldrb r0, [r4] - cmp r0, 0 - beq _080B28E6 - subs r0, 0x1 - strb r0, [r4] -_080B28E6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B28EC: .4byte 0x02019348 - thumb_func_end unref_sub_80B28CC - - thumb_func_start sub_80B28F0 -sub_80B28F0: @ 80B28F0 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080B2924 - strb r4, [r6, 0x5] - ldr r5, _080B2928 - lsls r4, 6 - adds r0, r4, r5 - ldrh r0, [r0] - bl sub_80B2778 - strh r0, [r6] - adds r0, r5, 0 - adds r0, 0x38 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r6, 0x8] - adds r5, 0x3C - adds r4, r5 - ldr r0, [r4] - str r0, [r6, 0xC] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B2924: .4byte 0x02019348 -_080B2928: .4byte gUnknown_02038570 - thumb_func_end sub_80B28F0 - - thumb_func_start sub_80B292C -sub_80B292C: @ 80B292C - push {lr} - ldr r0, _080B2958 - bl object_new_hidden_with_callback - ldr r1, _080B295C - strb r0, [r1, 0x3] - ldr r0, _080B2960 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B2964 - adds r0, r1 - bl InitSpriteAffineAnim - bl sub_80B2968 - pop {r0} - bx r0 - .align 2, 0 -_080B2958: .4byte SpriteCallbackDummy -_080B295C: .4byte gUnknown_02024BE0 -_080B2960: .4byte gUnknown_02024C08 -_080B2964: .4byte gSprites - thumb_func_end sub_80B292C - - thumb_func_start sub_80B2968 -sub_80B2968: @ 80B2968 - push {r4,lr} - ldr r0, _080B29AC - ldrb r0, [r0, 0x3] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080B29B0 - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0x3 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - movs r0, 0x3 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B29AC: .4byte gUnknown_02024BE0 -_080B29B0: .4byte gSprites - thumb_func_end sub_80B2968 - - thumb_func_start sub_80B29B4 -sub_80B29B4: @ 80B29B4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080B29D4 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x6] - cmp r0, 0x20 - bhi _080B2A6C - lsls r0, 2 - ldr r1, _080B29D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B29D4: .4byte gBattleMoves -_080B29D8: .4byte _080B29DC - .align 2, 0 -_080B29DC: - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A60 - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A60 - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C - .4byte _080B2A6C -_080B2A60: - ldr r1, _080B2A68 - movs r0, 0x2 - b _080B2A70 - .align 2, 0 -_080B2A68: .4byte gUnknown_02024C08 -_080B2A6C: - ldr r1, _080B2A78 - movs r0, 0x3 -_080B2A70: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B2A78: .4byte gUnknown_02024C08 - thumb_func_end sub_80B29B4 - - thumb_func_start sub_80B2A7C -sub_80B2A7C: @ 80B2A7C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r1, _080B2AC8 - ldrb r0, [r1] - cmp r0, 0 - beq _080B2AB6 -_080B2AA8: - adds r6, 0x1 - cmp r6, 0x2 - bgt _080B2AB6 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080B2AA8 -_080B2AB6: - mov r0, r9 - cmp r0, 0xFF - bne _080B2AD0 - ldr r0, _080B2ACC - ldrb r0, [r0] - cmp r6, r0 - beq _080B2AD0 - movs r0, 0 - b _080B2C38 - .align 2, 0 -_080B2AC8: .4byte gUnknown_02038690 -_080B2ACC: .4byte gUnknown_02038695 -_080B2AD0: - ldr r0, _080B2AE4 - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080B2B16 - lsls r0, 2 - ldr r1, _080B2AE8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B2AE4: .4byte gUnknown_0203869C -_080B2AE8: .4byte _080B2AEC - .align 2, 0 -_080B2AEC: - .4byte _080B2B16 - .4byte _080B2B00 - .4byte _080B2B04 - .4byte _080B2B08 - .4byte _080B2B0E -_080B2B00: - adds r0, r7, 0x3 - b _080B2B12 -_080B2B04: - adds r0, r7, 0x6 - b _080B2B12 -_080B2B08: - adds r0, r7, 0 - adds r0, 0x9 - b _080B2B12 -_080B2B0E: - adds r0, r7, 0 - adds r0, 0xC -_080B2B12: - lsls r0, 24 - lsrs r7, r0, 24 -_080B2B16: - mov r1, r9 - cmp r1, 0xFE - beq _080B2BC4 - mov r0, r9 - movs r1, 0x1 - bl sub_80B2C4C - adds r4, r0, 0 - lsls r4, 24 - ldr r2, _080B2B98 - lsrs r4, 19 - ldr r0, _080B2B9C - adds r1, r2, r0 - adds r1, r4, r1 - ldr r5, _080B2BA0 - lsls r6, 6 - adds r0, r5, 0 - adds r0, 0x38 - adds r0, r6, r0 - ldr r0, [r0] - str r0, [r1] - adds r1, r4, r2 - mov r8, r1 - adds r0, r6, r5 - ldrh r1, [r0] - ldr r0, _080B2BA4 - add r0, r8 - strh r1, [r0] - movs r0, 0xB8 - lsls r0, 6 - adds r1, r2, r0 - adds r1, r4, r1 - adds r0, r5, 0 - adds r0, 0x3C - adds r0, r6, r0 - ldr r0, [r0] - str r0, [r1] - ldr r1, _080B2BA8 - adds r0, r2, r1 - adds r0, r4, r0 - adds r1, r5, 0x2 - adds r1, r6, r1 - str r2, [sp] - bl StringCopy - ldr r2, [sp] - ldr r0, _080B2BAC - adds r2, r0 - adds r4, r2 - adds r5, 0xD - adds r6, r5 - adds r0, r4, 0 - adds r1, r6, 0 - bl StringCopy - mov r1, r9 - cmp r1, 0xFF - beq _080B2BB8 - ldr r0, _080B2BB0 - ldrh r1, [r0] - ldr r0, _080B2BB4 - add r0, r8 - strb r1, [r0] - b _080B2C36 - .align 2, 0 -_080B2B98: .4byte gSaveBlock1 -_080B2B9C: .4byte 0x00002dfc -_080B2BA0: .4byte gUnknown_02038570 -_080B2BA4: .4byte 0x00002e04 -_080B2BA8: .4byte 0x00002e07 -_080B2BAC: .4byte 0x00002e12 -_080B2BB0: .4byte gUnknown_0203869C -_080B2BB4: .4byte 0x00002e06 -_080B2BB8: - ldr r0, _080B2BC0 - add r0, r8 - strb r7, [r0] - b _080B2C36 - .align 2, 0 -_080B2BC0: .4byte 0x00002e06 -_080B2BC4: - ldr r5, _080B2C14 - ldr r2, _080B2C18 - lsls r4, r6, 6 - adds r0, r2, 0 - adds r0, 0x38 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r5] - adds r0, r2, 0 - adds r0, 0x3C - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r5, 0x4] - adds r0, r4, r2 - ldrh r0, [r0] - strh r0, [r5, 0x8] - adds r0, r5, 0 - adds r0, 0xB - adds r1, r2, 0x2 - adds r1, r4, r1 - str r2, [sp] - bl StringCopy - ldr r0, _080B2C1C - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - ldr r2, [sp] - cmp r0, 0 - beq _080B2C24 - adds r0, r5, 0 - adds r0, 0x16 - lsls r1, r6, 3 - subs r1, r6 - lsls r1, 2 - ldr r2, _080B2C20 - adds r1, r2 - bl StringCopy - b _080B2C32 - .align 2, 0 -_080B2C14: .4byte 0x02015de0 -_080B2C18: .4byte gUnknown_02038570 -_080B2C1C: .4byte gUnknown_0203869A -_080B2C20: .4byte gLinkPlayers + 0x8 -_080B2C24: - adds r0, r5, 0 - adds r0, 0x16 - adds r1, r2, 0 - adds r1, 0xD - adds r1, r4, r1 - bl StringCopy -_080B2C32: - ldr r0, _080B2C48 - strb r7, [r0, 0xA] -_080B2C36: - movs r0, 0x1 -_080B2C38: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B2C48: .4byte 0x02015de0 - thumb_func_end sub_80B2A7C - - thumb_func_start sub_80B2C4C -sub_80B2C4C: @ 80B2C4C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r0, 0x2 - beq _080B2C6E - cmp r0, 0x2 - ble _080B2C66 - cmp r0, 0x3 - beq _080B2CA0 - b _080B2CD4 -_080B2C66: - cmp r2, 0 - blt _080B2CD4 - adds r0, r2, 0 - b _080B2D16 -_080B2C6E: - cmp r1, 0 - beq _080B2C98 - movs r2, 0x4 - ldr r0, _080B2C9C - adds r4, r0, 0 - adds r4, 0x60 - adds r3, r0, 0 - adds r3, 0x80 -_080B2C7E: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5,r6} - stm r1!, {r5,r6} - subs r4, 0x20 - subs r3, 0x20 - subs r2, 0x1 - cmp r2, 0x2 - bgt _080B2C7E -_080B2C98: - movs r0, 0x2 - b _080B2D16 - .align 2, 0 -_080B2C9C: .4byte gSaveBlock1 + 0x2DFC -_080B2CA0: - cmp r1, 0 - beq _080B2CCA - movs r2, 0x7 - ldr r0, _080B2CD0 - adds r4, r0, 0 - adds r4, 0xC0 - adds r3, r0, 0 - adds r3, 0xE0 -_080B2CB0: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5,r7} - stm r1!, {r5,r7} - subs r4, 0x20 - subs r3, 0x20 - subs r2, 0x1 - cmp r2, 0x5 - bgt _080B2CB0 -_080B2CCA: - movs r0, 0x5 - b _080B2D16 - .align 2, 0 -_080B2CD0: .4byte gSaveBlock1 + 0x2DFC -_080B2CD4: - ldr r0, _080B2CE8 - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080B2D14 - lsls r0, 2 - ldr r1, _080B2CEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B2CE8: .4byte gUnknown_0203869C -_080B2CEC: .4byte _080B2CF0 - .align 2, 0 -_080B2CF0: - .4byte _080B2D04 - .4byte _080B2D08 - .4byte _080B2D0C - .4byte _080B2D10 - .4byte _080B2D14 -_080B2D04: - movs r0, 0x8 - b _080B2D16 -_080B2D08: - movs r0, 0x9 - b _080B2D16 -_080B2D0C: - movs r0, 0xA - b _080B2D16 -_080B2D10: - movs r0, 0xB - b _080B2D16 -_080B2D14: - movs r0, 0xC -_080B2D16: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B2C4C - - thumb_func_start sub_80B2D1C -sub_80B2D1C: @ 80B2D1C - push {r4-r7,lr} - ldr r0, _080B2D48 - ldr r4, _080B2D4C - ldr r1, _080B2D50 - adds r3, r0, r1 - movs r2, 0x7 -_080B2D28: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5,r6} - stm r1!, {r5,r6} - adds r4, 0x20 - adds r3, 0x20 - subs r2, 0x1 - cmp r2, 0 - bge _080B2D28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2D48: .4byte gSaveBlock1 -_080B2D4C: .4byte gUnknown_083CC5D0 -_080B2D50: .4byte 0x00002dfc - thumb_func_end sub_80B2D1C - - thumb_func_start CreateShopMenu -CreateShopMenu: @ 80B2D54 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - ldr r1, _080B2D90 - movs r0, 0 - strb r4, [r1, 0xC] - strb r0, [r1, 0x9] - cmp r4, 0 - bne _080B2D9C - movs r0, 0x2 - strb r0, [r1, 0xA] - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x7 - bl MenuDrawTextWindow - ldr r3, _080B2D94 - ldr r0, _080B2D98 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x3 - bl PrintMenuItemsReordered - b _080B2DBC - .align 2, 0 -_080B2D90: .4byte gUnknown_03000708 -_080B2D94: .4byte gUnknown_083CC6D0 -_080B2D98: .4byte gUnknown_083CC6E8 -_080B2D9C: - movs r0, 0x1 - strb r0, [r1, 0xA] - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x5 - bl MenuDrawTextWindow - ldr r3, _080B2DEC - ldr r0, _080B2DF0 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x2 - bl PrintMenuItemsReordered -_080B2DBC: - ldr r0, _080B2DF4 - ldrb r3, [r0, 0xA] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl InitMenu - ldr r0, _080B2DF8 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B2DEC: .4byte gUnknown_083CC6D0 -_080B2DF0: .4byte gUnknown_083CC6EB -_080B2DF4: .4byte gUnknown_03000708 -_080B2DF8: .4byte sub_80B2E38 - thumb_func_end CreateShopMenu - - thumb_func_start SetShopMenuCallback -SetShopMenuCallback: @ 80B2DFC - ldr r1, _080B2E04 - str r0, [r1] - bx lr - .align 2, 0 -_080B2E04: .4byte gUnknown_03000708 - thumb_func_end SetShopMenuCallback - - thumb_func_start SetShopItemsForSale -SetShopItemsForSale: @ 80B2E08 - push {lr} - adds r1, r0, 0 - movs r2, 0 - ldr r3, _080B2E34 - str r1, [r3, 0x4] - strb r2, [r3, 0x8] - ldrh r0, [r1] - cmp r0, 0 - beq _080B2E30 -_080B2E1A: - ldrb r0, [r3, 0x8] - adds r0, 0x1 - strb r0, [r3, 0x8] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080B2E1A -_080B2E30: - pop {r0} - bx r0 - .align 2, 0 -_080B2E34: .4byte gUnknown_03000708 - thumb_func_end SetShopItemsForSale - - thumb_func_start sub_80B2E38 -sub_80B2E38: @ 80B2E38 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080B2E60 - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080B2E68 - ldr r4, _080B2E64 - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _080B2EF4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080B2E82 - .align 2, 0 -_080B2E60: .4byte gMain -_080B2E64: .4byte gUnknown_03000708 -_080B2E68: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080B2E90 - ldr r4, _080B2E8C - ldrb r0, [r4, 0x9] - ldrb r1, [r4, 0xA] - cmp r0, r1 - beq _080B2EF4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080B2E82: - bl MoveMenuCursor - strb r0, [r4, 0x9] - b _080B2EF4 - .align 2, 0 -_080B2E8C: .4byte gUnknown_03000708 -_080B2E90: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B2EE0 - movs r0, 0x5 - bl PlaySE - ldr r3, _080B2EB0 - ldrb r0, [r3, 0xC] - cmp r0, 0 - bne _080B2EBC - ldr r1, _080B2EB4 - ldr r2, _080B2EB8 - b _080B2EC0 - .align 2, 0 -_080B2EB0: .4byte gUnknown_03000708 -_080B2EB4: .4byte gUnknown_083CC6D0 -_080B2EB8: .4byte gUnknown_083CC6E8 -_080B2EBC: - ldr r1, _080B2ED8 - ldr r2, _080B2EDC -_080B2EC0: - ldrb r0, [r3, 0x9] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080B2EF4 - .align 2, 0 -_080B2ED8: .4byte gUnknown_083CC6D0 -_080B2EDC: .4byte gUnknown_083CC6EB -_080B2EE0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B2EF4 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl HandleShopMenuQuit -_080B2EF4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2E38 - - thumb_func_start sub_80B2EFC -sub_80B2EFC: @ 80B2EFC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B2F24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080B2F28 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080B2F2C - str r0, [r1] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_080B2F24: .4byte gTasks -_080B2F28: .4byte BuyMenuDrawGraphics -_080B2F2C: .4byte sub_80B2FA0 - thumb_func_end sub_80B2EFC - - thumb_func_start sub_80B2F30 -sub_80B2F30: @ 80B2F30 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B2F58 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080B2F5C - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080B2F60 - str r0, [r1] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_080B2F58: .4byte gTasks -_080B2F5C: .4byte sub_80A6300 -_080B2F60: .4byte sub_80B2FA0 - thumb_func_end sub_80B2F30 - - thumb_func_start HandleShopMenuQuit -HandleShopMenuQuit: @ 80B2F64 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xB - movs r3, 0x8 - bl MenuZeroFillWindowRect - bl sub_80BE3BC - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - ldr r0, _080B2F9C - ldr r0, [r0] - cmp r0, 0 - beq _080B2F96 - bl _call_via_r0 -_080B2F96: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2F9C: .4byte gUnknown_03000708 - thumb_func_end HandleShopMenuQuit - - thumb_func_start sub_80B2FA0 -sub_80B2FA0: @ 80B2FA0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080B2FD4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B2FCE - ldr r0, _080B2FD8 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - lsls r0, 16 - ldrh r1, [r1, 0x1A] - orrs r0, r1 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_080B2FCE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2FD4: .4byte gPaletteFade -_080B2FD8: .4byte gTasks - thumb_func_end sub_80B2FA0 - - thumb_func_start ReturnToShopMenuAfterExitingSellMenu -ReturnToShopMenuAfterExitingSellMenu: @ 80B2FDC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B2FF8 - ldrb r0, [r0, 0xC] - bl CreateShopMenu - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2FF8: .4byte gUnknown_03000708 - thumb_func_end ReturnToShopMenuAfterExitingSellMenu - - thumb_func_start Task_ExitSellMenu -Task_ExitSellMenu: @ 80B2FFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3040 - ldr r0, _080B3028 - ldrb r0, [r0, 0xC] - cmp r0, 0x2 - bne _080B3034 - ldr r1, _080B302C - ldr r2, _080B3030 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080B3040 - .align 2, 0 -_080B3028: .4byte gUnknown_03000708 -_080B302C: .4byte gOtherText_CanIHelpYou -_080B3030: .4byte ReturnToShopMenuAfterExitingSellMenu -_080B3034: - ldr r1, _080B3048 - ldr r2, _080B304C - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080B3040: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3048: .4byte gOtherText_AnythingElse -_080B304C: .4byte ReturnToShopMenuAfterExitingSellMenu - thumb_func_end Task_ExitSellMenu - - thumb_func_start sub_80B3050 -sub_80B3050: @ 80B3050 - push {lr} - bl pal_fill_black - ldr r0, _080B3064 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B3064: .4byte Task_ExitSellMenu - thumb_func_end sub_80B3050 - - thumb_func_start sub_80B3068 -sub_80B3068: @ 80B3068 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl Task_ExitSellMenu - pop {r0} - bx r0 - thumb_func_end sub_80B3068 - - thumb_func_start unref_sub_80B3078 -unref_sub_80B3078: @ 80B3078 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B308C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080B3090 - str r0, [r1] - bx lr - .align 2, 0 -_080B308C: .4byte gTasks -_080B3090: .4byte Task_ExitSellMenu - thumb_func_end unref_sub_80B3078 - - thumb_func_start sub_80B3094 -sub_80B3094: @ 80B3094 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80B3094 - - thumb_func_start sub_80B30AC -sub_80B30AC: @ 80B30AC - push {r4,lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r3, _080B30F0 - ldr r1, _080B30F4 - ldr r0, _080B30F8 - str r3, [r0] - str r1, [r0, 0x4] - ldr r4, _080B30FC - str r4, [r0, 0x8] - ldr r1, [r0, 0x8] - movs r2, 0x80 - lsls r2, 4 - adds r1, r3, r2 - ldr r2, _080B3100 - str r1, [r0] - str r2, [r0, 0x4] - str r4, [r0, 0x8] - ldr r1, [r0, 0x8] - movs r1, 0x80 - lsls r1, 5 - adds r3, r1 - ldr r1, _080B3104 - str r3, [r0] - str r1, [r0, 0x4] - str r4, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B30F0: .4byte gBG1TilemapBuffer -_080B30F4: .4byte 0x0600e800 -_080B30F8: .4byte 0x040000d4 -_080B30FC: .4byte 0x80000400 -_080B3100: .4byte 0x0600e000 -_080B3104: .4byte 0x0600f000 - thumb_func_end sub_80B30AC - - thumb_func_start BuyMenuDrawGraphics -BuyMenuDrawGraphics: @ 80B3108 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - bl sub_80F9438 - bl remove_some_task - ldr r0, _080B3204 - movs r5, 0 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - ldr r0, _080B3208 - mov r8, r0 - ldrb r0, [r0, 0x8] - movs r1, 0x80 - orrs r0, r1 - mov r1, r8 - strb r0, [r1, 0x8] - movs r1, 0xE0 - lsls r1, 19 - movs r6, 0 - str r6, [sp, 0x4] - ldr r0, _080B320C - add r2, sp, 0x4 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _080B3210 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080B3214 - ldr r1, _080B3218 - bl LZDecompressVram - ldr r0, _080B321C - ldr r1, _080B3220 - bl sub_800D238 - ldr r0, _080B3224 - movs r1, 0xC0 - movs r2, 0x20 - bl LoadCompressedPalette - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - ldr r4, _080B3228 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - bl BuyMenuDrawMapGraphics - ldr r0, _080B322C - strb r6, [r0, 0x9] - strb r5, [r0, 0xB] - movs r0, 0 - movs r1, 0 - movs r2, 0x20 - movs r3, 0x20 - bl MenuZeroFillWindowRect - ldr r0, _080B3230 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_80B7C14 - movs r0, 0 - movs r1, 0x7 - bl sub_80B3764 - bl sub_80B37EC - bl sub_80B3270 - ldr r0, _080B3234 - movs r1, 0x8 - bl CreateTask - bl sub_80B3240 - movs r0, 0x1 - negs r0, r0 - str r6, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - mov r2, r8 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _080B3238 - bl SetVBlankCallback - ldr r0, _080B323C - bl SetMainCallback2 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3204: .4byte REG_BG1HOFS -_080B3208: .4byte gPaletteFade -_080B320C: .4byte 0x040000d4 -_080B3210: .4byte 0x85000100 -_080B3214: .4byte gBuyMenuFrame_Gfx -_080B3218: .4byte 0x06007c00 -_080B321C: .4byte gBuyMenuFrame_Tilemap -_080B3220: .4byte 0x02018000 -_080B3224: .4byte gMenuMoneyPal -_080B3228: .4byte gWindowConfig_81E6DFC -_080B322C: .4byte gUnknown_03000708 -_080B3230: .4byte gSaveBlock1 -_080B3234: .4byte sub_80B40E8 -_080B3238: .4byte sub_80B30AC -_080B323C: .4byte sub_80B3094 - thumb_func_end BuyMenuDrawGraphics - - thumb_func_start sub_80B3240 -sub_80B3240: @ 80B3240 - push {lr} - sub sp, 0x4 - ldr r1, _080B326C - mov r0, sp - movs r2, 0x4 - bl memcpy - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080B326C: .4byte gUnknown_083CC710 - thumb_func_end sub_80B3240 - - thumb_func_start sub_80B3270 -sub_80B3270: @ 80B3270 - push {lr} - bl sub_80F944C - ldr r0, _080B32A0 - ldrb r0, [r0, 0x8] - cmp r0, 0x7 - bls _080B329A - movs r0, 0 - movs r1, 0xAC - movs r2, 0xC - bl sub_80F953C - movs r0, 0x1 - movs r1, 0xAC - movs r2, 0x94 - bl sub_80F953C - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C -_080B329A: - pop {r0} - bx r0 - .align 2, 0 -_080B32A0: .4byte gUnknown_03000708 - thumb_func_end sub_80B3270 - - thumb_func_start sub_80B32A4 -sub_80B32A4: @ 80B32A4 - push {lr} - ldr r0, _080B32B8 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _080B32BC - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C - b _080B32C4 - .align 2, 0 -_080B32B8: .4byte gUnknown_03000708 -_080B32BC: - movs r0, 0 - movs r1, 0 - bl sub_80F979C -_080B32C4: - ldr r1, _080B32DC - ldrb r0, [r1, 0xB] - adds r0, 0x7 - ldrb r1, [r1, 0x8] - cmp r0, r1 - blt _080B32E0 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - b _080B32E8 - .align 2, 0 -_080B32DC: .4byte gUnknown_03000708 -_080B32E0: - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C -_080B32E8: - pop {r0} - bx r0 - thumb_func_end sub_80B32A4 - - thumb_func_start sub_80B32EC -sub_80B32EC: @ 80B32EC - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r2 - lsls r1, 1 - adds r1, r0 - ldr r2, _080B3304 - adds r0, r2, 0 - strh r0, [r1] - strh r0, [r1, 0x2] - bx lr - .align 2, 0 -_080B3304: .4byte 0x0000c3e1 - thumb_func_end sub_80B32EC - - thumb_func_start BuyMenuDrawMapMetatileLayer -BuyMenuDrawMapMetatileLayer: @ 80B3308 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r2 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r3] - strh r0, [r1] - ldrh r0, [r3, 0x2] - strh r0, [r1, 0x2] - adds r2, r1, 0 - adds r2, 0x40 - ldrh r0, [r3, 0x4] - strh r0, [r2] - adds r1, 0x42 - ldrh r0, [r3, 0x6] - strh r0, [r1] - bx lr - thumb_func_end BuyMenuDrawMapMetatileLayer - - thumb_func_start BuyMenuDrawMapMetatile -BuyMenuDrawMapMetatile: @ 80B3330 - push {r4-r7,lr} - adds r7, r2, 0 - lsls r3, 24 - lsrs r3, 24 - adds r2, r3, 0 - lsls r0, 17 - lsrs r0, 16 - lsls r1, 22 - movs r4, 0x80 - lsls r4, 15 - adds r1, r4 - lsrs r1, 16 - cmp r3, 0x1 - beq _080B3364 - cmp r3, 0x1 - bgt _080B3356 - cmp r3, 0 - beq _080B335C - b _080B33C0 -_080B3356: - cmp r2, 0x2 - beq _080B3398 - b _080B33C0 -_080B335C: - ldr r5, _080B3360 - b _080B3366 - .align 2, 0 -_080B3360: .4byte gBG2TilemapBuffer -_080B3364: - ldr r5, _080B3390 -_080B3366: - lsls r6, r0, 16 - asrs r6, 16 - lsls r4, r1, 16 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - adds r3, r7, 0 - bl BuyMenuDrawMapMetatileLayer - ldr r0, _080B3394 - adds r5, r0 - adds r3, r7, 0 - adds r3, 0x8 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl BuyMenuDrawMapMetatileLayer - b _080B33C0 - .align 2, 0 -_080B3390: .4byte gBG3TilemapBuffer -_080B3394: .4byte 0xfffff800 -_080B3398: - ldr r5, _080B33C8 - lsls r6, r0, 16 - asrs r6, 16 - lsls r4, r1, 16 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - adds r3, r7, 0 - bl BuyMenuDrawMapMetatileLayer - ldr r0, _080B33CC - adds r5, r0 - adds r3, r7, 0 - adds r3, 0x8 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl BuyMenuDrawMapMetatileLayer -_080B33C0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B33C8: .4byte gBG3TilemapBuffer -_080B33CC: .4byte 0xfffff000 - thumb_func_end BuyMenuDrawMapMetatile - - thumb_func_start sub_80B33D0 -sub_80B33D0: @ 80B33D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - adds r4, r1, 0 - mov r8, r2 - lsls r4, 22 - ldr r5, _080B3418 - lsls r6, 17 - asrs r6, 16 - movs r0, 0x80 - lsls r0, 15 - adds r4, r0 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - mov r3, r8 - bl BuyMenuDrawMapMetatileLayer - ldr r0, _080B341C - adds r5, r0 - movs r0, 0x8 - add r8, r0 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - mov r3, r8 - bl BuyMenuDrawMapMetatileLayer - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3418: .4byte gBG3TilemapBuffer -_080B341C: .4byte 0xfffff800 - thumb_func_end sub_80B33D0 - - thumb_func_start sub_80B3420 -sub_80B3420: @ 80B3420 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r1, sp - mov r0, sp - ldrh r0, [r0] - subs r0, 0x3 - strh r0, [r1] - ldrh r0, [r4] - subs r0, 0x3 - strh r0, [r4] - movs r1, 0 - ldr r0, _080B34A8 - mov r10, r0 - ldr r2, _080B34AC - mov r9, r2 -_080B3452: - movs r4, 0 - lsls r1, 16 - mov r8, r1 - asrs r7, r1, 16 -_080B345A: - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - lsls r4, 16 - asrs r6, r4, 16 - adds r0, r6 - mov r2, sp - movs r3, 0x2 - ldrsh r1, [r2, r3] - adds r1, r7 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r5, r0, 16 - cmp r7, 0x5 - beq _080B34D0 - cmp r6, 0x6 - beq _080B34D0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, r6 - mov r2, sp - movs r3, 0x2 - ldrsh r1, [r2, r3] - adds r1, r7 - bl MapGridGetMetatileLayerTypeAt - lsls r0, 24 - lsrs r3, r0, 24 - cmp r5, r10 - bhi _080B34B0 - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0, 0x10] - lsls r1, r5, 4 - ldr r2, [r0, 0xC] - adds r2, r1 - b _080B34C0 - .align 2, 0 -_080B34A8: .4byte 0x000001ff -_080B34AC: .4byte gMapHeader -_080B34B0: - mov r2, r9 - ldr r0, [r2] - ldr r1, [r0, 0x14] - ldr r2, _080B34CC - adds r0, r5, r2 - lsls r0, 4 - ldr r2, [r1, 0xC] - adds r2, r0 -_080B34C0: - adds r0, r6, 0 - adds r1, r7, 0 - bl BuyMenuDrawMapMetatile - b _080B3506 - .align 2, 0 -_080B34CC: .4byte 0xfffffe00 -_080B34D0: - cmp r5, r10 - bhi _080B34EC - asrs r0, r4, 16 - mov r3, r9 - ldr r1, [r3] - ldr r1, [r1, 0x10] - lsls r3, r5, 4 - ldr r2, [r1, 0xC] - adds r2, r3 - mov r3, r8 - asrs r1, r3, 16 - bl sub_80B33D0 - b _080B3506 -_080B34EC: - asrs r0, r4, 16 - mov r2, r9 - ldr r1, [r2] - ldr r2, [r1, 0x14] - ldr r3, _080B354C - adds r1, r5, r3 - lsls r1, 4 - ldr r2, [r2, 0xC] - adds r2, r1 - mov r3, r8 - asrs r1, r3, 16 - bl sub_80B33D0 -_080B3506: - cmp r7, 0 - bne _080B3520 - asrs r1, r4, 16 - cmp r1, 0 - beq _080B3520 - cmp r1, 0x6 - beq _080B3520 - lsls r1, 17 - asrs r1, 16 - ldr r0, _080B3550 - movs r2, 0x40 - bl sub_80B32EC -_080B3520: - movs r1, 0x80 - lsls r1, 9 - adds r0, r4, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080B345A - adds r0, r1, 0 - add r0, r8 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B3452 - 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 -_080B354C: .4byte 0xfffffe00 -_080B3550: .4byte gBG1TilemapBuffer - thumb_func_end sub_80B3420 - - thumb_func_start BuyMenuDrawMapGraphics -BuyMenuDrawMapGraphics: @ 80B3554 - push {lr} - bl sub_80F9020 - bl sub_80B356C - bl sub_80B368C - bl sub_80B3420 - pop {r0} - bx r0 - thumb_func_end BuyMenuDrawMapGraphics - - thumb_func_start sub_80B356C -sub_80B356C: @ 80B356C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r8, r0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - bl PlayerGetZCoord - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r5, 0 - ldr r2, _080B3674 - movs r1, 0x10 -_080B3598: - lsls r0, r5, 3 - adds r0, r2 - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080B3598 - movs r5, 0 - ldr r7, _080B3678 - subs r1, r7, 0x6 - mov r9, r1 -_080B35B0: - movs r4, 0 - adds r2, r5, 0x1 - mov r10, r2 -_080B35B6: - mov r1, sp - ldr r3, _080B367C - adds r0, r3, 0 - ldrh r1, [r1] - adds r0, r1 - adds r0, r4 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080B3680 - adds r1, r2, 0 - mov r3, sp - ldrh r3, [r3, 0x2] - adds r1, r3 - adds r1, r5 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x4] - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - beq _080B3650 - mov r0, r8 - lsls r3, r0, 3 - mov r1, r9 - adds r0, r3, r1 - movs r6, 0 - strh r2, [r0] - mov r0, r9 - adds r0, 0x2 - adds r0, r3, r0 - strh r4, [r0] - ldr r1, _080B3684 - adds r0, r3, r1 - strh r5, [r0] - ldr r1, _080B3688 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x1 - bne _080B3616 - adds r0, r3, r7 - strh r6, [r0] -_080B3616: - ldrb r0, [r2, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x2 - bne _080B3626 - adds r1, r3, r7 - movs r0, 0x1 - strh r0, [r1] -_080B3626: - ldrb r0, [r2, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x3 - bne _080B3636 - adds r1, r3, r7 - movs r0, 0x2 - strh r0, [r1] -_080B3636: - ldrb r0, [r2, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x4 - bne _080B3646 - adds r1, r3, r7 - movs r0, 0x3 - strh r0, [r1] -_080B3646: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080B3650: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _080B35B6 - mov r2, r10 - lsls r0, r2, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080B35B0 - 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 -_080B3674: .4byte gUnknown_020386A4 -_080B3678: .4byte gUnknown_020386AA -_080B367C: .4byte 0x0000fffd -_080B3680: .4byte 0x0000fffe -_080B3684: .4byte gUnknown_020386A8 -_080B3688: .4byte gMapObjects - thumb_func_end sub_80B356C - - thumb_func_start sub_80B368C -sub_80B368C: @ 80B368C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r5, 0 - ldr r6, _080B3710 - adds r0, r6, 0x6 - mov r8, r0 - ldr r7, _080B3714 -_080B369E: - lsls r4, r5, 3 - adds r1, r4, r6 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x10 - beq _080B36F8 - adds r1, r0, 0 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x5] - adds r1, r6, 0x2 - adds r1, r4, r1 - ldrh r2, [r1] - lsls r2, 4 - adds r2, 0x8 - lsls r2, 16 - asrs r2, 16 - adds r1, r6, 0x4 - adds r1, r4, r1 - ldrh r3, [r1] - lsls r3, 20 - movs r1, 0x80 - lsls r1, 14 - adds r3, r1 - asrs r3, 16 - movs r1, 0x2 - str r1, [sp] - ldr r1, _080B3718 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080B371C - adds r2, r0 - mov r1, r8 - adds r0, r4, r1 - ldrb r1, [r0] - adds r0, r2, 0 - bl StartSpriteAnim -_080B36F8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080B369E - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3710: .4byte gUnknown_020386A4 -_080B3714: .4byte gMapObjects -_080B3718: .4byte SpriteCallbackDummy -_080B371C: .4byte gSprites - thumb_func_end sub_80B368C - - thumb_func_start sub_80B3720 -sub_80B3720: @ 80B3720 - push {r4-r6,lr} - movs r1, 0 - ldr r6, _080B3754 - ldr r5, _080B3758 - ldr r4, _080B375C - ldr r0, _080B3760 - adds r3, r0, 0 -_080B372E: - lsls r0, r1, 16 - asrs r2, r0, 16 - lsls r1, r2, 1 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, 0 - beq _080B3742 - adds r1, r6 - adds r0, r3 - strh r0, [r1] -_080B3742: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, r5 - ble _080B372E - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3754: .4byte gBG1TilemapBuffer -_080B3758: .4byte 0x000003ff -_080B375C: .4byte 0x02018000 -_080B3760: .4byte 0x0000c3e0 - thumb_func_end sub_80B3720 - - thumb_func_start sub_80B3764 -sub_80B3764: @ 80B3764 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80B3720 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_80B39D0 - ldr r0, _080B3798 - ldrb r0, [r0, 0x9] - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0xE - movs r2, 0x2 - movs r3, 0x8 - bl InitMenu - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3798: .4byte gUnknown_03000708 - thumb_func_end sub_80B3764 - - thumb_func_start sub_80B379C -sub_80B379C: @ 80B379C - push {r4-r7,lr} - movs r1, 0 - ldr r0, _080B37E0 - mov r12, r0 - ldr r7, _080B37E4 - ldr r0, _080B37E8 - adds r6, r0, 0 -_080B37AA: - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xC - adds r5, r1, 0x1 - lsls r4, r0, 5 - lsls r3, r1, 5 -_080B37B6: - adds r1, r4, r2 - lsls r1, 1 - add r1, r12 - adds r0, r3, r2 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - adds r0, r6, r0 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xD - bls _080B37B6 - lsls r0, r5, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _080B37AA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B37E0: .4byte gBG1TilemapBuffer -_080B37E4: .4byte 0x02018300 -_080B37E8: .4byte 0x0000c3e0 - thumb_func_end sub_80B379C - - thumb_func_start sub_80B37EC -sub_80B37EC: @ 80B37EC - push {lr} - bl sub_80B3A70 - pop {r0} - bx r0 - thumb_func_end sub_80B37EC - - thumb_func_start sub_80B37F8 -sub_80B37F8: @ 80B37F8 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080B3884 - ldrb r0, [r1, 0xB] - ldrb r2, [r1, 0x9] - adds r0, r2 - ldr r1, [r1, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl itemid_get_market_price - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - asrs r4, r0 - ldr r0, _080B3888 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - adds r5, r0 - movs r1, 0xA - ldrsh r0, [r5, r1] - muls r0, r4 - movs r1, 0x6 - movs r2, 0x6 - movs r3, 0xB - bl sub_80B7A94 - ldr r0, _080B388C - movs r1, 0xFC - strb r1, [r0] - movs r1, 0x14 - strb r1, [r0, 0x1] - movs r1, 0x6 - strb r1, [r0, 0x2] - adds r0, 0x3 - movs r2, 0xA - ldrsh r1, [r5, r2] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080B3890 - movs r1, 0x1 - movs r2, 0xB - bl MenuPrint - ldr r0, _080B3894 - movs r1, 0x2 - str r1, [sp] - ldr r1, _080B3898 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xB - movs r3, 0xC - bl sub_80A3FA0 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3884: .4byte gUnknown_03000708 -_080B3888: .4byte gTasks -_080B388C: .4byte gStringVar1 -_080B3890: .4byte gOtherText_xString1 -_080B3894: .4byte gBG1TilemapBuffer -_080B3898: .4byte 0x0000c3e1 - thumb_func_end sub_80B37F8 - - thumb_func_start sub_80B389C -sub_80B389C: @ 80B389C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r2 - lsls r0, 16 - lsrs r2, r0, 16 - mov r9, r2 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r5, _080B392C - mov r0, r8 - cmp r0, 0 - beq _080B38C8 - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x1 - strb r0, [r5, 0x1] - movs r0, 0x2 - strb r0, [r5, 0x2] - adds r5, 0x3 -_080B38C8: - adds r0, r2, 0 - adds r1, r5, 0 - bl itemid_copy_name - ldr r6, _080B392C - lsls r7, r4, 3 - movs r0, 0x1 - str r0, [sp] - adds r0, r6, 0 - movs r1, 0x70 - adds r2, r7, 0 - movs r3, 0x58 - bl sub_8072A18 - adds r5, r6, 0 - mov r0, r8 - cmp r0, 0 - beq _080B38EE - adds r5, r6, 0x3 -_080B38EE: - mov r0, r9 - bl itemid_get_market_price - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - asrs r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x4 - bl sub_80B79F8 - adds r0, r6, 0 - movs r1, 0xCA - adds r2, r7, 0 - movs r3, 0x1 - bl sub_80729D8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B392C: .4byte gStringVar1 - thumb_func_end sub_80B389C - - thumb_func_start sub_80B3930 -sub_80B3930: @ 80B3930 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r2, 0 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r2, _080B39A0 - cmp r4, 0 - beq _080B395A - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x1 - strb r0, [r2, 0x1] - movs r0, 0x2 - strb r0, [r2, 0x2] - adds r2, 0x3 -_080B395A: - lsls r6, r3, 5 - ldr r0, _080B39A4 - mov r8, r0 - adds r1, r6, r0 - adds r0, r2, 0 - bl StringCopy - ldr r5, _080B39A0 - mov r0, r9 - lsls r7, r0, 3 - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x70 - adds r2, r7, 0 - movs r3, 0x58 - bl sub_8072A18 - adds r2, r5, 0 - cmp r4, 0 - beq _080B3986 - adds r2, r5, 0x3 -_080B3986: - mov r0, r8 - subs r0, 0x1 - adds r3, r6, r0 - ldrh r1, [r3, 0x14] - ldr r0, _080B39A8 - cmp r1, r0 - bne _080B39AC - movs r0, 0x19 - mov r1, r9 - adds r2, r4, 0 - bl sub_80B7B34 - b _080B39C2 - .align 2, 0 -_080B39A0: .4byte gStringVar1 -_080B39A4: .4byte gDecorations + 0x1 -_080B39A8: .4byte 0x00002710 -_080B39AC: - ldrh r1, [r3, 0x14] - adds r0, r2, 0 - movs r2, 0x4 - bl sub_80B79F8 - adds r0, r5, 0 - movs r1, 0xCA - adds r2, r7, 0 - movs r3, 0x1 - bl sub_80729D8 -_080B39C2: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B3930 - - thumb_func_start sub_80B39D0 -sub_80B39D0: @ 80B39D0 - push {r4-r6,lr} - adds r6, r1, 0 - adds r5, r2, 0 - b _080B3A1A -_080B39D8: - ldrb r0, [r1, 0xC] - cmp r0, 0 - bne _080B39FC - ldrb r0, [r1, 0xB] - adds r0, r4 - ldr r1, [r1, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r4, 25 - movs r2, 0x80 - lsls r2, 18 - adds r1, r2 - lsrs r1, 24 - adds r2, r5, 0 - bl sub_80B389C - b _080B3A18 -_080B39FC: - ldrb r0, [r1, 0xB] - adds r0, r4 - ldr r1, [r1, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r4, 25 - movs r2, 0x80 - lsls r2, 18 - adds r1, r2 - lsrs r1, 24 - adds r2, r5, 0 - bl sub_80B3930 -_080B3A18: - adds r0, r4, 0x1 -_080B3A1A: - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bgt _080B3A2E - ldr r1, _080B3A68 - ldrb r0, [r1, 0xB] - adds r0, r4 - ldrb r2, [r1, 0x8] - cmp r0, r2 - blt _080B39D8 -_080B3A2E: - cmp r4, 0x8 - beq _080B3A60 - ldr r1, _080B3A68 - ldrb r0, [r1, 0xB] - adds r0, r4 - ldrb r1, [r1, 0x8] - cmp r0, r1 - bne _080B3A60 - lsls r3, r4, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0xE - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - ldr r0, _080B3A6C - movs r1, 0xE - adds r2, r4, 0 - bl MenuPrint -_080B3A60: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3A68: .4byte gUnknown_03000708 -_080B3A6C: .4byte gOtherText_CancelNoTerminator - thumb_func_end sub_80B39D0 - - thumb_func_start sub_80B3A70 -sub_80B3A70: @ 80B3A70 - push {r4,lr} - sub sp, 0x8 - ldr r2, _080B3A9C - ldrb r1, [r2, 0xB] - ldrb r0, [r2, 0x9] - adds r0, r1, r0 - ldrb r1, [r2, 0x8] - cmp r0, r1 - beq _080B3ACC - ldrb r4, [r2, 0xC] - cmp r4, 0 - bne _080B3AA0 - ldr r1, [r2, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl itemid_get_description - movs r1, 0x30 - str r1, [sp] - str r4, [sp, 0x4] - b _080B3ABA - .align 2, 0 -_080B3A9C: .4byte gUnknown_03000708 -_080B3AA0: - ldr r1, _080B3AC8 - ldr r2, [r2, 0x4] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 5 - adds r1, 0x18 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x30 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] -_080B3ABA: - movs r1, 0x4 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072AB0 - b _080B3AE0 - .align 2, 0 -_080B3AC8: .4byte gDecorations -_080B3ACC: - ldr r0, _080B3AE8 - movs r1, 0x30 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x4 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072AB0 -_080B3AE0: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3AE8: .4byte gOtherText_QuitShopping - thumb_func_end sub_80B3A70 - - thumb_func_start sub_80B3AEC -sub_80B3AEC: @ 80B3AEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B3B5C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B3B06 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B3B7A -_080B3B06: - ldr r4, _080B3B60 - ldrb r1, [r4, 0x9] - adds r0, r1, 0 - movs r2, 0 - bl sub_80B39D0 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - adds r0, r1 - ldr r1, [r4, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x4 - bne _080B3B74 - ldr r0, _080B3B64 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0x9 - ble _080B3B74 - movs r0, 0xC - movs r1, 0x1 - bl sub_80A9424 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3B74 - ldr r1, _080B3B68 - ldr r2, _080B3B6C - ldr r3, _080B3B70 - adds r0, r5, 0 - bl DisplayItemMessageOnField - b _080B3B7A - .align 2, 0 -_080B3B5C: .4byte gMain -_080B3B60: .4byte gUnknown_03000708 -_080B3B64: .4byte gTasks -_080B3B68: .4byte gOtherText_FreePremierBall -_080B3B6C: .4byte sub_80B4378 -_080B3B70: .4byte 0x0000c3e1 -_080B3B74: - adds r0, r5, 0 - bl sub_80B4378 -_080B3B7A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3AEC - - thumb_func_start sub_80B3B80 -sub_80B3B80: @ 80B3B80 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x26 - bl sav12_xor_increment - ldr r5, _080B3BC0 - ldr r0, _080B3BC4 - ldr r1, [r0] - adds r0, r5, 0 - bl sub_80B79E0 - movs r0, 0x5F - bl PlaySE - ldr r0, [r5] - movs r1, 0 - movs r2, 0 - bl sub_80B7BEC - ldr r1, _080B3BC8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B3BCC - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3BC0: .4byte gSaveBlock1 + 0x490 -_080B3BC4: .4byte gUnknown_020386A0 -_080B3BC8: .4byte gTasks -_080B3BCC: .4byte sub_80B3AEC - thumb_func_end sub_80B3B80 - - thumb_func_start sub_80B3BD0 -sub_80B3BD0: @ 80B3BD0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B3BF0 - ldrb r1, [r0, 0x9] - adds r0, r1, 0 - movs r2, 0 - bl sub_80B39D0 - adds r0, r4, 0 - bl sub_80B4378 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3BF0: .4byte gUnknown_03000708 - thumb_func_end sub_80B3BD0 - - thumb_func_start sub_80B3BF4 -sub_80B3BF4: @ 80B3BF4 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _080B3C7C - movs r1, 0x4 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x8 - movs r2, 0x9 - movs r3, 0x4 - bl sub_80A3FA0 - bl sub_80B379C - bl sub_80B3420 - ldr r0, _080B3C80 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080B3C84 - ldr r1, [r1] - bl IsEnoughMoney - lsls r0, 24 - cmp r0, 0 - beq _080B3D18 - ldr r4, _080B3C88 - ldrb r0, [r4, 0xC] - cmp r0, 0 - bne _080B3CAC - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - adds r0, r1 - ldr r1, [r4, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldr r2, _080B3C8C - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl sub_80A9424 - lsls r0, 24 - cmp r0, 0 - beq _080B3C9C - ldr r1, _080B3C90 - ldr r2, _080B3C94 - ldr r3, _080B3C98 - adds r0, r5, 0 - bl DisplayItemMessageOnField - adds r0, r5, 0 - bl sub_80B4470 - b _080B3D24 - .align 2, 0 -_080B3C7C: .4byte gBG1TilemapBuffer -_080B3C80: .4byte gSaveBlock1 -_080B3C84: .4byte gUnknown_020386A0 -_080B3C88: .4byte gUnknown_03000708 -_080B3C8C: .4byte gTasks -_080B3C90: .4byte gOtherText_HereYouGo -_080B3C94: .4byte sub_80B3B80 -_080B3C98: .4byte 0x0000c3e1 -_080B3C9C: - ldr r1, _080B3CA4 - ldr r2, _080B3CA8 - b _080B3CD8 - .align 2, 0 -_080B3CA4: .4byte gOtherText_NoRoomFor -_080B3CA8: .4byte sub_80B3BD0 -_080B3CAC: - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - adds r0, r1 - ldr r1, [r4, 0x4] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl IsThereStorageSpaceForDecoration - lsls r0, 24 - cmp r0, 0 - beq _080B3CF0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - bne _080B3CD4 - ldr r1, _080B3CD0 - b _080B3CD6 - .align 2, 0 -_080B3CD0: .4byte gOtherText_HereYouGo2 -_080B3CD4: - ldr r1, _080B3CE4 -_080B3CD6: - ldr r2, _080B3CE8 -_080B3CD8: - ldr r3, _080B3CEC - adds r0, r5, 0 - bl DisplayItemMessageOnField - b _080B3D24 - .align 2, 0 -_080B3CE4: .4byte gOtherText_HereYouGo3 -_080B3CE8: .4byte sub_80B3B80 -_080B3CEC: .4byte 0x0000c3e1 -_080B3CF0: - ldr r4, _080B3D08 - ldr r1, _080B3D0C - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080B3D10 - ldr r3, _080B3D14 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _080B3D24 - .align 2, 0 -_080B3D08: .4byte gStringVar4 -_080B3D0C: .4byte gOtherText_SpaceForIsFull -_080B3D10: .4byte sub_80B3BD0 -_080B3D14: .4byte 0x0000c3e1 -_080B3D18: - ldr r1, _080B3D2C - ldr r2, _080B3D30 - ldr r3, _080B3D34 - adds r0, r5, 0 - bl DisplayItemMessageOnField -_080B3D24: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3D2C: .4byte gOtherText_NotEnoughMoney -_080B3D30: .4byte sub_80B3BD0 -_080B3D34: .4byte 0x0000c3e1 - thumb_func_end sub_80B3BF4 - - thumb_func_start sub_80B3D38 -sub_80B3D38: @ 80B3D38 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _080B3D70 - movs r1, 0x4 - str r1, [sp] - ldr r1, _080B3D74 - str r1, [sp, 0x4] - movs r1, 0x8 - movs r2, 0x9 - movs r3, 0x4 - bl sub_80A3FA0 - ldr r1, _080B3D78 - adds r0, r4, 0 - bl sub_80F914C - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3D70: .4byte gBG1TilemapBuffer -_080B3D74: .4byte 0x0000c3e1 -_080B3D78: .4byte gUnknown_083CC708 - thumb_func_end sub_80B3D38 - - thumb_func_start sub_80B3D7C -sub_80B3D7C: @ 80B3D7C - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B3DC0 - ldrb r1, [r0, 0x9] - adds r0, r1, 0 - movs r2, 0 - bl sub_80B39D0 - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _080B3DC4 - movs r1, 0x4 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x8 - movs r2, 0x9 - movs r3, 0x4 - bl sub_80A3FA0 - adds r0, r4, 0 - bl sub_80B4378 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3DC0: .4byte gUnknown_03000708 -_080B3DC4: .4byte gBG1TilemapBuffer - thumb_func_end sub_80B3D7C - - thumb_func_start sub_80B3DC8 -sub_80B3DC8: @ 80B3DC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, r6, 0 - ldr r7, _080B3EA8 - ldrb r1, [r7, 0xD] - adds r0, r6, 0 - bl sub_80A52C4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3DEE - adds r0, r6, 0 - bl sub_80B37F8 -_080B3DEE: - ldr r0, _080B3EAC - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B3ED8 - ldr r0, _080B3EB0 - mov r8, r0 - ldrb r0, [r7, 0xB] - ldrb r1, [r7, 0x9] - adds r0, r1 - ldr r1, [r7, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl itemid_get_market_price - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - asrs r4, r0 - ldr r0, _080B3EB4 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - adds r5, r0 - movs r1, 0xA - ldrsh r0, [r5, r1] - muls r0, r4 - mov r2, r8 - str r0, [r2] - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _080B3EB8 - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xB - movs r3, 0xC - bl sub_80A3FA0 - bl sub_80B379C - bl sub_80B3420 - ldrb r0, [r7, 0xB] - ldrb r1, [r7, 0x9] - adds r0, r1 - ldr r1, [r7, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _080B3EBC - bl itemid_copy_name - ldr r0, _080B3EC0 - movs r2, 0xA - ldrsh r1, [r5, r2] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080B3EC4 - mov r2, r8 - ldr r1, [r2] - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - ldr r4, _080B3EC8 - ldr r1, _080B3ECC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080B3ED0 - ldr r3, _080B3ED4 - adds r0, r6, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _080B3EF0 - .align 2, 0 -_080B3EA8: .4byte gUnknown_03000708 -_080B3EAC: .4byte gMain -_080B3EB0: .4byte gUnknown_020386A0 -_080B3EB4: .4byte gTasks -_080B3EB8: .4byte gBG1TilemapBuffer -_080B3EBC: .4byte gStringVar1 -_080B3EC0: .4byte gStringVar2 -_080B3EC4: .4byte gStringVar3 -_080B3EC8: .4byte gStringVar4 -_080B3ECC: .4byte gOtherText_ThatWillBe -_080B3ED0: .4byte sub_80B3D38 -_080B3ED4: .4byte 0x0000c3e1 -_080B3ED8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B3EF0 - ldrb r1, [r7, 0x9] - adds r0, r1, 0 - movs r2, 0 - bl sub_80B39D0 - adds r0, r4, 0 - bl sub_80B4378 -_080B3EF0: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B3DC8 - - thumb_func_start sub_80B3EFC -sub_80B3EFC: @ 80B3EFC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B3F78 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0xA] - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuDrawTextWindow - adds r0, r5, 0 - bl sub_80B37F8 - ldr r6, _080B3F7C - ldrb r0, [r6, 0xB] - ldrb r1, [r6, 0x9] - adds r0, r1 - ldr r1, [r6, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl itemid_get_market_price - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - ldr r1, _080B3F80 - movs r2, 0x92 - lsls r2, 3 - adds r1, r2 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - asrs r4, r0 - ldr r0, [r1] - adds r1, r4, 0 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x63 - bls _080B3F62 - movs r0, 0x63 -_080B3F62: - strb r0, [r6, 0xD] - ldr r0, _080B3F78 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080B3F84 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3F78: .4byte gTasks -_080B3F7C: .4byte gUnknown_03000708 -_080B3F80: .4byte gSaveBlock1 -_080B3F84: .4byte sub_80B3DC8 - thumb_func_end sub_80B3EFC - - thumb_func_start sub_80B3F88 -sub_80B3F88: @ 80B3F88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080B4020 - mov r8, r0 - ldr r1, [r0, 0x28] - ldr r3, _080B4024 - adds r1, r3 - adds r2, r1, 0 - adds r2, 0x80 - ldr r7, [r0, 0x24] - mov r10, r7 - ldr r0, _080B4028 - mov r9, r0 - movs r6, 0xD -_080B3FAC: - adds r3, r2, 0 - subs r3, 0x40 - str r3, [sp] - movs r7, 0x40 - negs r7, r7 - adds r7, r1 - mov r12, r7 - adds r3, r2, 0 - adds r4, r1, 0 - movs r5, 0xE -_080B3FC0: - ldrh r2, [r4] - mov r1, r9 - ands r1, r2 - mov r7, r8 - ldrh r0, [r7, 0x1A] - adds r0, 0x1 - cmp r1, r0 - ble _080B3FD4 - adds r0, r2, 0 - adds r0, 0x3C -_080B3FD4: - strh r0, [r3] - adds r3, 0x2 - adds r4, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _080B3FC0 - ldr r2, [sp] - mov r1, r12 - subs r6, 0x1 - cmp r6, 0 - bge _080B3FAC - ldr r1, _080B402C - add r1, r10 - movs r0, 0xF0 - lsls r0, 3 - adds r2, r1, r0 - ldr r3, _080B4030 - ldr r5, _080B4034 - ldr r4, _080B4038 - movs r6, 0xD -_080B3FFC: - str r1, [r3] - str r2, [r3, 0x4] - str r5, [r3, 0x8] - ldr r0, [r3, 0x8] - adds r2, r4 - adds r1, r4 - subs r6, 0x1 - cmp r6, 0 - bge _080B3FFC - 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 -_080B4020: .4byte gMenuWindow -_080B4024: .4byte 0x000003de -_080B4028: .4byte 0x000003ff -_080B402C: .4byte 0x00003a20 -_080B4030: .4byte 0x040000d4 -_080B4034: .4byte 0x800000f0 -_080B4038: .4byte 0xfffffc40 - thumb_func_end sub_80B3F88 - - thumb_func_start sub_80B403C -sub_80B403C: @ 80B403C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080B40D8 - mov r8, r0 - ldr r2, [r0, 0x28] - adds r1, r2, 0 - adds r1, 0x9E - adds r2, r1, 0 - adds r1, 0x80 - ldr r3, [r0, 0x24] - mov r10, r3 - ldr r7, _080B40DC - mov r9, r7 - movs r6, 0xD -_080B4060: - adds r0, r2, 0 - adds r0, 0x40 - str r0, [sp] - movs r3, 0x40 - adds r3, r1 - mov r12, r3 - adds r3, r2, 0 - adds r4, r1, 0 - movs r5, 0xE -_080B4072: - ldrh r2, [r4] - mov r1, r9 - ands r1, r2 - mov r7, r8 - ldrh r0, [r7, 0x1A] - adds r0, 0x1 - cmp r1, r0 - ble _080B4086 - adds r0, r2, 0 - subs r0, 0x3C -_080B4086: - strh r0, [r3] - adds r3, 0x2 - adds r4, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _080B4072 - ldr r2, [sp] - mov r1, r12 - subs r6, 0x1 - cmp r6, 0 - bge _080B4060 - movs r1, 0x96 - lsls r1, 4 - add r1, r10 - adds r2, r1, 0 - movs r0, 0xF0 - lsls r0, 3 - adds r1, r0 - ldr r3, _080B40E0 - ldr r5, _080B40E4 - movs r4, 0xF0 - lsls r4, 2 - movs r6, 0xD -_080B40B4: - str r1, [r3] - str r2, [r3, 0x4] - str r5, [r3, 0x8] - ldr r0, [r3, 0x8] - adds r2, r4 - adds r1, r4 - subs r6, 0x1 - cmp r6, 0 - bge _080B40B4 - 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 -_080B40D8: .4byte gMenuWindow -_080B40DC: .4byte 0x000003ff -_080B40E0: .4byte 0x040000d4 -_080B40E4: .4byte 0x800000f0 - thumb_func_end sub_80B403C - - thumb_func_start sub_80B40E8 -sub_80B40E8: @ 80B40E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - mov r8, r7 - ldr r0, _080B4134 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080B4102 - b _080B436C -_080B4102: - ldr r2, _080B4138 - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080B414C - ldr r4, _080B413C - ldrb r0, [r4, 0x9] - cmp r0, 0 - bne _080B4140 - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _080B411E - b _080B436C -_080B411E: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0xB] - subs r0, 0x1 - strb r0, [r4, 0xB] - bl sub_80B3F88 - movs r0, 0 - movs r1, 0 - b _080B417A - .align 2, 0 -_080B4134: .4byte gPaletteFade -_080B4138: .4byte gMain -_080B413C: .4byte gUnknown_03000708 -_080B4140: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080B41A0 -_080B414C: - cmp r1, 0x80 - bne _080B41AC - ldr r4, _080B418C - ldrb r0, [r4, 0x9] - cmp r0, 0x7 - bne _080B4190 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - adds r0, r1 - ldrb r1, [r4, 0x8] - cmp r0, r1 - bne _080B4166 - b _080B436C -_080B4166: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0xB] - adds r0, 0x1 - strb r0, [r4, 0xB] - bl sub_80B403C - movs r0, 0x7 - movs r1, 0x7 -_080B417A: - movs r2, 0 - bl sub_80B39D0 - bl sub_80B3A70 - bl sub_80B32A4 - b _080B436C - .align 2, 0 -_080B418C: .4byte gUnknown_03000708 -_080B4190: - ldrb r2, [r4, 0x8] - cmp r0, r2 - bne _080B4198 - b _080B436C -_080B4198: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080B41A0: - bl MoveMenuCursor - strb r0, [r4, 0x9] - bl sub_80B3A70 - b _080B436C -_080B41AC: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B41B8 - b _080B4358 -_080B41B8: - movs r0, 0x5 - bl PlaySE - ldr r6, _080B426C - ldrb r0, [r6, 0xB] - ldrb r1, [r6, 0x9] - adds r0, r1 - ldrb r1, [r6, 0x8] - cmp r0, r1 - bne _080B41CE - b _080B4350 -_080B41CE: - movs r0, 0 - bl sub_80F996C - movs r0, 0x1 - bl sub_80F996C - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldrb r1, [r6, 0x9] - adds r0, r1, 0 - movs r2, 0x1 - bl sub_80B39D0 - bl sub_8072DEC - movs r0, 0 - movs r1, 0xC - movs r2, 0xD - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldrb r0, [r6, 0xC] - cmp r0, 0 - bne _080B428C - ldr r5, _080B4270 - ldrb r0, [r6, 0xB] - ldrb r1, [r6, 0x9] - adds r0, r1 - ldr r1, [r6, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl itemid_get_market_price - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - asrs r4, r0 - str r4, [r5] - ldr r0, _080B4274 - movs r2, 0x92 - lsls r2, 3 - adds r0, r2 - ldr r0, [r0] - adds r1, r4, 0 - bl IsEnoughMoney - lsls r0, 24 - cmp r0, 0 - beq _080B42BA - ldrb r0, [r6, 0xB] - ldrb r1, [r6, 0x9] - adds r0, r1 - ldr r1, [r6, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _080B4278 - bl itemid_copy_name - ldr r4, _080B427C - ldr r1, _080B4280 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080B4284 - ldr r3, _080B4288 - adds r0, r7, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _080B436C - .align 2, 0 -_080B426C: .4byte gUnknown_03000708 -_080B4270: .4byte gUnknown_020386A0 -_080B4274: .4byte gSaveBlock1 -_080B4278: .4byte gStringVar1 -_080B427C: .4byte gStringVar4 -_080B4280: .4byte gOtherText_HowManyYouWant -_080B4284: .4byte sub_80B3EFC -_080B4288: .4byte 0x0000c3e1 -_080B428C: - ldr r5, _080B42C8 - ldr r4, _080B42CC - ldrb r0, [r6, 0xB] - ldrb r1, [r6, 0x9] - adds r0, r1 - ldr r1, [r6, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 5 - adds r0, r4 - ldrh r1, [r0, 0x14] - str r1, [r5] - ldr r0, _080B42D0 - movs r2, 0x92 - lsls r2, 3 - adds r0, r2 - ldr r0, [r0] - bl IsEnoughMoney - lsls r0, 24 - cmp r0, 0 - bne _080B42E0 -_080B42BA: - ldr r1, _080B42D4 - ldr r2, _080B42D8 - ldr r3, _080B42DC - adds r0, r7, 0 - bl DisplayItemMessageOnField - b _080B436C - .align 2, 0 -_080B42C8: .4byte gUnknown_020386A0 -_080B42CC: .4byte gDecorations -_080B42D0: .4byte gSaveBlock1 -_080B42D4: .4byte gOtherText_NotEnoughMoney -_080B42D8: .4byte sub_80B3BD0 -_080B42DC: .4byte 0x0000c3e1 -_080B42E0: - ldr r0, _080B4318 - ldrb r1, [r6, 0xB] - ldrb r2, [r6, 0x9] - adds r1, r2 - ldr r2, [r6, 0x4] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - lsls r1, 5 - adds r2, r4, 0x1 - adds r1, r2 - bl StringCopy - ldr r0, _080B431C - ldr r1, [r5] - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - ldrb r0, [r6, 0xC] - cmp r0, 0x1 - bne _080B4328 - ldr r0, _080B4320 - ldr r1, _080B4324 - bl StringExpandPlaceholders - b _080B4330 - .align 2, 0 -_080B4318: .4byte gStringVar1 -_080B431C: .4byte gStringVar2 -_080B4320: .4byte gStringVar4 -_080B4324: .4byte gOtherText_ThatWillBe2 -_080B4328: - ldr r0, _080B4340 - ldr r1, _080B4344 - bl StringExpandPlaceholders -_080B4330: - ldr r1, _080B4340 - ldr r2, _080B4348 - ldr r3, _080B434C - mov r0, r8 - bl DisplayItemMessageOnField - b _080B436C - .align 2, 0 -_080B4340: .4byte gStringVar4 -_080B4344: .4byte gOtherText_ThatWillBe3 -_080B4348: .4byte sub_80B3D38 -_080B434C: .4byte 0x0000c3e1 -_080B4350: - adds r0, r7, 0 - bl sub_80B43F0 - b _080B436C -_080B4358: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B436C - movs r0, 0x5 - bl PlaySE - mov r0, r8 - bl sub_80B43F0 -_080B436C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B40E8 - - thumb_func_start sub_80B4378 -sub_80B4378: @ 80B4378 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _080B43E4 - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xB - movs r3, 0xC - bl sub_80A3FA0 - bl sub_80B3420 - movs r0, 0x6 - movs r1, 0x7 - bl sub_80B3764 - bl sub_80B37EC - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - bl sub_80B32A4 - ldr r1, _080B43E8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B43EC - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B43E4: .4byte gBG1TilemapBuffer -_080B43E8: .4byte gTasks -_080B43EC: .4byte sub_80B40E8 - thumb_func_end sub_80B4378 - - thumb_func_start sub_80B43F0 -sub_80B43F0: @ 80B43F0 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080B4428 - ldr r0, _080B442C - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080B4430 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B4434 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4428: .4byte gUnknown_0300485C -_080B442C: .4byte sub_80B3050 -_080B4430: .4byte gTasks -_080B4434: .4byte Task_ExitBuyMenu - thumb_func_end sub_80B43F0 - - thumb_func_start Task_ExitBuyMenu -Task_ExitBuyMenu: @ 80B4438 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080B4468 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B4462 - movs r0, 0 - movs r1, 0 - bl RemoveMoneyLabelObject - bl BuyMenuFreeMemory - ldr r0, _080B446C - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_080B4462: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4468: .4byte gPaletteFade -_080B446C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end Task_ExitBuyMenu - - thumb_func_start sub_80B4470 -sub_80B4470: @ 80B4470 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r0, _080B44C8 - mov r12, r0 - ldr r6, _080B44CC - mov r8, r12 - adds r4, r6, 0 - ldr r1, _080B44D0 - mov r9, r1 - lsls r0, r5, 2 - adds r0, r5 - lsls r7, r0, 3 -_080B4492: - lsls r0, r2, 2 - mov r1, r8 - adds r3, r0, r1 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - adds r0, r1 - ldr r1, [r4, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r3] - ldrh r0, [r0] - cmp r1, r0 - bne _080B44DC - ldrh r0, [r3, 0x2] - cmp r0, 0 - beq _080B44DC - adds r2, r0, 0 - mov r4, r9 - adds r1, r7, r4 - movs r4, 0xA - ldrsh r0, [r1, r4] - adds r0, r2, r0 - cmp r0, 0xFF - ble _080B44D4 - movs r0, 0xFF - strh r0, [r3, 0x2] - b _080B451E - .align 2, 0 -_080B44C8: .4byte gUnknown_02038724 -_080B44CC: .4byte gUnknown_03000708 -_080B44D0: .4byte gTasks -_080B44D4: - ldrh r0, [r1, 0xA] - adds r0, r2, r0 - strh r0, [r3, 0x2] - b _080B451E -_080B44DC: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x2 - bls _080B4492 - ldr r3, _080B452C - ldrb r0, [r3] - cmp r0, 0x2 - bhi _080B451E - adds r2, r0, 0 - lsls r2, 2 - add r2, r12 - ldrb r0, [r6, 0xB] - ldrb r1, [r6, 0x9] - adds r0, r1 - ldr r1, [r6, 0x4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrb r1, [r3] - lsls r1, 2 - add r1, r12 - ldr r2, _080B4530 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - strh r0, [r1, 0x2] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] -_080B451E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B452C: .4byte gUnknown_02038730 -_080B4530: .4byte gTasks - thumb_func_end sub_80B4470 - - thumb_func_start ClearItemPurchases -ClearItemPurchases: @ 80B4534 - push {lr} - ldr r0, _080B4548 - movs r1, 0 - strb r1, [r0] - ldr r0, _080B454C - movs r1, 0x3 - bl sub_80A9684 - pop {r0} - bx r0 - .align 2, 0 -_080B4548: .4byte gUnknown_02038730 -_080B454C: .4byte gUnknown_02038724 - thumb_func_end ClearItemPurchases - - thumb_func_start CreatePokemartMenu -CreatePokemartMenu: @ 80B4550 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - bl CreateShopMenu - adds r0, r4, 0 - bl SetShopItemsForSale - bl ClearItemPurchases - ldr r0, _080B4570 - bl SetShopMenuCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4570: .4byte EnableBothScriptContexts - thumb_func_end CreatePokemartMenu - - thumb_func_start CreateDecorationShop1Menu -CreateDecorationShop1Menu: @ 80B4574 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - bl CreateShopMenu - adds r0, r4, 0 - bl SetShopItemsForSale - ldr r0, _080B4590 - bl SetShopMenuCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4590: .4byte EnableBothScriptContexts - thumb_func_end CreateDecorationShop1Menu - - thumb_func_start CreateDecorationShop2Menu -CreateDecorationShop2Menu: @ 80B4594 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2 - bl CreateShopMenu - adds r0, r4, 0 - bl SetShopItemsForSale - ldr r0, _080B45B0 - bl SetShopMenuCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B45B0: .4byte EnableBothScriptContexts - thumb_func_end CreateDecorationShop2Menu - - thumb_func_start sub_80B45B4 -sub_80B45B4: @ 80B45B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r9, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - ldr r2, _080B4648 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0x10] - subs r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r1, 0x12] - subs r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r4, [r1, 0xA] - movs r2, 0xC - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B4678 - movs r2, 0 - lsls r5, 16 - str r5, [sp, 0xC] - lsls r0, r3, 16 - lsls r1, r4, 16 - asrs r0, 16 - str r0, [sp] - asrs r1, 16 - str r1, [sp, 0x4] - lsls r0, r1, 1 - mov r1, r9 - adds r7, r0, r1 -_080B4608: - movs r4, 0 - lsls r2, 16 - mov r8, r2 - asrs r0, r2, 16 - ldr r2, [sp] - adds r6, r2, r0 -_080B4614: - ldr r0, [sp, 0xC] - asrs r1, r0, 16 - lsls r4, 16 - asrs r0, r4, 16 - adds r5, r1, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridGetMetatileIdAt - movs r2, 0 - ldrsh r1, [r7, r2] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - bne _080B465C - ldr r0, [sp, 0x4] - cmp r0, 0x2 - beq _080B464C - ldrh r0, [r7, 0x2] - mov r2, r10 - orrs r2, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt - b _080B465C - .align 2, 0 -_080B4648: .4byte gTasks -_080B464C: - mov r1, r9 - ldrh r0, [r1] - mov r2, r10 - orrs r2, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt -_080B465C: - movs r2, 0x80 - lsls r2, 9 - adds r0, r4, r2 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B4614 - adds r0, r2, 0 - add r0, r8 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B4608 - b _080B4700 -_080B4678: - movs r2, 0 - lsls r5, 16 - str r5, [sp, 0xC] - lsls r0, r3, 16 - lsls r1, r4, 16 - asrs r0, 16 - str r0, [sp, 0x8] - asrs r7, r1, 16 -_080B4688: - movs r4, 0 - lsls r2, 16 - mov r8, r2 - asrs r0, r2, 16 - ldr r1, [sp, 0x8] - adds r6, r1, r0 -_080B4694: - ldr r2, [sp, 0xC] - asrs r1, r2, 16 - lsls r4, 16 - asrs r0, r4, 16 - adds r5, r1, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x2 - subs r1, r7 - lsls r1, 1 - add r1, r9 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - bne _080B46E6 - cmp r7, 0x2 - beq _080B46D6 - movs r0, 0x1 - subs r0, r7 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - mov r2, r10 - orrs r2, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt - b _080B46E6 -_080B46D6: - mov r1, r9 - ldrh r0, [r1, 0x4] - mov r2, r10 - orrs r2, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt -_080B46E6: - movs r2, 0x80 - lsls r2, 9 - adds r0, r4, r2 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B4694 - adds r0, r2, 0 - add r0, r8 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B4688 -_080B4700: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B45B4 - - thumb_func_start sub_80B4710 -sub_80B4710: @ 80B4710 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B4738 - adds r4, r0, r1 - movs r0, 0x1 - strh r0, [r4, 0x6] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bhi _080B47AA - lsls r0, 2 - ldr r1, _080B473C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4738: .4byte gUnknown_03004B28 -_080B473C: .4byte _080B4740 - .align 2, 0 -_080B4740: - .4byte _080B475C - .4byte _080B4764 - .4byte _080B476C - .4byte _080B4774 - .4byte _080B477C - .4byte _080B4790 - .4byte _080B47A0 -_080B475C: - ldr r1, _080B4760 - b _080B4792 - .align 2, 0 -_080B4760: .4byte gUnknown_083CC714 -_080B4764: - ldr r1, _080B4768 - b _080B4792 - .align 2, 0 -_080B4768: .4byte gUnknown_083CC71A -_080B476C: - ldr r1, _080B4770 - b _080B477E - .align 2, 0 -_080B4770: .4byte gUnknown_083CC720 -_080B4774: - ldr r1, _080B4778 - b _080B4792 - .align 2, 0 -_080B4778: .4byte gUnknown_083CC726 -_080B477C: - ldr r1, _080B478C -_080B477E: - movs r2, 0xC0 - lsls r2, 4 - adds r0, r3, 0 - bl sub_80B45B4 - b _080B47AA - .align 2, 0 -_080B478C: .4byte gUnknown_083CC72C -_080B4790: - ldr r1, _080B479C -_080B4792: - adds r0, r3, 0 - movs r2, 0 - bl sub_80B45B4 - b _080B47AA - .align 2, 0 -_080B479C: .4byte gUnknown_083CC732 -_080B47A0: - ldr r1, _080B47D4 - adds r0, r3, 0 - movs r2, 0 - bl sub_80B45B4 -_080B47AA: - ldrh r0, [r4] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r4] - adds r5, r0, 0 - cmp r5, 0 - bne _080B47CE - bl DrawWholeMapView - movs r1, 0x2 - ldrsh r0, [r4, r1] - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - strh r0, [r4, 0x2] - strh r5, [r4, 0x6] -_080B47CE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B47D4: .4byte gUnknown_083CC738 - thumb_func_end sub_80B4710 - - thumb_func_start sub_80B47D8 -sub_80B47D8: @ 80B47D8 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r6, _080B481C - adds r0, r6, 0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B4820 - adds r7, r0, r1 - adds r0, r7, 0 - adds r0, 0x8 - adds r1, r7, 0 - adds r1, 0xA - bl PlayerGetDestCoords - movs r0, 0 - strh r0, [r7] - strh r0, [r7, 0x2] - strh r5, [r7, 0x4] - adds r0, r4, 0 - bl _call_via_r6 - adds r0, r4, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B481C: .4byte sub_80B4710 -_080B4820: .4byte gUnknown_03004B28 - thumb_func_end sub_80B47D8 - - thumb_func_start sub_80B4824 -sub_80B4824: @ 80B4824 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80B47D8 - ldr r1, _080B4838 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B4838: .4byte gUnknown_02038731 - thumb_func_end sub_80B4824 - - thumb_func_start sub_80B483C -sub_80B483C: @ 80B483C - push {lr} - ldr r0, _080B484C - ldrb r0, [r0] - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_080B484C: .4byte gUnknown_02038731 - thumb_func_end sub_80B483C - - thumb_func_start sub_80B4850 -sub_80B4850: @ 80B4850 - push {lr} - ldr r2, _080B4874 - ldr r0, _080B4878 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B487C - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0x2 - bne _080B487C - movs r0, 0 - b _080B487E - .align 2, 0 -_080B4874: .4byte gTasks -_080B4878: .4byte gUnknown_02038731 -_080B487C: - movs r0, 0x1 -_080B487E: - pop {r1} - bx r1 - thumb_func_end sub_80B4850 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s new file mode 100644 index 000000000..354dd4449 --- /dev/null +++ b/asm/rom_8094928.s @@ -0,0 +1,65205 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start unref_sub_8094928 +unref_sub_8094928: @ 8094928 + push {lr} + ldr r1, _08094938 + ldr r2, _0809493C + bl memcpy + pop {r0} + bx r0 + .align 2, 0 +_08094938: .4byte gPokemonStorage +_0809493C: .4byte 0x000083d0 + thumb_func_end unref_sub_8094928 + + thumb_func_start unref_sub_8094940 +unref_sub_8094940: @ 8094940 + push {lr} + adds r1, r0, 0 + ldr r0, _08094950 + ldr r2, _08094954 + bl memcpy + pop {r0} + bx r0 + .align 2, 0 +_08094950: .4byte gPokemonStorage +_08094954: .4byte 0x000083d0 + thumb_func_end unref_sub_8094940 + + thumb_func_start sub_8094958 +sub_8094958: @ 8094958 + push {r4,lr} + ldr r4, _08094974 + bl sub_803FBBC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8094998 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08094974: .4byte gUnknown_02038470 + thumb_func_end sub_8094958 + + thumb_func_start sub_8094978 +sub_8094978: @ 8094978 + push {lr} + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r2, 1 + adds r0, r2 + ldr r3, _08094994 + adds r0, r3 + bl sub_8094A74 + pop {r0} + bx r0 + .align 2, 0 +_08094994: .4byte 0x0201606c + thumb_func_end sub_8094978 + + thumb_func_start sub_8094998 +sub_8094998: @ 8094998 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + bl sub_806B528 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080949CE + cmp r4, 0 + beq _080949C0 + movs r0, 0x30 + strb r0, [r6] + movs r0, 0x45 + strb r0, [r6, 0x1] + movs r0, 0x12 + strb r0, [r6, 0x2] + b _08094A68 +_080949C0: + movs r0, 0x3 + strb r0, [r6] + movs r0, 0x12 + strb r0, [r6, 0x1] + movs r0, 0x45 + strb r0, [r6, 0x2] + b _08094A68 +_080949CE: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08094A0C + movs r5, 0x1 + movs r0, 0 + bl battle_get_side_with_given_state + mov r2, sp + ldr r1, _08094A08 + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r0, [r0] + strb r0, [r2] + movs r4, 0 + mov r1, sp +_080949F2: + ldrb r0, [r1] + cmp r4, r0 + beq _08094A00 + mov r2, sp + adds r0, r2, r5 + strb r4, [r0] + adds r5, 0x1 +_08094A00: + adds r4, 0x1 + cmp r4, 0x5 + ble _080949F2 + b _08094A50 + .align 2, 0 +_08094A08: .4byte gUnknown_02024A6A +_08094A0C: + movs r5, 0x2 + movs r0, 0 + bl battle_get_side_with_given_state + mov r1, sp + ldr r4, _08094A70 + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1] + movs r0, 0x2 + bl battle_get_side_with_given_state + mov r1, sp + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1, 0x1] + movs r4, 0 +_08094A36: + ldrb r0, [r1] + cmp r4, r0 + beq _08094A4A + ldrb r0, [r1, 0x1] + cmp r4, r0 + beq _08094A4A + mov r2, sp + adds r0, r2, r5 + strb r4, [r0] + adds r5, 0x1 +_08094A4A: + adds r4, 0x1 + cmp r4, 0x5 + ble _08094A36 +_08094A50: + movs r4, 0 + mov r3, sp +_08094A54: + adds r0, r6, r4 + ldrb r1, [r3] + lsls r1, 4 + ldrb r2, [r3, 0x1] + orrs r1, r2 + strb r1, [r0] + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _08094A54 +_08094A68: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08094A70: .4byte gUnknown_02024A6A + thumb_func_end sub_8094998 + + thumb_func_start sub_8094A74 +sub_8094A74: @ 8094A74 + push {r4-r7,lr} + sub sp, 0x8 + adds r5, r0, 0 + adds r0, r2, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08094A9C + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + b _08094AA8 +_08094A9C: + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x3 +_08094AA8: + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_806B528 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094ADC + cmp r7, 0 + beq _08094ACE + movs r0, 0x30 + strb r0, [r5] + movs r0, 0x45 + strb r0, [r5, 0x1] + movs r0, 0x12 + strb r0, [r5, 0x2] + b _08094B5E +_08094ACE: + movs r0, 0x3 + strb r0, [r5] + movs r0, 0x12 + strb r0, [r5, 0x1] + movs r0, 0x45 + strb r0, [r5, 0x2] + b _08094B5E +_08094ADC: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08094B14 + movs r3, 0x1 + mov r2, sp + ldr r1, _08094B10 + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + strb r0, [r2] + movs r4, 0 + mov r1, sp +_08094AF8: + ldrb r0, [r1] + cmp r4, r0 + beq _08094B06 + mov r2, sp + adds r0, r2, r3 + strb r4, [r0] + adds r3, 0x1 +_08094B06: + adds r4, 0x1 + cmp r4, 0x5 + ble _08094AF8 + b _08094B46 + .align 2, 0 +_08094B10: .4byte gUnknown_02024A6A +_08094B14: + movs r3, 0x2 + mov r1, sp + ldr r2, _08094B68 + lsls r0, r4, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + lsls r0, r6, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x1] + movs r4, 0 +_08094B2C: + ldrb r0, [r1] + cmp r4, r0 + beq _08094B40 + ldrb r0, [r1, 0x1] + cmp r4, r0 + beq _08094B40 + mov r2, sp + adds r0, r2, r3 + strb r4, [r0] + adds r3, 0x1 +_08094B40: + adds r4, 0x1 + cmp r4, 0x5 + ble _08094B2C +_08094B46: + movs r4, 0 + mov r3, sp +_08094B4A: + adds r0, r5, r4 + ldrb r1, [r3] + lsls r1, 4 + ldrb r2, [r3, 0x1] + orrs r1, r2 + strb r1, [r0] + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _08094B4A +_08094B5E: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08094B68: .4byte gUnknown_02024A6A + thumb_func_end sub_8094A74 + + thumb_func_start sub_8094B6C +sub_8094B6C: @ 8094B6C + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + movs r7, 0 + bl sub_806B528 + lsls r0, 24 + cmp r0, 0 + beq _08094C16 + lsls r0, r4, 1 + adds r0, r4 + ldr r1, _08094BCC + adds r4, r0, r1 + movs r2, 0 + add r6, sp + mov r12, r6 + movs r6, 0xF + mov r3, sp +_08094B9A: + adds r1, r4, r2 + ldrb r0, [r1] + lsrs r0, 4 + strb r0, [r3] + adds r3, 0x1 + ldrb r1, [r1] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r3] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x2 + ble _08094B9A + mov r0, r12 + ldrb r3, [r0] + movs r2, 0 + mov r0, sp + ldrb r0, [r0] + cmp r0, r5 + bne _08094BD0 + mov r0, sp + ldrb r7, [r0] + strb r3, [r0] + b _08094BE4 + .align 2, 0 +_08094BCC: .4byte 0x0201606c +_08094BD0: + adds r2, 0x1 + cmp r2, 0x5 + bgt _08094BE4 + mov r0, sp + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, r5 + bne _08094BD0 + adds r7, r0, 0 + strb r3, [r1] +_08094BE4: + cmp r2, 0x6 + beq _08094C16 + mov r0, r12 + strb r7, [r0] + mov r0, sp + ldrb r0, [r0] + lsls r0, 4 + mov r1, sp + ldrb r1, [r1, 0x1] + orrs r0, r1 + strb r0, [r4] + mov r0, sp + ldrb r0, [r0, 0x2] + lsls r0, 4 + mov r1, sp + ldrb r1, [r1, 0x3] + orrs r0, r1 + strb r0, [r4, 0x1] + mov r0, sp + ldrb r0, [r0, 0x4] + lsls r0, 4 + mov r1, sp + ldrb r1, [r1, 0x5] + orrs r0, r1 + strb r0, [r4, 0x2] +_08094C16: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8094B6C + + thumb_func_start sub_8094C20 +sub_8094C20: @ 8094C20 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0x1 + ands r1, r2 + lsrs r2, r0, 25 + cmp r1, 0 + beq _08094C40 + ldr r0, _08094C3C + adds r0, r2, r0 + ldrb r0, [r0] + movs r1, 0xF + ands r1, r0 + b _08094C48 + .align 2, 0 +_08094C3C: .4byte gUnknown_02038470 +_08094C40: + ldr r0, _08094C50 + adds r0, r2, r0 + ldrb r0, [r0] + lsrs r1, r0, 4 +_08094C48: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_08094C50: .4byte gUnknown_02038470 + thumb_func_end sub_8094C20 + + thumb_func_start sub_8094C54 +sub_8094C54: @ 8094C54 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + movs r1, 0x1 + ands r1, r3 + lsrs r3, r0, 25 + cmp r1, 0 + beq _08094C7C + ldr r0, _08094C78 + adds r0, r3, r0 + ldrb r2, [r0] + movs r1, 0xF0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + b _08094C8C + .align 2, 0 +_08094C78: .4byte gUnknown_02038470 +_08094C7C: + ldr r2, _08094C94 + adds r2, r3, r2 + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + lsls r1, r4, 4 + orrs r0, r1 + strb r0, [r2] +_08094C8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08094C94: .4byte gUnknown_02038470 + thumb_func_end sub_8094C54 + + thumb_func_start sub_8094C98 +sub_8094C98: @ 8094C98 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + adds r0, r5, 0 + bl sub_8094C20 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_8094C20 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_8094C54 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8094C54 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8094C98 + + thumb_func_start pokemon_order_func +pokemon_order_func: @ 8094CD4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + movs r2, 0 + ldr r5, _08094CFC +_08094CE0: + adds r0, r3, r5 + ldrb r1, [r0] + lsrs r0, r1, 4 + cmp r0, r4 + beq _08094CF8 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0xF + ands r0, r1 + cmp r0, r4 + bne _08094D00 +_08094CF8: + adds r0, r2, 0 + b _08094D12 + .align 2, 0 +_08094CFC: .4byte gUnknown_02038470 +_08094D00: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _08094CE0 + movs r0, 0 +_08094D12: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end pokemon_order_func + + thumb_func_start pokemon_change_order +pokemon_change_order: @ 8094D18 + push {r4,r5,lr} + ldr r0, _08094D58 + ldr r1, _08094D5C + movs r2, 0x96 + lsls r2, 2 + bl memcpy + movs r4, 0 + movs r5, 0x64 +_08094D2A: + adds r0, r4, 0 + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + muls r0, r5 + ldr r1, _08094D5C + adds r0, r1 + adds r1, r4, 0 + muls r1, r5 + ldr r2, _08094D58 + adds r1, r2 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08094D2A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094D58: .4byte 0x0201b000 +_08094D5C: .4byte gPlayerParty + thumb_func_end pokemon_change_order + + thumb_func_start sub_8094D60 +sub_8094D60: @ 8094D60 + push {r4,r5,lr} + ldr r4, _08094DA8 + add sp, r4 + ldr r1, _08094DAC + movs r2, 0x96 + lsls r2, 2 + mov r0, sp + bl memcpy + movs r4, 0 + movs r5, 0x64 +_08094D76: + adds r0, r4, 0 + bl sub_8094C20 + lsls r0, 24 + lsrs r0, 24 + muls r0, r5 + ldr r1, _08094DAC + adds r0, r1 + adds r1, r4, 0 + muls r1, r5 + add r1, sp + movs r2, 0x64 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08094D76 + movs r3, 0x96 + lsls r3, 2 + add sp, r3 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094DA8: .4byte 0xfffffda8 +_08094DAC: .4byte gPlayerParty + thumb_func_end sub_8094D60 + + thumb_func_start unref_sub_8094DB0 +unref_sub_8094DB0: @ 8094DB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0x1 + movs r7, 0x64 + ldr r0, _08094E08 + mov r8, r0 +_08094DBE: + adds r0, r6, 0 + bl sub_8094C20 + lsls r0, 24 + lsrs r0, 24 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08094E0C + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08094E0C + movs r0, 0 + bl sub_8094C20 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + adds r1, r6, 0 + bl sub_8094C98 + adds r0, r4, 0 + muls r0, r7 + add r0, r8 + adds r1, r5, 0 + bl sub_806E6F0 + b _08094E16 + .align 2, 0 +_08094E08: .4byte gPlayerParty +_08094E0C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x5 + bls _08094DBE +_08094E16: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_8094DB0 + + thumb_func_start sub_8094E20 +sub_8094E20: @ 8094E20 + push {lr} + ldr r3, _08094E44 + ldrb r1, [r3, 0x8] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r3, 0x8] + ldr r1, _08094E48 + strb r0, [r1] + bl nullsub_14 + bl pokemon_change_order + movs r0, 0x1 + movs r1, 0xFF + bl sub_806AFAC + pop {r0} + bx r0 + .align 2, 0 +_08094E44: .4byte gPaletteFade +_08094E48: .4byte gUnknown_02038473 + thumb_func_end sub_8094E20 + + thumb_func_start sub_8094E4C +sub_8094E4C: @ 8094E4C + push {lr} + movs r0, 0x3 + bl sub_8094E20 + pop {r0} + bx r0 + thumb_func_end sub_8094E4C + + thumb_func_start sub_8094E58 +sub_8094E58: @ 8094E58 + push {r4,r5,lr} + ldr r1, _08094E78 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0xA + bls _08094E6E + b _08095048 +_08094E6E: + lsls r0, 2 + ldr r1, _08094E7C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094E78: .4byte 0x0201b000 +_08094E7C: .4byte _08094E80 + .align 2, 0 +_08094E80: + .4byte _08094EAC + .4byte _08094F28 + .4byte _08094F3C + .4byte _08094F4A + .4byte _08094F6C + .4byte _08094F80 + .4byte _08094F94 + .4byte _08094FA8 + .4byte _08094FBC + .4byte _08094FD0 + .4byte _08095000 +_08094EAC: + bl sub_806B528 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094EDC + ldr r1, _08094ED4 + ldr r0, _08094ED8 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x6 + bne _08094EEC + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094ED4: .4byte 0x0201b000 +_08094ED8: .4byte 0x00000266 +_08094EDC: + ldr r1, _08094F10 + ldr r0, _08094F14 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x5 + bgt _08094F1C +_08094EEC: + movs r3, 0x98 + lsls r3, 2 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r1, r2, 24 + lsrs r1, 24 + movs r2, 0 + ldrsh r3, [r4, r2] + movs r2, 0x64 + muls r2, r3 + ldr r3, _08094F18 + adds r2, r3 + bl sub_806D90C + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _08095048 + .align 2, 0 +_08094F10: .4byte 0x0201b000 +_08094F14: .4byte 0x00000266 +_08094F18: .4byte gPlayerParty +_08094F1C: + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC +_08094F28: + bl sub_806DA98 + ldr r1, _08094F38 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F38: .4byte 0x0201b000 +_08094F3C: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + b _08094FE6 +_08094F4A: + movs r3, 0x98 + lsls r3, 2 + adds r0, r4, r3 + ldrb r0, [r0] + ldr r1, _08094F68 + adds r5, r4, r1 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08094FE2 + b _08094FF8 + .align 2, 0 +_08094F68: .4byte 0x00000266 +_08094F6C: + bl sub_806E334 + ldr r1, _08094F7C + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094F7C: .4byte 0x0201b000 +_08094F80: + bl sub_806E0C4 + ldr r1, _08094F90 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F90: .4byte 0x0201b000 +_08094F94: + bl sub_806E53C + ldr r1, _08094FA4 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 + b _08094FEC + .align 2, 0 +_08094FA4: .4byte 0x0201b000 +_08094FA8: + bl nullsub_13 + ldr r1, _08094FB8 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094FB8: .4byte 0x0201b000 +_08094FBC: + bl sub_806E6C8 + ldr r1, _08094FCC + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094FCC: .4byte 0x0201b000 +_08094FD0: + ldr r1, _08094FF4 + adds r5, r4, r1 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094FF8 +_08094FE2: + movs r0, 0 + strh r0, [r5] +_08094FE6: + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 +_08094FEC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08095048 + .align 2, 0 +_08094FF4: .4byte 0x00000266 +_08094FF8: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _08095048 +_08095000: + ldr r0, _08095024 + ldrb r4, [r0] + cmp r4, 0x3 + bne _0809503C + ldr r0, _08095028 + ldrh r0, [r0] + bl sub_8070E48 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095034 + ldr r0, _0809502C + ldr r3, _08095030 + adds r0, r3 + movs r1, 0xFF + strb r1, [r0] + b _0809503C + .align 2, 0 +_08095024: .4byte gUnknown_02038473 +_08095028: .4byte word_203855E +_0809502C: .4byte 0x0201b000 +_08095030: .4byte 0x00000259 +_08095034: + ldr r0, _08095040 + ldr r1, _08095044 + adds r0, r1 + strb r4, [r0] +_0809503C: + movs r0, 0x1 + b _0809504A + .align 2, 0 +_08095040: .4byte 0x0201b000 +_08095044: .4byte 0x00000259 +_08095048: + movs r0, 0 +_0809504A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8094E58 + + thumb_func_start sub_8095050 +sub_8095050: @ 8095050 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809508C + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r5, r0, 0 + cmp r5, 0 + bne _080950C8 + ldr r0, _08095090 + ldrb r4, [r0] + cmp r4, 0x1 + bne _0809509C + ldr r3, _08095094 + ldr r2, _08095098 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + b _080950DE + .align 2, 0 +_0809508C: .4byte gPlayerParty +_08095090: .4byte gUnknown_02038473 +_08095094: .4byte gTasks +_08095098: .4byte 0x0201b000 +_0809509C: + ldr r3, _080950C0 + ldr r2, _080950C4 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x12] + b _080950EC + .align 2, 0 +_080950C0: .4byte gTasks +_080950C4: .4byte 0x0201b000 +_080950C8: + ldr r3, _08095108 + ldr r2, _0809510C + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r4, 0x2 +_080950DE: + strh r4, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r4, [r0, 0x12] +_080950EC: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x10] + ldr r1, _08095110 + ldr r2, _08095114 + movs r3, 0 + bl sub_806E750 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08095108: .4byte gTasks +_0809510C: .4byte 0x0201b000 +_08095110: .4byte gUnknown_083B5FF4 +_08095114: .4byte gUnknown_083B5FCC + thumb_func_end sub_8095050 + + thumb_func_start sub_8095118 +sub_8095118: @ 8095118 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095150 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809512C + b _08095268 +_0809512C: + ldr r0, _08095154 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08095164 + ldr r5, _08095158 + ldrh r0, [r5] + bl sub_8070E48 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095164 + ldr r0, _0809515C + ldrh r1, [r5] + ldr r2, _08095160 + ldr r3, [r0] + b _080951AA + .align 2, 0 +_08095150: .4byte gPaletteFade +_08095154: .4byte gUnknown_02038473 +_08095158: .4byte word_203855E +_0809515C: .4byte gUnknown_03004AE4 +_08095160: .4byte sub_80952E4 +_08095164: + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _08095178 + cmp r0, 0x2 + beq _08095214 + b _08095268 +_08095178: + ldr r0, _080951B4 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080951C8 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080951B8 + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809521C + bl sub_806D5A4 + ldr r3, _080951BC + ldr r0, _080951C0 + ldrh r1, [r0] + ldr r2, _080951C4 + ldr r3, [r3] +_080951AA: + adds r0, r4, 0 + bl _call_via_r3 + b _08095268 + .align 2, 0 +_080951B4: .4byte gUnknown_02038473 +_080951B8: .4byte gPlayerParty +_080951BC: .4byte gUnknown_03004AE4 +_080951C0: .4byte word_203855E +_080951C4: .4byte sub_80952E4 +_080951C8: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _08095204 + adds r0, r1 + ldr r1, _08095208 + bl GetMonNickname + adds r0, r4, 0 + bl sub_806CA38 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095050 + ldr r1, _0809520C + ldr r2, _08095210 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + b _08095268 + .align 2, 0 +_08095204: .4byte gPlayerParty +_08095208: .4byte gStringVar1 +_0809520C: .4byte sub_8095408 +_08095210: .4byte sub_8095118 +_08095214: + ldr r5, _08095224 + ldrb r0, [r5] + cmp r0, 0x1 + bne _08095228 +_0809521C: + movs r0, 0x20 + bl PlaySE + b _08095268 + .align 2, 0 +_08095224: .4byte gUnknown_02038473 +_08095228: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r5] + cmp r0, 0x3 + bne _08095254 + ldr r1, _08095248 + movs r0, 0 + strb r0, [r1] + ldr r1, _0809524C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095250 + b _08095266 + .align 2, 0 +_08095248: .4byte gUnknown_0202E8F4 +_0809524C: .4byte gTasks +_08095250: .4byte sub_80952E4 +_08095254: + ldr r1, _08095270 + movs r0, 0 + strb r0, [r1] + ldr r1, _08095274 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095278 +_08095266: + str r1, [r0] +_08095268: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08095270: .4byte gUnknown_0202E8F4 +_08095274: .4byte gTasks +_08095278: .4byte sub_809527C + thumb_func_end sub_8095118 + + thumb_func_start sub_809527C +sub_809527C: @ 809527C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080952AC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080952B0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952AC: .4byte gTasks +_080952B0: .4byte sub_80952B4 + thumb_func_end sub_809527C + + thumb_func_start sub_80952B4 +sub_80952B4: @ 80952B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952DC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080952D6 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080952E0 + bl SetMainCallback2 +_080952D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952DC: .4byte gPaletteFade +_080952E0: .4byte sub_802E414 + thumb_func_end sub_80952B4 + + thumb_func_start sub_80952E4 +sub_80952E4: @ 80952E4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952FC + ldrb r1, [r0] + cmp r1, 0 + beq _08095300 + adds r0, r4, 0 + bl sub_809527C + b _0809531E + .align 2, 0 +_080952FC: .4byte gUnknown_0202E8F4 +_08095300: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08095328 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809532C + str r1, [r0] +_0809531E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095328: .4byte gTasks +_0809532C: .4byte sub_8095330 + thumb_func_end sub_80952E4 + + thumb_func_start sub_8095330 +sub_8095330: @ 8095330 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095358 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095350 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + bl sub_80A6DCC +_08095350: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095358: .4byte gPaletteFade + thumb_func_end sub_8095330 + + thumb_func_start sub_809535C +sub_809535C: @ 809535C + push {lr} + ldr r2, _08095380 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _08095384 + movs r0, 0x1 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _08095388 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08095380: .4byte gPaletteFade +_08095384: .4byte sub_8095118 +_08095388: .4byte sub_809538C + thumb_func_end sub_809535C + + thumb_func_start sub_809538C +sub_809538C: @ 809538C + push {r4,r5,lr} + ldr r4, _080953D8 + ldr r5, _080953DC +_08095392: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080953F4 + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080953E0 + adds r0, r1 + ldr r1, _080953E4 + bl GetMonNickname + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_8095050 + ldrb r0, [r4] + ldr r1, _080953E8 + ldr r2, _080953EC + bl SetTaskFuncWithFollowupFunc + ldr r0, _080953F0 + bl SetMainCallback2 + b _08095400 + .align 2, 0 +_080953D8: .4byte 0x0201b260 +_080953DC: .4byte gUnknown_020384F0 +_080953E0: .4byte gPlayerParty +_080953E4: .4byte gStringVar1 +_080953E8: .4byte sub_8095408 +_080953EC: .4byte sub_8095118 +_080953F0: .4byte sub_806AEDC +_080953F4: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095392 +_08095400: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_809538C + + thumb_func_start sub_8095408 +sub_8095408: @ 8095408 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, r7, 0 + ldr r0, _0809543C + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080954B8 + ldr r2, _08095440 + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095444 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080954B8 + .align 2, 0 +_0809543C: .4byte gPaletteFade +_08095440: .4byte gMain +_08095444: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0809545A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080954B8 +_0809545A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080954A4 + movs r0, 0x5 + bl PlaySE + ldr r1, _08095498 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0x10] + ldr r5, _0809549C + ldr r6, _080954A0 + bl GetMenuCursorPos + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r7, 0 + bl _call_via_r1 + b _080954B8 + .align 2, 0 +_08095498: .4byte gTasks +_0809549C: .4byte gUnknown_083B5FF4 +_080954A0: .4byte gUnknown_083B5FCC +_080954A4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080954B8 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80958C4 +_080954B8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095408 + + thumb_func_start sub_80954C0 +sub_80954C0: @ 80954C0 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080954D8 + ldrb r0, [r0] + cmp r0, 0 + bne _080954D4 + adds r0, r1, 0 + bl sub_80958C4 +_080954D4: + pop {r0} + bx r0 + .align 2, 0 +_080954D8: .4byte gUnknown_0202E8F6 + thumb_func_end sub_80954C0 + + thumb_func_start sub_80954DC +sub_80954DC: @ 80954DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0809552C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095522 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _08095530 + ldr r1, _08095534 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08095538 + ldr r1, _0809553C + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08095540 + movs r1, 0x4 + str r1, [sp] + adds r1, r5, 0 + bl sub_809D8BC +_08095522: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809552C: .4byte gPaletteFade +_08095530: .4byte 0x0201b000 +_08095534: .4byte 0x00000262 +_08095538: .4byte gPlayerParty +_0809553C: .4byte gPlayerPartyCount +_08095540: .4byte sub_809535C + thumb_func_end sub_80954DC + + thumb_func_start sub_8095544 +sub_8095544: @ 8095544 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0809557C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095580 + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809557C: .4byte gTasks +_08095580: .4byte sub_80954DC + thumb_func_end sub_8095544 + + thumb_func_start sub_8095584 +sub_8095584: @ 8095584 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080955F8 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x10] + ldr r1, _080955FC + bl sub_806E7D0 + adds r0, r6, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_806B528 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095610 + cmp r5, 0x1 + beq _080955C6 + cmp r5, 0x4 + beq _080955C6 + cmp r5, 0x5 + bne _08095610 +_080955C6: + bl sub_806D5A4 + ldr r4, _08095600 + bl sub_8040D08 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r4, _08095604 + ldr r1, _08095608 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _080955F8 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809560C + b _0809589A + .align 2, 0 +_080955F8: .4byte gTasks +_080955FC: .4byte gUnknown_083B5FF4 +_08095600: .4byte gStringVar1 +_08095604: .4byte gStringVar4 +_08095608: .4byte gOtherText_CantSwitchPokeWithYours +_0809560C: .4byte sub_80954C0 +_08095610: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095654 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _0809566C + bl sub_806D5A4 + ldr r1, _08095658 + adds r0, r4, 0 + bl GetMonNickname + ldr r4, _0809565C + ldr r1, _08095660 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095664 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095668 + b _0809589A + .align 2, 0 +_08095654: .4byte gPlayerParty +_08095658: .4byte gStringVar1 +_0809565C: .4byte gStringVar4 +_08095660: .4byte gOtherText_NoEnergyLeft +_08095664: .4byte gTasks +_08095668: .4byte sub_80954C0 +_0809566C: + movs r4, 0 + ldr r0, _08095678 + lsls r1, r6, 2 + mov r8, r1 + b _080956A8 + .align 2, 0 +_08095678: .4byte gUnknown_02024A68 +_0809567C: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080956A0 + adds r0, r5, 0 + bl sub_8094C20 + lsls r0, 24 + ldr r2, _080956EC + lsls r1, r4, 1 + adds r1, r2 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + bne _080956A0 + b _08095808 +_080956A0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080956F0 +_080956A8: + ldrb r0, [r0] + cmp r4, r0 + bcc _0809567C + movs r2, 0x64 + mov r9, r2 + mov r0, r9 + muls r0, r5 + ldr r1, _080956F4 + mov r10, r1 + adds r7, r0, r1 + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _08095708 + bl sub_806D5A4 + ldr r4, _080956F8 + ldr r1, _080956FC + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095700 + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095704 + b _0809589A + .align 2, 0 +_080956EC: .4byte gUnknown_02024A6A +_080956F0: .4byte gUnknown_02024A68 +_080956F4: .4byte gPlayerParty +_080956F8: .4byte gStringVar4 +_080956FC: .4byte gOtherText_EGGCantBattle +_08095700: .4byte gTasks +_08095704: .4byte sub_80954C0 +_08095708: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _0809574C + ldr r2, _08095750 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _08095768 + bl sub_806D5A4 + ldr r1, _08095754 + adds r0, r7, 0 + bl GetMonNickname + ldr r4, _08095758 + ldr r1, _0809575C + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095760 + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095764 + b _0809589A + .align 2, 0 +_0809574C: .4byte 0x02000000 +_08095750: .4byte 0x0001609d +_08095754: .4byte gStringVar1 +_08095758: .4byte gStringVar4 +_0809575C: .4byte gOtherText_AlreadySelected +_08095760: .4byte gTasks +_08095764: .4byte sub_80954C0 +_08095768: + ldr r0, _08095790 + ldrb r0, [r0] + cmp r0, 0x4 + bne _080957A0 + bl sub_806D5A4 + bl sub_8040B8C + ldr r0, _08095794 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095798 + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809579C + b _0809589A + .align 2, 0 +_08095790: .4byte gUnknown_02038473 +_08095794: .4byte gStringVar4 +_08095798: .4byte gTasks +_0809579C: .4byte sub_80954C0 +_080957A0: + cmp r0, 0x2 + bne _08095854 + ldr r0, _080957EC + ldrb r4, [r0] + bl sub_806D5A4 + ldr r0, _080957F0 + lsls r4, 1 + adds r4, r0 + ldrb r0, [r4] + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r10 + ldr r1, _080957F4 + bl GetMonNickname + ldr r4, _080957F8 + ldr r1, _080957FC + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095800 + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095804 + b _0809589A + .align 2, 0 +_080957EC: .4byte gUnknown_02024E6C +_080957F0: .4byte gUnknown_02024A6A +_080957F4: .4byte gStringVar1 +_080957F8: .4byte gStringVar4 +_080957FC: .4byte gOtherText_CantBeSwitched +_08095800: .4byte gTasks +_08095804: .4byte sub_80954C0 +_08095808: + bl sub_806D5A4 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809583C + adds r0, r1 + ldr r1, _08095840 + bl GetMonNickname + ldr r4, _08095844 + ldr r1, _08095848 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _0809584C + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095850 + b _0809589A + .align 2, 0 +_0809583C: .4byte gPlayerParty +_08095840: .4byte gStringVar1 +_08095844: .4byte gStringVar4 +_08095848: .4byte gOtherText_AlreadyBattle +_0809584C: .4byte gTasks +_08095850: .4byte sub_80954C0 +_08095854: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _080958AC + strb r0, [r1] + ldr r1, _080958B0 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080958B4 + ldr r0, _080958B8 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8094C98 + mov r0, r9 + muls r0, r4 + add r0, r10 + adds r1, r7, 0 + bl sub_806E6F0 + ldr r1, _080958BC + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080958C0 +_0809589A: + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080958AC: .4byte gUnknown_0202E8F5 +_080958B0: .4byte gUnknown_0202E8F4 +_080958B4: .4byte gUnknown_02024A6A +_080958B8: .4byte gUnknown_02024E6C +_080958BC: .4byte gTasks +_080958C0: .4byte sub_809527C + thumb_func_end sub_8095584 + + thumb_func_start sub_80958C4 +sub_80958C4: @ 80958C4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8072DEC + ldr r0, _080958FC + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x10] + ldr r1, _08095900 + bl sub_806E7D0 + ldrh r0, [r4, 0x12] + strh r0, [r4, 0x10] + movs r0, 0 + movs r1, 0 + bl sub_806D538 + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080958FC: .4byte gTasks +_08095900: .4byte gUnknown_083B5FF4 + thumb_func_end sub_80958C4 + + thumb_func_start sub_8095904 +sub_8095904: @ 8095904 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + str r0, [sp] + adds r7, r1, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x3C] + lsls r4, 24 + lsrs r4, 24 + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x4] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldr r0, [sp] + bl StringLength + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r4, 0 + bne _08095988 + movs r5, 0 + cmp r5, r8 + bcs _08095A2E +_0809593E: + ldr r1, [sp] + adds r0, r1, r5 + ldrb r2, [r0] + ldr r0, _08095980 + ands r0, r2 + lsls r0, 6 + movs r1, 0xF + ands r2, r1 + lsls r2, 5 + adds r0, r2 + ldr r1, _08095984 + adds r4, r0, r1 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x10 + bl CpuSet + movs r2, 0x80 + lsls r2, 2 + adds r0, r4, r2 + ldr r3, [sp, 0x4] + adds r1, r7, r3 + movs r2, 0x10 + bl CpuSet + adds r7, 0x20 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _0809593E + b _08095A2E + .align 2, 0 +_08095980: .4byte 0x0000fff0 +_08095984: .4byte gFont3LatinGlyphs +_08095988: + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x8] + lsls r0, r1, 28 + lsrs r0, 24 + str r0, [sp, 0xC] + mov r2, r8 + lsls r0, r2, 21 + movs r1, 0 + lsrs r0, 1 + str r0, [sp, 0x10] +_0809599E: + movs r5, 0 + ldr r3, [sp, 0x4] + adds r3, r7, r3 + str r3, [sp, 0x14] + adds r0, r1, 0x1 + str r0, [sp, 0x18] + cmp r5, r8 + bcs _08095A12 + movs r2, 0xF + mov r12, r2 + lsls r1, 9 + ldr r0, _08095A40 + adds r1, r0 + mov r10, r1 +_080959BA: + ldr r3, [sp] + adds r0, r3, r5 + ldrb r1, [r0] + ldr r0, _08095A44 + ands r0, r1 + lsls r0, 6 + mov r2, r12 + ands r1, r2 + lsls r1, 5 + adds r0, r1 + mov r3, r10 + adds r4, r0, r3 + movs r6, 0 + adds r5, 0x1 +_080959D6: + ldrb r0, [r4] + movs r3, 0xF0 + ands r3, r0 + mov r2, r12 + ands r2, r0 + cmp r3, 0 + bne _080959E6 + ldr r3, [sp, 0xC] +_080959E6: + cmp r2, 0 + bne _080959EC + ldr r2, [sp, 0x8] +_080959EC: + mov r0, r9 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r1, [sp, 0x40] + adds r0, r1, r0 + orrs r3, r2 + strb r3, [r0] + adds r4, 0x1 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1F + bls _080959D6 + lsls r0, r5, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080959BA +_08095A12: + ldr r0, [sp, 0x40] + adds r1, r7, 0 + ldr r3, [sp, 0x10] + lsrs r2, r3, 16 + bl CpuSet + ldr r7, [sp, 0x14] + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x18] + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _0809599E +_08095A2E: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095A40: .4byte gFont3LatinGlyphs +_08095A44: .4byte 0x0000fff0 + thumb_func_end sub_8095904 + + thumb_func_start unref_sub_8095A48 +unref_sub_8095A48: @ 8095A48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r7, r3, 24 + movs r6, 0 +_08095A60: + movs r3, 0 + ldrb r0, [r4] + adds r1, r0, 0 + adds r2, r0, 0 + cmp r1, 0xFF + beq _08095ACE +_08095A6C: + mov r0, sp + adds r0, r3 + adds r0, 0x8 + strb r2, [r0] + adds r4, 0x1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bhi _08095AA8 + ldrb r0, [r4] + adds r1, r0, 0 + adds r2, r0, 0 + cmp r1, 0xFF + bne _08095A6C + cmp r3, 0 + beq _08095ACE + movs r6, 0x1 + cmp r3, 0x3 + bhi _08095AA8 + movs r2, 0 +_08095A96: + adds r0, r3, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + add r0, sp + adds r0, 0x8 + strb r2, [r0] + cmp r3, 0x3 + bls _08095A96 +_08095AA8: + mov r1, sp + adds r1, r3 + adds r1, 0x8 + movs r0, 0xFF + strb r0, [r1] + str r7, [sp] + ldr r0, [sp, 0x28] + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r5, 0 + mov r2, r8 + movs r3, 0x80 + bl sub_8095904 + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + cmp r6, 0 + beq _08095A60 +_08095ACE: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_8095A48 + + thumb_func_start sub_8095ADC +sub_8095ADC: @ 8095ADC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + movs r5, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_08095AF0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _08095B20 + adds r0, r1 + adds r0, r6, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08095B0C + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08095B0C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _08095AF0 + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08095B20: .4byte gUnknown_020300A4 + thumb_func_end sub_8095ADC + + thumb_func_start sub_8095B24 +sub_8095B24: @ 8095B24 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r5, r0, 5 +_08095B36: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _08095B54 + adds r0, r1 + adds r0, r5, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _08095B58 + lsls r0, r4, 16 + asrs r0, 16 + b _08095B66 + .align 2, 0 +_08095B54: .4byte gUnknown_020300A4 +_08095B58: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _08095B36 + movs r0, 0x1 + negs r0, r0 +_08095B66: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8095B24 + + thumb_func_start sub_8095B6C +sub_8095B6C: @ 8095B6C + push {r4-r6,lr} + movs r5, 0 + movs r6, 0 +_08095B72: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095BB0 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095B9A + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08095B9A + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08095B9A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08095B72 + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08095BB0: .4byte gPlayerParty + thumb_func_end sub_8095B6C + + thumb_func_start sub_8095BB4 +sub_8095BB4: @ 8095BB4 + push {r4-r7,lr} + lsls r0, 24 + movs r5, 0 + movs r6, 0 + lsrs r7, r0, 24 +_08095BBE: + cmp r5, r7 + beq _08095BF6 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095C0C + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095BF6 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08095BF6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08095BF6 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08095BF6: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08095BBE + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08095C0C: .4byte gPlayerParty + thumb_func_end sub_8095BB4 + + thumb_func_start sub_8095C10 +sub_8095C10: @ 8095C10 + push {lr} + ldr r0, _08095C24 + ldrb r0, [r0] + bl sub_8095BB4 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08095C24: .4byte gUnknown_0202E8CC + thumb_func_end sub_8095C10 + + thumb_func_start sub_8095C28 +sub_8095C28: @ 8095C28 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_08095C2E: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08095C5C + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095C46 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08095C46: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _08095C2E + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08095C5C: .4byte gPlayerParty + thumb_func_end sub_8095C28 + + thumb_func_start unref_sub_8095C60 +unref_sub_8095C60: @ 8095C60 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r2, 16 + lsrs r4, 16 + bl StringCopy + adds r1, r0, 0 + adds r5, r4 + cmp r1, r5 + bcs _08095C7E + movs r0, 0 +_08095C76: + strb r0, [r1] + adds r1, 0x1 + cmp r1, r5 + bcc _08095C76 +_08095C7E: + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_8095C60 + + thumb_func_start sub_8095C8C +sub_8095C8C: @ 8095C8C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + adds r7, r3, 0 + ldr r5, [sp, 0x1C] + ldr r4, [sp, 0x20] + ldr r0, [sp, 0x24] + mov r9, r0 + ldr r0, [sp, 0x28] + ldr r3, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + mov r0, r9 + lsls r0, 17 + mov r9, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r6, r2 + adds r0, r4, 0 + muls r0, r3 + adds r0, r5 + lsls r0, 1 + adds r7, r0 + movs r4, 0 + cmp r4, r8 + bcs _08095CFC + mov r0, r9 + lsrs r0, 1 + mov r9, r0 + lsls r5, r3, 1 +_08095CE2: + adds r0, r7, 0 + adds r1, r6, 0 + mov r3, r9 + lsrs r2, r3, 16 + bl CpuSet + adds r6, 0x40 + adds r7, r5 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _08095CE2 +_08095CFC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095C8C + + thumb_func_start unref_sub_8095D08 +unref_sub_8095D08: @ 8095D08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r4, r2 + lsls r3, 17 + lsrs r0, r3, 16 + str r0, [sp, 0x4] + movs r0, 0 + cmp r0, r10 + bcs _08095DB2 + movs r6, 0x80 + lsls r6, 5 + mov r5, sp + ldr r7, _08095D74 + lsrs r3, 17 + mov r9, r3 + mov r1, r9 + movs r2, 0x81 + lsls r2, 24 + orrs r1, r2 + mov r9, r1 +_08095D4E: + adds r3, r4, 0 + ldr r2, [sp, 0x4] + movs r1, 0x40 + adds r1, r4 + mov r8, r1 + adds r0, 0x1 + mov r12, r0 + cmp r2, r6 + bhi _08095D78 + movs r0, 0 + strh r0, [r5] + mov r2, sp + str r2, [r7] + str r4, [r7, 0x4] + mov r0, r9 + str r0, [r7, 0x8] + ldr r0, [r7, 0x8] + b _08095DA6 + .align 2, 0 +_08095D74: .4byte 0x040000d4 +_08095D78: + movs r4, 0 + strh r4, [r5] + ldr r1, _08095DC4 + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + ldr r0, _08095DC8 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r6 + subs r2, r6 + cmp r2, r6 + bhi _08095D78 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + lsrs r0, r2, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_08095DA6: + mov r4, r8 + mov r1, r12 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, r10 + bcc _08095D4E +_08095DB2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095DC4: .4byte 0x040000d4 +_08095DC8: .4byte 0x81000800 + thumb_func_end unref_sub_8095D08 + + thumb_func_start sub_8095DCC +sub_8095DCC: @ 8095DCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r0, r3, 24 + cmp r0, 0 + beq _08095DE8 + cmp r0, 0x2 + bne _08095DEC +_08095DE8: + movs r2, 0x1 + b _08095DEE +_08095DEC: + ldr r2, _08095E38 +_08095DEE: + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08095E44 + lsls r0, r1, 24 + asrs r0, 24 + lsls r2, 16 + asrs r1, r2, 16 + adds r1, r0 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r2, 0 + cmp r1, 0 + blt _08095E90 + cmp r1, r7 + bgt _08095E90 +_08095E10: + asrs r4, r0, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + add r0, r8 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _08095E3C + asrs r0, r6, 16 + adds r0, r4, r0 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _08095E90 + cmp r2, r7 + ble _08095E10 + b _08095E90 + .align 2, 0 +_08095E38: .4byte 0x0000ffff +_08095E3C: + adds r0, r4, 0 + b _08095E94 +_08095E40: + adds r0, r5, 0 + b _08095E94 +_08095E44: + lsls r0, r1, 24 + asrs r0, 24 + lsls r2, 16 + asrs r1, r2, 16 + adds r1, r0 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r2, 0 + cmp r1, 0 + blt _08095E90 + cmp r1, r7 + bgt _08095E90 +_08095E5C: + asrs r5, r0, 16 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08095E80 + adds r0, r4, 0 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + beq _08095E40 +_08095E80: + asrs r0, r6, 16 + adds r0, r5, r0 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _08095E90 + cmp r2, r7 + ble _08095E5C +_08095E90: + movs r0, 0x1 + negs r0, r0 +_08095E94: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8095DCC + + thumb_func_start sub_8095EA0 +sub_8095EA0: @ 8095EA0 + push {lr} + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + pop {r0} + bx r0 + thumb_func_end sub_8095EA0 + + thumb_func_start sub_8095EB4 +sub_8095EB4: @ 8095EB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08095ED8 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _08095ECE + b _080960F4 +_08095ECE: + lsls r0, 2 + ldr r1, _08095EDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08095ED8: .4byte gTasks +_08095EDC: .4byte _08095EE0 + .align 2, 0 +_08095EE0: + .4byte _08095EF4 + .4byte _08095F1C + .4byte _08095F30 + .4byte _08096042 + .4byte _080960DC +_08095EF4: + ldrb r0, [r4, 0xA] + bl sub_8096168 + bl MenuDisplayMessageBox + ldr r1, _08095F18 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + b _08095F28 + .align 2, 0 +_08095F18: .4byte gUnknown_083B600C +_08095F1C: + bl sub_807D770 + lsls r0, 24 + cmp r0, 0 + bne _08095F28 + b _080960F4 +_08095F28: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080960F4 +_08095F30: + bl ProcessMenuInput + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0xC] + movs r3, 0xC + ldrsh r1, [r4, r3] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08095FC8 + cmp r1, r0 + bgt _08095F52 + subs r0, 0x1 + cmp r1, r0 + beq _08095F58 + b _08095FE8 +_08095F52: + cmp r1, 0x3 + beq _08095FC8 + b _08095FE8 +_08095F58: + ldrh r3, [r4, 0xA] + strh r3, [r4, 0xE] + ldr r2, _08095FC0 + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095F76 + subs r0, r3, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + cmp r0, 0 + bge _08095F76 + movs r0, 0x3 + strh r0, [r4, 0xE] +_08095F76: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08095F92 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08095F92 + movs r0, 0 + strh r0, [r4, 0xE] +_08095F92: + lsls r0, r3, 16 + asrs r0, 16 + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _08095FA2 + b _080960F4 +_08095FA2: + strh r2, [r4, 0xA] + bl sub_8095EA0 + ldr r0, _08095FC4 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + b _080960F4 + .align 2, 0 +_08095FC0: .4byte gMain +_08095FC4: .4byte gUnknown_083B600C +_08095FC8: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x9 + bl MenuZeroFillWindowRect + bl ScriptContext2_Disable + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask + b _080960F4 +_08095FE8: + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _08096008 + bl sub_8095C28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08096008 + bl sub_8095EA0 + ldr r0, _08096004 + b _08096022 + .align 2, 0 +_08096004: .4byte gPCText_PartyFull2 +_08096008: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08096034 + bl sub_8095C28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08096034 + bl sub_8095EA0 + ldr r0, _08096030 +_08096022: + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080960F4 + .align 2, 0 +_08096030: .4byte gPCText_OnlyOne +_08096034: + movs r0, 0x1 + movs r1, 0 + bl fade_screen + movs r0, 0x4 + strh r0, [r4, 0x8] + b _080960F4 +_08096042: + ldr r0, _08096088 + ldrh r1, [r0, 0x2E] + movs r3, 0x3 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080960B8 + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08096090 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0809606A + strh r3, [r4, 0xA] +_0809606A: + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + bl sub_8095EA0 + ldr r1, _0809608C + movs r3, 0xA + ldrsh r0, [r4, r3] + b _080960C2 + .align 2, 0 +_08096088: .4byte gMain +_0809608C: .4byte gUnknown_083B600C +_08096090: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080960F4 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080960A8 + strh r2, [r4, 0xA] +_080960A8: + movs r0, 0x1 + bl MoveMenuCursor + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] +_080960B8: + bl sub_8095EA0 + ldr r1, _080960D8 + movs r2, 0xA + ldrsh r0, [r4, r2] +_080960C2: + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080960F4 + .align 2, 0 +_080960D8: .4byte gUnknown_083B600C +_080960DC: + ldr r0, _080960FC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080960F4 + ldrb r0, [r4, 0xC] + bl task_intro_29 + adds r0, r5, 0 + bl DestroyTask +_080960F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080960FC: .4byte gPaletteFade + thumb_func_end sub_8095EB4 + + thumb_func_start sub_8096100 +sub_8096100: @ 8096100 + push {lr} + ldr r0, _08096128 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0809612C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08096128: .4byte sub_8095EB4 +_0809612C: .4byte gTasks + thumb_func_end sub_8096100 + + thumb_func_start sub_8096130 +sub_8096130: @ 8096130 + push {lr} + ldr r0, _0809615C + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08096160 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _08096164 + ldrb r0, [r0] + strh r0, [r1, 0xA] + bl pal_fill_black + pop {r0} + bx r0 + .align 2, 0 +_0809615C: .4byte sub_8095EB4 +_08096160: .4byte gTasks +_08096164: .4byte gUnknown_02038474 + thumb_func_end sub_8096130 + + thumb_func_start sub_8096168 +sub_8096168: @ 8096168 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x9 + bl MenuDrawTextWindow + ldr r3, _080961A4 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x4 + bl PrintMenuItems + str r4, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080961A4: .4byte gUnknown_083B600C + thumb_func_end sub_8096168 + + thumb_func_start sub_80961A8 +sub_80961A8: @ 80961A8 + push {lr} + ldr r1, _080961C4 + ldr r0, _080961C8 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + strb r0, [r1] + ldr r1, _080961CC + ldr r0, _080961D0 + str r0, [r1] + ldr r0, _080961D4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080961C4: .4byte gUnknown_02038474 +_080961C8: .4byte gUnknown_083B6DB4 +_080961CC: .4byte gUnknown_0300485C +_080961D0: .4byte sub_8096130 +_080961D4: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80961A8 + + thumb_func_start sub_80961D8 +sub_80961D8: @ 80961D8 + push {r4-r7,lr} + ldr r1, _08096258 + movs r0, 0 + strb r0, [r1] + movs r5, 0 + adds r7, r1, 0x4 +_080961E4: + movs r4, 0 + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_080961F0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r7 + adds r0, r6, r0 + bl ZeroBoxMonData + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _080961F0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _080961E4 + movs r5, 0 +_08096214: + lsls r0, r5, 3 + adds r0, r5 + ldr r6, _0809625C + adds r0, r6 + ldr r1, _08096260 + bl StringCopy + adds r4, r5, 0x1 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0xD + bls _08096214 + movs r5, 0 + adds r3, r6, 0 + adds r3, 0x7E + movs r2, 0x3 +_0809623E: + adds r0, r5, r3 + adds r1, r5, 0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0809623E + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096258: .4byte gPokemonStorage +_0809625C: .4byte gUnknown_020383E4 +_08096260: .4byte gPCText_BOX + thumb_func_end sub_80961D8 + + thumb_func_start sub_8096264 +sub_8096264: @ 8096264 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x20 + mov r8, r0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r9, r3 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080962F4 + str r0, [sp, 0x18] + ldr r1, _080962F8 + add r5, sp, 0x18 + ldr r0, [r5, 0x4] + ands r0, r1 + orrs r0, r6 + str r0, [r5, 0x4] + mov r1, sp + ldr r0, _080962FC + str r0, [sp] + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1, 0x4] + strh r4, [r1, 0x6] + ldr r0, _08096300 + str r0, [sp, 0x8] + movs r0, 0xC0 + lsls r0, 1 + strh r0, [r1, 0xC] + adds r0, r4, 0x1 + strh r0, [r1, 0xE] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + adds r0, r5, 0 + bl LoadSpritePalette + mov r0, sp + bl LoadSpriteSheets + ldr r0, _08096304 + mov r1, r8 + str r1, [r0] + movs r0, 0x90 + lsls r0, 2 + add r0, r8 + strh r4, [r0] + ldr r0, _08096308 + add r0, r8 + strh r6, [r0] + ldr r0, _0809630C + add r8, r0 + mov r0, r9 + mov r1, r8 + strb r0, [r1] + add sp, 0x20 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080962F4: .4byte gBoxSelectionPopupPalette +_080962F8: .4byte 0xffff0000 +_080962FC: .4byte gBoxSelectionPopupCenterTiles +_08096300: .4byte gBoxSelectionPopupSidesTiles +_08096304: .4byte gUnknown_02038478 +_08096308: .4byte 0x00000242 +_0809630C: .4byte 0x0000023e + thumb_func_end sub_8096264 + + thumb_func_start sub_8096310 +sub_8096310: @ 8096310 + push {r4,r5,lr} + ldr r4, _08096344 + ldr r0, [r4] + ldr r1, _08096348 + adds r0, r1 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + ldr r0, [r4] + movs r5, 0x90 + lsls r5, 2 + adds r0, r5 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, r5 + ldrh r0, [r0] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096344: .4byte gUnknown_02038478 +_08096348: .4byte 0x00000242 + thumb_func_end sub_8096310 + + thumb_func_start sub_809634C +sub_809634C: @ 809634C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80963D0 + pop {r0} + bx r0 + thumb_func_end sub_809634C + + thumb_func_start sub_809635C +sub_809635C: @ 809635C + push {lr} + bl sub_809658C + pop {r0} + bx r0 + thumb_func_end sub_809635C + + thumb_func_start sub_8096368 +sub_8096368: @ 8096368 + push {lr} + ldr r0, _08096380 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08096384 + movs r0, 0x5 + bl PlaySE + movs r0, 0xC9 + b _080963CC + .align 2, 0 +_08096380: .4byte gMain +_08096384: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080963A4 + movs r0, 0x5 + bl PlaySE + ldr r0, _080963A0 + ldr r0, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + b _080963CC + .align 2, 0 +_080963A0: .4byte gUnknown_02038478 +_080963A4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080963B8 + movs r0, 0x5 + bl PlaySE + bl sub_809662C + b _080963CA +_080963B8: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080963CA + movs r0, 0x5 + bl PlaySE + bl sub_80965F8 +_080963CA: + movs r0, 0xC8 +_080963CC: + pop {r1} + bx r1 + thumb_func_end sub_8096368 + + thumb_func_start sub_80963D0 +sub_80963D0: @ 80963D0 + push {r4-r6,lr} + sub sp, 0x3C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x34] + str r1, [sp, 0x38] + movs r1, 0xC0 + lsls r1, 24 + ldr r0, [sp, 0x34] + orrs r0, r1 + str r0, [sp, 0x34] + ldr r1, _08096564 + add r4, sp, 0x34 + ldr r0, [r4, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r4, 0x4] + add r1, sp, 0x1C + movs r2, 0 + strh r2, [r1] + mov r0, sp + adds r0, 0x1E + strh r2, [r0] + str r4, [sp, 0x20] + ldr r0, _08096568 + str r0, [sp, 0x24] + str r2, [sp, 0x28] + ldr r0, _0809656C + str r0, [sp, 0x2C] + ldr r0, _08096570 + str r0, [sp, 0x30] + add r0, sp, 0x4 + movs r2, 0x18 + bl memcpy + ldr r6, _08096574 + ldr r0, [r6] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + strb r5, [r0] + add r2, sp, 0x4 + ldr r1, [r6] + movs r5, 0x90 + lsls r5, 2 + adds r0, r1, r5 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _08096578 + adds r1, r3 + ldrh r0, [r1] + strh r0, [r2, 0x2] + adds r0, r2, 0 + movs r1, 0xA0 + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809657C + adds r0, r1 + str r0, [r3] + ldrb r2, [r4, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r4, 0x3] + add r1, sp, 0x4 + adds r3, r5 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r1] + ldr r0, _08096580 + str r0, [sp, 0xC] + movs r4, 0 +_08096488: + ldr r0, [r6] + ldr r1, _08096584 + adds r0, r1 + ldrb r3, [r0] + add r0, sp, 0x4 + movs r1, 0x7C + movs r2, 0x50 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [r6] + lsls r3, r4, 2 + adds r2, 0x4 + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809657C + adds r1, r0, r1 + str r1, [r2] + movs r5, 0 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _080964C2 + movs r0, 0xC4 + strh r0, [r1, 0x20] + movs r5, 0x2 +_080964C2: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080964E6 + ldr r1, [r6] + adds r1, 0x4 + adds r1, r3 + ldr r2, [r1] + movs r0, 0x70 + strh r0, [r2, 0x22] + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080964E6: + ldr r0, [r6] + adds r0, 0x4 + adds r0, r3 + ldr r0, [r0] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08096488 + movs r4, 0 + ldr r5, _08096574 +_08096504: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 19 + movs r3, 0xF8 + lsls r3, 15 + adds r0, r3 + lsrs r0, 16 + lsls r2, r4, 24 + lsrs r2, 24 + ldr r1, [r5] + ldr r3, _08096584 + adds r1, r3 + ldrb r1, [r1] + str r1, [sp] + movs r1, 0x58 + movs r3, 0 + bl sub_809A9A0 + adds r2, r0, 0 + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x20 + adds r0, r1 + str r2, [r0] + cmp r2, 0 + beq _0809654C + movs r1, 0x1 + cmp r4, 0 + bne _08096544 + movs r3, 0x1 + negs r3, r3 + adds r1, r3, 0 +_08096544: + strh r1, [r2, 0x2E] + ldr r1, [r0] + ldr r0, _08096588 + str r0, [r1, 0x1C] +_0809654C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08096504 + bl sub_809665C + add sp, 0x3C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08096564: .4byte 0xffff0fff +_08096568: .4byte gDummySpriteAnimTable +_0809656C: .4byte gDummySpriteAffineAnimTable +_08096570: .4byte SpriteCallbackDummy +_08096574: .4byte gUnknown_02038478 +_08096578: .4byte 0x00000242 +_0809657C: .4byte gSprites +_08096580: .4byte gSpriteAnimTable_83B604C +_08096584: .4byte 0x0000023e +_08096588: .4byte sub_8096784 + thumb_func_end sub_80963D0 + + thumb_func_start sub_809658C +sub_809658C: @ 809658C + push {r4-r6,lr} + ldr r4, _080965F4 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _080965A2 + bl DestroySprite + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_080965A2: + movs r5, 0 + adds r6, r4, 0 +_080965A6: + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, 0x4 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _080965C2 + bl DestroySprite + ldr r0, [r6] + adds r0, 0x4 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080965C2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080965A6 + movs r5, 0 +_080965CE: + ldr r0, _080965F4 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x20 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080965E2 + bl DestroySprite +_080965E2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080965CE + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080965F4: .4byte gUnknown_02038478 + thumb_func_end sub_809658C + + thumb_func_start sub_80965F8 +sub_80965F8: @ 80965F8 + push {lr} + ldr r2, _08096628 + ldr r1, [r2] + movs r0, 0x8F + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bls _0809661E + ldr r0, [r2] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_0809661E: + bl sub_809665C + pop {r0} + bx r0 + .align 2, 0 +_08096628: .4byte gUnknown_02038478 + thumb_func_end sub_80965F8 + + thumb_func_start sub_809662C +sub_809662C: @ 809662C + push {lr} + ldr r0, _08096644 + ldr r2, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08096648 + subs r1, r0, 0x1 + b _0809664A + .align 2, 0 +_08096644: .4byte gUnknown_02038478 +_08096648: + movs r1, 0xD +_0809664A: + movs r3, 0x8F + lsls r3, 2 + adds r0, r2, r3 + strb r1, [r0] + bl sub_809665C + pop {r0} + bx r0 + thumb_func_end sub_809662C + + thumb_func_start sub_809665C +sub_809665C: @ 809665C + push {r4-r7,lr} + ldr r5, _080966B4 + ldr r0, [r5] + movs r4, 0x8F + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0] + bl sub_8095ADC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080966B8 + movs r6, 0xFC + strb r6, [r2] + movs r0, 0x4 + strb r0, [r2, 0x1] + movs r0, 0xF + strb r0, [r2, 0x2] + movs r0, 0x1 + strb r0, [r2, 0x3] + movs r0, 0xE + strb r0, [r2, 0x4] + adds r2, 0x5 + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + ldr r0, _080966BC + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFE + strb r0, [r2] + strb r6, [r2, 0x1] + movs r0, 0x11 + strb r0, [r2, 0x2] + cmp r7, 0x9 + bhi _080966C0 + movs r0, 0x28 + b _080966C2 + .align 2, 0 +_080966B4: .4byte gUnknown_02038478 +_080966B8: .4byte gStringVar1 +_080966BC: .4byte gUnknown_020383E4 +_080966C0: + movs r0, 0x22 +_080966C2: + strb r0, [r2, 0x3] + adds r2, 0x4 + adds r0, r2, 0 + adds r1, r7, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + movs r0, 0xA4 + strb r0, [r2, 0x1] + movs r0, 0xA1 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080966F0 + movs r1, 0 + movs r2, 0x1 + bl sub_80966F4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080966F0: .4byte gStringVar1 + thumb_func_end sub_809665C + + thumb_func_start sub_80966F4 +sub_80966F4: @ 80966F4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08096764 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + bl GetSpriteTileStartByTag + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 11 + lsls r4, 8 + ldr r2, _08096768 + adds r4, r2 + adds r6, r4 + lsls r5, 5 + adds r6, r5 + ldr r0, _0809676C + ldr r5, [r0] + mov r1, sp + ldr r2, _08096770 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _08096774 + str r1, [r4] + str r5, [r4, 0x4] + ldr r0, _08096778 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0809677C + adds r1, r5, 0 + mov r2, r8 + bl sub_8004E3C + str r5, [r4] + str r6, [r4, 0x4] + ldr r0, _08096780 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08096764: .4byte gUnknown_02038478 +_08096768: .4byte 0x06010000 +_0809676C: .4byte gUnknown_083B6DB8 +_08096770: .4byte 0x00001111 +_08096774: .4byte 0x040000d4 +_08096778: .4byte 0x81000200 +_0809677C: .4byte gWindowConfig_81E6D38 +_08096780: .4byte 0x80000200 + thumb_func_end sub_80966F4 + + thumb_func_start sub_8096784 +sub_8096784: @ 8096784 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + movs r2, 0 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080967B4 + strh r2, [r1, 0x30] + ldrh r0, [r1, 0x2E] + ldrh r3, [r1, 0x24] + adds r0, r3 + strh r0, [r1, 0x24] + ldrh r0, [r1, 0x32] + adds r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080967B4 + strh r2, [r1, 0x32] + strh r2, [r1, 0x24] +_080967B4: + pop {r0} + bx r0 + thumb_func_end sub_8096784 + + thumb_func_start task_intro_29 +task_intro_29: @ 80967B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080967D0 + strb r0, [r1] + ldr r1, _080967D4 + strb r0, [r1, 0x5] + ldr r0, _080967D8 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080967D0: .4byte gUnknown_0203847D +_080967D4: .4byte 0x02000000 +_080967D8: .4byte sub_8096884 + thumb_func_end task_intro_29 + + thumb_func_start sub_80967DC +sub_80967DC: @ 80967DC + ldr r0, _08096800 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_08096800: .4byte REG_BG0HOFS + thumb_func_end sub_80967DC + + thumb_func_start sub_8096804 +sub_8096804: @ 8096804 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + bl ResetTasks + ldr r1, _0809683C + movs r2, 0xA0 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08096840 + adds r1, r0, 0 + adds r1, 0x8 + movs r2, 0x8 + bl sub_809CFDC + ldr r1, _08096844 + movs r0, 0x14 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809683C: .4byte gReservedSpriteTileCount +_08096840: .4byte 0x02000020 +_08096844: .4byte gKeyRepeatStartDelay + thumb_func_end sub_8096804 + + thumb_func_start sub_8096848 +sub_8096848: @ 8096848 + push {lr} + bl sub_809B0D4 + ldr r2, _08096868 + movs r1, 0 + ldr r0, _0809686C + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809685C + movs r1, 0x1 +_0809685C: + strb r1, [r2] + ldr r1, _08096870 + movs r0, 0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08096868: .4byte gUnknown_0203847C +_0809686C: .4byte 0x02000000 +_08096870: .4byte gUnknown_0203847E + thumb_func_end sub_8096848 + + thumb_func_start sub_8096874 +sub_8096874: @ 8096874 + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_8096874 + + thumb_func_start sub_8096884 +sub_8096884: @ 8096884 + push {lr} + ldr r0, _080968A0 + ldr r1, _080968A4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08096894 + b _08096986 +_08096894: + lsls r0, 2 + ldr r1, _080968A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080968A0: .4byte gMain +_080968A4: .4byte 0x0000043c +_080968A8: .4byte _080968AC + .align 2, 0 +_080968AC: + .4byte _080968D4 + .4byte _080968E8 + .4byte _080968F4 + .4byte _08096904 + .4byte _0809690E + .4byte _08096918 + .4byte _0809691E + .4byte _08096924 + .4byte _0809692A + .4byte _08096964 +_080968D4: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + bl sub_8096804 + b _0809697A +_080968E8: + ldr r0, _080968F0 + bl SetUpWindowConfig + b _0809697A + .align 2, 0 +_080968F0: .4byte gWindowConfig_81E6D00 +_080968F4: + ldr r0, _08096900 + bl InitMenuWindow + bl MenuZeroFillScreen + b _0809697A + .align 2, 0 +_08096900: .4byte gWindowConfig_81E6D00 +_08096904: + bl sub_80967DC + bl sub_8096848 + b _0809697A +_0809690E: + bl sub_8098B48 + bl sub_809AA24 + b _0809697A +_08096918: + bl sub_8097DE0 + b _0809697A +_0809691E: + bl sub_8097E70 + b _0809697A +_08096924: + bl sub_8098400 + b _0809697A +_0809692A: + ldr r0, _08096950 + ldrb r0, [r0] + bl sub_8099BF8 + ldr r2, _08096954 + ldr r1, _08096958 + adds r0, r2, r1 + movs r1, 0xA + strh r1, [r0] + ldr r1, _0809695C + adds r2, r1 + ldr r1, _08096960 + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + b _0809697A + .align 2, 0 +_08096950: .4byte gPokemonStorage +_08096954: .4byte 0x02000000 +_08096958: .4byte 0x000012bc +_0809695C: .4byte 0x000012be +_08096960: .4byte 0x0000dacb +_08096964: + bl sub_8096874 + ldr r0, _0809698C + bl sub_8096BE0 + ldr r0, _08096990 + bl SetMainCallback2 + ldr r0, _08096994 + bl SetVBlankCallback +_0809697A: + ldr r1, _08096998 + ldr r0, _0809699C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08096986: + pop {r0} + bx r0 + .align 2, 0 +_0809698C: .4byte sub_8096BF0 +_08096990: .4byte sub_8096B38 +_08096994: .4byte sub_8096AFC +_08096998: .4byte gMain +_0809699C: .4byte 0x0000043c + thumb_func_end sub_8096884 + + thumb_func_start sub_80969A0 +sub_80969A0: @ 80969A0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080969BC + ldr r1, _080969C0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xA + bls _080969B2 + b _08096AE4 +_080969B2: + lsls r0, 2 + ldr r1, _080969C4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080969BC: .4byte gMain +_080969C0: .4byte 0x0000043c +_080969C4: .4byte _080969C8 + .align 2, 0 +_080969C8: + .4byte _080969F4 + .4byte _08096A34 + .4byte _08096A40 + .4byte _08096A50 + .4byte _08096A56 + .4byte _08096A60 + .4byte _08096A66 + .4byte _08096A6C + .4byte _08096A72 + .4byte _08096AAC + .4byte _08096AC8 +_080969F4: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r1, _08096A28 + ldr r0, _08096A2C + ldrb r0, [r0] + strb r0, [r1, 0x5] + bl sub_8096804 + ldr r4, _08096A30 + ldrb r0, [r4] + cmp r0, 0x1 + bne _08096A1A + bl sub_809BBC0 +_08096A1A: + ldrb r0, [r4] + cmp r0, 0 + bne _08096AD8 + bl sub_809BD14 + b _08096AD8 + .align 2, 0 +_08096A28: .4byte 0x02000000 +_08096A2C: .4byte gUnknown_0203847D +_08096A30: .4byte gUnknown_0203847F +_08096A34: + ldr r0, _08096A3C + bl SetUpWindowConfig + b _08096AD8 + .align 2, 0 +_08096A3C: .4byte gWindowConfig_81E6D00 +_08096A40: + ldr r0, _08096A4C + bl InitMenuWindow + bl MenuZeroFillScreen + b _08096AD8 + .align 2, 0 +_08096A4C: .4byte gWindowConfig_81E6D00 +_08096A50: + bl sub_80967DC + b _08096AD8 +_08096A56: + bl sub_8098B48 + bl sub_809AA98 + b _08096AD8 +_08096A60: + bl sub_8097DE0 + b _08096AD8 +_08096A66: + bl sub_8097E70 + b _08096AD8 +_08096A6C: + bl sub_8098400 + b _08096AD8 +_08096A72: + ldr r0, _08096A98 + ldrb r0, [r0] + bl sub_8099BF8 + ldr r2, _08096A9C + ldr r1, _08096AA0 + adds r0, r2, r1 + movs r1, 0xA + strh r1, [r0] + ldr r1, _08096AA4 + adds r2, r1 + ldr r1, _08096AA8 + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + b _08096AD8 + .align 2, 0 +_08096A98: .4byte gPokemonStorage +_08096A9C: .4byte 0x02000000 +_08096AA0: .4byte 0x000012bc +_08096AA4: .4byte 0x000012be +_08096AA8: .4byte 0x0000dacb +_08096AAC: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08096AC4 + bl SetVBlankCallback + b _08096AD8 + .align 2, 0 +_08096AC4: .4byte sub_8096AFC +_08096AC8: + bl sub_8096874 + ldr r0, _08096AEC + bl sub_8096BE0 + ldr r0, _08096AF0 + bl SetMainCallback2 +_08096AD8: + ldr r1, _08096AF4 + ldr r0, _08096AF8 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08096AE4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096AEC: .4byte sub_8096C68 +_08096AF0: .4byte sub_8096B38 +_08096AF4: .4byte gMain +_08096AF8: .4byte 0x0000043c + thumb_func_end sub_80969A0 + + thumb_func_start sub_8096AFC +sub_8096AFC: @ 8096AFC + push {lr} + ldr r2, _08096B2C + ldr r1, _08096B30 + ldr r3, _08096B34 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, 0x4 + ldrh r0, [r1, 0xA] + strh r0, [r2] + adds r2, 0x2 + ldrh r0, [r1, 0x8] + strh r0, [r2] + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_809CFF0 + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_08096B2C: .4byte REG_BG2HOFS +_08096B30: .4byte 0x02000000 +_08096B34: .4byte 0x000008b4 + thumb_func_end sub_8096AFC + + thumb_func_start sub_8096B38 +sub_8096B38: @ 8096B38 + push {lr} + ldr r0, _08096B58 + ldr r0, [r0] + bl _call_via_r0 + bl sub_8097E44 + bl sub_8098734 + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 +_08096B58: .4byte 0x02000000 + thumb_func_end sub_8096B38 + + thumb_func_start sub_8096B5C +sub_8096B5C: @ 8096B5C + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _08096B70 + ldrb r0, [r4, 0x6] + cmp r0, 0 + beq _08096B74 + cmp r0, 0x1 + beq _08096BAC + b _08096BCC + .align 2, 0 +_08096B70: .4byte 0x02000000 +_08096B74: + ldr r1, _08096B98 + adds r0, r4, r1 + ldr r0, [r0] + ldr r2, _08096B9C + adds r1, r4, r2 + ldrb r1, [r1] + ldr r3, _08096BA0 + adds r2, r4, r3 + ldrb r2, [r2] + ldr r3, _08096BA4 + ldr r5, _08096BA8 + adds r4, r5 + ldrb r4, [r4] + str r4, [sp] + bl sub_809D8BC + b _08096BCC + .align 2, 0 +_08096B98: .4byte 0x00002690 +_08096B9C: .4byte 0x0000268d +_08096BA0: .4byte 0x0000268c +_08096BA4: .4byte sub_80969A0 +_08096BA8: .4byte 0x0000268e +_08096BAC: + ldr r0, _08096BD4 + ldrb r2, [r0] + lsls r1, r2, 3 + adds r1, r2 + ldr r2, _08096BD8 + adds r0, r2 + adds r1, r0 + movs r0, 0 + str r0, [sp] + ldr r0, _08096BDC + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl DoNamingScreen +_08096BCC: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096BD4: .4byte gPokemonStorage +_08096BD8: .4byte 0x00008344 +_08096BDC: .4byte sub_80969A0 + thumb_func_end sub_8096B5C + + thumb_func_start sub_8096BE0 +sub_8096BE0: @ 8096BE0 + ldr r1, _08096BEC + str r0, [r1] + movs r0, 0 + strb r0, [r1, 0x4] + bx lr + .align 2, 0 +_08096BEC: .4byte 0x02000000 + thumb_func_end sub_8096BE0 + + thumb_func_start sub_8096BF0 +sub_8096BF0: @ 8096BF0 + push {r4,lr} + ldr r4, _08096C04 + ldrb r0, [r4, 0x4] + cmp r0, 0x1 + beq _08096C16 + cmp r0, 0x1 + bgt _08096C08 + cmp r0, 0 + beq _08096C0E + b _08096C5C + .align 2, 0 +_08096C04: .4byte 0x02000000 +_08096C08: + cmp r0, 0x2 + beq _08096C4C + b _08096C5C +_08096C0E: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + b _08096C38 +_08096C16: + movs r0, 0x2 + bl PlaySE + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08096C48 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5CD4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 +_08096C38: + movs r2, 0 + bl BlendPalettes + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08096C5C + .align 2, 0 +_08096C48: .4byte 0x0000dad0 +_08096C4C: + bl sub_80C5DCC + lsls r0, 24 + cmp r0, 0 + beq _08096C5C + ldr r0, _08096C64 + bl sub_8096BE0 +_08096C5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096C64: .4byte sub_8096C84 + thumb_func_end sub_8096BF0 + + thumb_func_start sub_8096C68 +sub_8096C68: @ 8096C68 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08096C7A + ldr r0, _08096C80 + bl sub_8096BE0 +_08096C7A: + pop {r0} + bx r0 + .align 2, 0 +_08096C80: .4byte sub_8096C84 + thumb_func_end sub_8096C68 + + thumb_func_start sub_8096C84 +sub_8096C84: @ 8096C84 + push {r4,lr} + ldr r0, _08096C9C + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bls _08096C90 + b _08096FBA +_08096C90: + lsls r0, 2 + ldr r1, _08096CA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096C9C: .4byte 0x02000000 +_08096CA0: .4byte _08096CA4 + .align 2, 0 +_08096CA4: + .4byte _08096CC0 + .4byte _08096EE0 + .4byte _08096F1C + .4byte _08096F60 + .4byte _08096F80 + .4byte _08096F8A + .4byte _08096FA4 +_08096CC0: + bl sub_809CA40 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0xF + bls _08096CD0 + b _08096FBA +_08096CD0: + lsls r0, 2 + ldr r1, _08096CDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096CDC: .4byte _08096CE0 + .align 2, 0 +_08096CE0: + .4byte _08096D20 + .4byte _08096FBA + .4byte _08096FBA + .4byte _08096D94 + .4byte _08096D34 + .4byte _08096D5C + .4byte _08096DAC + .4byte _08096DC0 + .4byte _08096DD4 + .4byte _08096DFC + .4byte _08096E30 + .4byte _08096EB8 + .4byte _08096E70 + .4byte _08096E8C + .4byte _08096ECC + .4byte _08096DA0 +_08096D20: + movs r0, 0x5 + bl PlaySE + ldr r1, _08096D30 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096D30: .4byte 0x02000000 +_08096D34: + ldr r4, _08096D48 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + beq _08096D4C + movs r0, 0x10 + bl sub_8098898 + movs r0, 0x3 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096D48: .4byte 0x02000000 +_08096D4C: + bl sub_809B0D4 + ldr r0, _08096D58 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D58: .4byte sub_8096FC8 +_08096D5C: + ldr r4, _08096D88 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + beq _08096D66 + b _08096FBA +_08096D66: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08096D80 + ldr r1, _08096D8C + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + bne _08096E4C +_08096D80: + ldr r0, _08096D90 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D88: .4byte 0x02000000 +_08096D8C: .4byte 0x000011f2 +_08096D90: .4byte sub_8097004 +_08096D94: + ldr r0, _08096D9C + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D9C: .4byte sub_8097BA0 +_08096DA0: + ldr r0, _08096DA8 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DA8: .4byte sub_8097CC0 +_08096DAC: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096DBC + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DBC: .4byte sub_809789C +_08096DC0: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096DD0 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DD0: .4byte sub_8097078 +_08096DD4: + movs r0, 0x5 + bl PlaySE + ldr r4, _08096DF0 + ldr r0, _08096DF4 + ldrb r0, [r0] + adds r0, 0x1 + ldr r2, _08096DF8 + adds r1, r4, r2 + strh r0, [r1] + cmp r0, 0xD + ble _08096E18 + movs r0, 0 + b _08096E16 + .align 2, 0 +_08096DF0: .4byte 0x02000000 +_08096DF4: .4byte gPokemonStorage +_08096DF8: .4byte 0x000008b2 +_08096DFC: + movs r0, 0x5 + bl PlaySE + ldr r4, _08096E24 + ldr r0, _08096E28 + ldrb r0, [r0] + subs r0, 0x1 + ldr r2, _08096E2C + adds r1, r4, r2 + strh r0, [r1] + cmp r0, 0 + bge _08096E18 + movs r0, 0xD +_08096E16: + strh r0, [r1] +_08096E18: + ldrb r0, [r1] + bl sub_8099C70 + movs r0, 0x2 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096E24: .4byte 0x02000000 +_08096E28: .4byte gPokemonStorage +_08096E2C: .4byte 0x000008b2 +_08096E30: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _08096E96 + ldr r4, _08096E54 + ldr r1, _08096E58 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _08096E5C +_08096E4C: + movs r0, 0x5 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096E54: .4byte 0x02000000 +_08096E58: .4byte 0x000011f2 +_08096E5C: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096E6C + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096E6C: .4byte sub_809746C +_08096E70: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _08096E96 + movs r0, 0x5 + bl PlaySE + ldr r0, _08096E88 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096E88: .4byte sub_80972A8 +_08096E8C: + bl sub_809BEBC + lsls r0, 24 + cmp r0, 0 + bne _08096EA4 +_08096E96: + ldr r1, _08096EA0 + movs r0, 0x4 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096EA0: .4byte 0x02000000 +_08096EA4: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EB4 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EB4: .4byte c3_0808DC50 +_08096EB8: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EC8 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EC8: .4byte sub_8097390 +_08096ECC: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EDC + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EDC: .4byte sub_80972FC +_08096EE0: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _08096FBA + bl sub_809BF48 + lsls r0, 24 + cmp r0, 0 + beq _08096EFA + bl sub_80986E8 + b _08096EFE +_08096EFA: + bl sub_8098710 +_08096EFE: + ldr r4, _08096F14 + ldr r2, _08096F18 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08096F0E + bl BoxSetMosaic +_08096F0E: + movs r0, 0 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096F14: .4byte 0x02000000 +_08096F18: .4byte 0x000011f6 +_08096F1C: + bl sub_8099D34 + lsls r0, 24 + cmp r0, 0 + bne _08096FBA + ldr r1, _08096F50 + ldr r0, _08096F54 + ldr r2, _08096F58 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, _08096F5C + ldrb r0, [r0] + cmp r0, 0 + bne _08096F70 + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + bne _08096F70 + bl sub_809B440 + bl BoxSetMosaic + b _08096F70 + .align 2, 0 +_08096F50: .4byte gPokemonStorage +_08096F54: .4byte 0x02000000 +_08096F58: .4byte 0x000008b2 +_08096F5C: .4byte gUnknown_0203847C +_08096F60: + ldr r0, _08096F78 + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08096FBA + bl sub_8098A5C +_08096F70: + ldr r1, _08096F7C + movs r0, 0 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096F78: .4byte gMain +_08096F7C: .4byte 0x02000000 +_08096F80: + movs r0, 0x20 + bl PlaySE + movs r0, 0xD + b _08096F92 +_08096F8A: + movs r0, 0x20 + bl PlaySE + movs r0, 0x16 +_08096F92: + bl sub_8098898 + ldr r1, _08096FA0 + movs r0, 0x6 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096FA0: .4byte 0x02000000 +_08096FA4: + ldr r0, _08096FC0 + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08096FBA + bl sub_8098A5C + ldr r0, _08096FC4 + bl sub_8096BE0 +_08096FBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096FC0: .4byte gMain +_08096FC4: .4byte sub_8096C84 + thumb_func_end sub_8096C84 + + thumb_func_start sub_8096FC8 +sub_8096FC8: @ 8096FC8 + push {r4,lr} + ldr r4, _08096FD8 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08096FDC + cmp r0, 0x1 + beq _08096FE8 + b _08096FF8 + .align 2, 0 +_08096FD8: .4byte 0x02000000 +_08096FDC: + bl sub_809880C + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08096FF8 +_08096FE8: + bl sub_8098830 + lsls r0, 24 + cmp r0, 0 + bne _08096FF8 + ldr r0, _08097000 + bl sub_8096BE0 +_08096FF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097000: .4byte sub_8096C84 + thumb_func_end sub_8096FC8 + + thumb_func_start sub_8097004 +sub_8097004: @ 8097004 + push {r4,lr} + ldr r4, _08097018 + ldrb r0, [r4, 0x4] + cmp r0, 0x1 + beq _0809702E + cmp r0, 0x1 + bgt _0809701C + cmp r0, 0 + beq _08097022 + b _0809706A + .align 2, 0 +_08097018: .4byte 0x02000000 +_0809701C: + cmp r0, 0x2 + beq _0809704C + b _0809706A +_08097022: + movs r0, 0x5 + bl PlaySE + bl add_to_c3_somehow + b _08097044 +_0809702E: + bl sub_80985CC + lsls r0, 24 + cmp r0, 0 + bne _0809706A + bl sub_809B0F4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809B0C0 +_08097044: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809706A +_0809704C: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _0809706A + ldr r1, _08097070 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08097064 + bl BoxSetMosaic +_08097064: + ldr r0, _08097074 + bl sub_8096BE0 +_0809706A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097070: .4byte 0x000011f6 +_08097074: .4byte sub_8096C84 + thumb_func_end sub_8097004 + + thumb_func_start sub_8097078 +sub_8097078: @ 8097078 + push {r4,lr} + ldr r0, _08097090 + ldrb r0, [r0, 0x4] + cmp r0, 0x5 + bls _08097084 + b _0809729A +_08097084: + lsls r0, 2 + ldr r1, _08097094 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097090: .4byte 0x02000000 +_08097094: .4byte _08097098 + .align 2, 0 +_08097098: + .4byte _080970B0 + .4byte _080970C8 + .4byte _08097258 + .4byte _0809726C + .4byte _08097262 + .4byte _08097284 +_080970B0: + movs r0, 0x4 + bl sub_8098898 + bl sub_809CE84 + ldr r1, _080970C4 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_080970C4: .4byte 0x02000000 +_080970C8: + bl sub_809CF30 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bls _080970D8 + b _0809729A +_080970D8: + lsls r0, 2 + ldr r1, _080970E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080970E4: .4byte _080970E8 + .align 2, 0 +_080970E8: + .4byte _08097110 + .4byte _08097110 + .4byte _08097190 + .4byte _08097178 + .4byte _08097120 + .4byte _08097158 + .4byte _08097140 + .4byte _08097230 + .4byte _080971CC + .4byte _08097244 +_08097110: + bl sub_8098A5C + ldr r0, _0809711C + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809711C: .4byte sub_8096C84 +_08097120: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _080971D6 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _0809713C + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809713C: .4byte sub_80972A8 +_08097140: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097154 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097154: .4byte sub_80972FC +_08097158: + bl sub_809BEBC + lsls r0, 24 + cmp r0, 0 + beq _080971D6 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097174 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097174: .4byte c3_0808DC50 +_08097178: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _0809718C + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809718C: .4byte sub_8097390 +_08097190: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _080971D6 + ldr r4, _080971C0 + ldr r1, _080971C4 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + bne _08097210 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _080971C8 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_080971C0: .4byte 0x02000000 +_080971C4: .4byte 0x000011f2 +_080971C8: .4byte sub_809746C +_080971CC: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + beq _080971E4 +_080971D6: + ldr r1, _080971E0 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_080971E0: .4byte 0x02000000 +_080971E4: + ldr r4, _080971F8 + ldr r1, _080971FC + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08097200 + movs r0, 0x4 + strb r0, [r4, 0x4] + b _0809729A + .align 2, 0 +_080971F8: .4byte 0x02000000 +_080971FC: .4byte 0x000011f9 +_08097200: + ldr r1, _08097218 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0809721C +_08097210: + movs r0, 0x3 + strb r0, [r4, 0x4] + b _0809729A + .align 2, 0 +_08097218: .4byte 0x000011f2 +_0809721C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0809722C + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809722C: .4byte sub_8097594 +_08097230: + movs r0, 0x5 + bl PlaySE + ldr r0, _08097240 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097240: .4byte sub_8097788 +_08097244: + movs r0, 0x5 + bl PlaySE + ldr r0, _08097254 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097254: .4byte sub_80977E4 +_08097258: + movs r0, 0x20 + bl PlaySE + movs r0, 0xD + b _08097274 +_08097262: + movs r0, 0x20 + bl PlaySE + movs r0, 0x11 + b _08097274 +_0809726C: + movs r0, 0x20 + bl PlaySE + movs r0, 0x16 +_08097274: + bl sub_8098898 + ldr r1, _08097280 + movs r0, 0x5 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_08097280: .4byte 0x02000000 +_08097284: + ldr r0, _080972A0 + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0809729A + bl sub_8098A5C + ldr r0, _080972A4 + bl sub_8096BE0 +_0809729A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080972A0: .4byte gMain +_080972A4: .4byte sub_8096C84 + thumb_func_end sub_8097078 + + thumb_func_start sub_80972A8 +sub_80972A8: @ 80972A8 + push {r4,lr} + ldr r4, _080972B8 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080972BC + cmp r0, 0x1 + beq _080972CA + b _080972F2 + .align 2, 0 +_080972B8: .4byte 0x02000000 +_080972BC: + movs r0, 0 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080972F2 +_080972CA: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _080972F2 + ldr r0, _080972E4 + ldrb r0, [r0] + cmp r0, 0 + beq _080972EC + ldr r0, _080972E8 + bl sub_8096BE0 + b _080972F2 + .align 2, 0 +_080972E4: .4byte gUnknown_0203847C +_080972E8: .4byte sub_8097858 +_080972EC: + ldr r0, _080972F8 + bl sub_8096BE0 +_080972F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080972F8: .4byte sub_8096C84 + thumb_func_end sub_80972A8 + + thumb_func_start sub_80972FC +sub_80972FC: @ 80972FC + push {r4,lr} + ldr r4, _0809730C + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08097310 + cmp r0, 0x1 + beq _0809731E + b _08097346 + .align 2, 0 +_0809730C: .4byte 0x02000000 +_08097310: + movs r0, 0x1 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097346 +_0809731E: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097346 + ldr r0, _08097338 + ldrb r0, [r0] + cmp r0, 0 + beq _08097340 + ldr r0, _0809733C + bl sub_8096BE0 + b _08097346 + .align 2, 0 +_08097338: .4byte gUnknown_0203847C +_0809733C: .4byte sub_8097858 +_08097340: + ldr r0, _0809734C + bl sub_8096BE0 +_08097346: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809734C: .4byte sub_8096C84 + thumb_func_end sub_80972FC + + thumb_func_start c3_0808DC50 +c3_0808DC50: @ 8097350 + push {r4,lr} + ldr r4, _08097360 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08097364 + cmp r0, 0x1 + beq _08097372 + b _08097386 + .align 2, 0 +_08097360: .4byte 0x02000000 +_08097364: + movs r0, 0x2 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097386 +_08097372: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097386 + bl BoxSetMosaic + ldr r0, _0809738C + bl sub_8096BE0 +_08097386: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809738C: .4byte sub_8096C84 + thumb_func_end c3_0808DC50 + + thumb_func_start sub_8097390 +sub_8097390: @ 8097390 + push {lr} + ldr r0, _080973A4 + ldrb r0, [r0, 0x4] + cmp r0, 0x5 + bhi _08097462 + lsls r0, 2 + ldr r1, _080973A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080973A4: .4byte 0x02000000 +_080973A8: .4byte _080973AC + .align 2, 0 +_080973AC: + .4byte _080973C4 + .4byte _080973FC + .4byte _0809741C + .4byte _0809742C + .4byte _0809743E + .4byte _0809745C +_080973C4: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _080973E4 + movs r0, 0xE + bl sub_8098898 + ldr r1, _080973E0 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_080973E0: .4byte 0x02000000 +_080973E4: + bl sub_809B0E0 + movs r0, 0 + bl sub_809B100 + ldr r1, _080973F8 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_080973F8: .4byte 0x02000000 +_080973FC: + ldr r0, _08097414 + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097462 + bl sub_8098A5C + ldr r0, _08097418 + bl sub_8096BE0 + b _08097462 + .align 2, 0 +_08097414: .4byte gMain +_08097418: .4byte sub_8096C84 +_0809741C: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + bl sub_809880C + b _0809744C +_0809742C: + bl sub_8098830 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + movs r0, 0x1 + bl sub_809B100 + b _0809744C +_0809743E: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + bl sub_80987DC +_0809744C: + ldr r1, _08097458 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_08097458: .4byte 0x02000000 +_0809745C: + ldr r0, _08097468 + bl sub_8096BE0 +_08097462: + pop {r0} + bx r0 + .align 2, 0 +_08097468: .4byte sub_8097004 + thumb_func_end sub_8097390 + + thumb_func_start sub_809746C +sub_809746C: @ 809746C + push {r4,lr} + ldr r0, _08097484 + ldrb r0, [r0, 0x4] + cmp r0, 0x4 + bls _08097478 + b _08097584 +_08097478: + lsls r0, 2 + ldr r1, _08097488 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097484: .4byte 0x02000000 +_08097488: .4byte _0809748C + .align 2, 0 +_0809748C: + .4byte _080974A0 + .4byte _080974D8 + .4byte _08097534 + .4byte _08097548 + .4byte _0809756C +_080974A0: + movs r0, 0x6 + bl sub_8098898 + ldr r4, _080974C8 + ldr r2, _080974CC + adds r0, r4, 0 + movs r1, 0x7 + movs r3, 0x3 + bl sub_8096264 + ldr r0, _080974D0 + ldrb r0, [r0] + bl sub_809634C + ldr r0, _080974D4 + adds r4, r0 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097584 + .align 2, 0 +_080974C8: .4byte 0x02002370 +_080974CC: .4byte 0x0000daca +_080974D0: .4byte gUnknown_0203847E +_080974D4: .4byte 0xffffdc90 +_080974D8: + bl sub_8096368 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xC8 + beq _08097584 + cmp r4, 0xC9 + bne _080974F6 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + b _0809755E +_080974F6: + adds r0, r4, 0 + bl sub_809B62C + lsls r0, 24 + cmp r0, 0 + beq _08097518 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + ldr r1, _08097514 + movs r0, 0x2 + b _08097522 + .align 2, 0 +_08097514: .4byte 0x02000000 +_08097518: + movs r0, 0x8 + bl sub_8098898 + ldr r1, _0809752C + movs r0, 0x4 +_08097522: + strb r0, [r1, 0x4] + ldr r0, _08097530 + strb r4, [r0] + b _08097584 + .align 2, 0 +_0809752C: .4byte 0x02000000 +_08097530: .4byte gUnknown_0203847E +_08097534: + bl party_compaction + bl sub_8099310 + ldr r1, _08097544 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + b _08097582 + .align 2, 0 +_08097544: .4byte 0x02000000 +_08097548: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _08097584 + bl sub_809B6BC + bl BoxSetMosaic + bl sub_80987DC +_0809755E: + ldr r0, _08097568 + bl sub_8096BE0 + b _08097584 + .align 2, 0 +_08097568: .4byte sub_8096C84 +_0809756C: + ldr r0, _0809758C + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08097584 + movs r0, 0x6 + bl sub_8098898 + ldr r1, _08097590 + movs r0, 0x1 +_08097582: + strb r0, [r1, 0x4] +_08097584: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809758C: .4byte gMain +_08097590: .4byte 0x02000000 + thumb_func_end sub_809746C + + thumb_func_start sub_8097594 +sub_8097594: @ 8097594 + push {r4,lr} + ldr r0, _080975AC + ldrb r0, [r0, 0x4] + cmp r0, 0xD + bls _080975A0 + b _0809777A +_080975A0: + lsls r0, 2 + ldr r1, _080975B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080975AC: .4byte 0x02000000 +_080975B0: .4byte _080975B4 + .align 2, 0 +_080975B4: + .4byte _080975EC + .4byte _08097600 + .4byte _0809763A + .4byte _0809766E + .4byte _0809767A + .4byte _08097690 + .4byte _080976C8 + .4byte _080976E0 + .4byte _080976EC + .4byte _080976F0 + .4byte _08097704 + .4byte _08097720 + .4byte _08097732 + .4byte _08097764 +_080975EC: + movs r0, 0x9 + bl sub_8098898 + movs r0, 0x1 + bl sub_8098A38 + ldr r1, _0809761C + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] +_08097600: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0809762C + cmp r1, 0 + bgt _08097620 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097626 + b _0809777A + .align 2, 0 +_0809761C: .4byte 0x02000000 +_08097620: + cmp r1, 0x1 + beq _08097626 + b _0809777A +_08097626: + bl sub_8098A5C + b _080976E0 +_0809762C: + bl sub_8098A5C + bl sub_809B7D4 + bl sub_809B6DC + b _08097744 +_0809763A: + bl sub_809B960 + bl sub_809B734 + lsls r0, 24 + cmp r0, 0 + beq _0809764A + b _0809777A +_0809764A: + ldr r4, _08097650 + b _0809765A + .align 2, 0 +_08097650: .4byte 0x02000000 +_08097654: + cmp r0, 0 + bne _0809765A + b _08097758 +_0809765A: + bl sub_809B960 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08097654 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809777A +_0809766E: + bl sub_809B760 + bl sub_809801C + movs r0, 0xA + b _08097740 +_0809767A: + ldr r0, _0809768C + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08097688 + b _0809777A +_08097688: + movs r0, 0xB + b _08097740 + .align 2, 0 +_0809768C: .4byte gMain +_08097690: + ldr r0, _080976B4 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + ldr r0, _080976B8 + ldrb r0, [r0] + cmp r0, 0 + beq _080976BC + bl party_compaction + bl sub_8099310 + b _08097744 + .align 2, 0 +_080976B4: .4byte gMain +_080976B8: .4byte gUnknown_0203847C +_080976BC: + ldr r1, _080976C4 + movs r0, 0x7 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_080976C4: .4byte 0x02000000 +_080976C8: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _0809777A + bl sub_809B440 + bl BoxSetMosaic + bl sub_80987DC + b _08097744 +_080976E0: + ldr r0, _080976E8 + bl sub_8096BE0 + b _0809777A + .align 2, 0 +_080976E8: .4byte sub_8096C84 +_080976EC: + movs r0, 0xA + b _08097740 +_080976F0: + ldr r0, _08097700 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + movs r0, 0x15 + b _08097740 + .align 2, 0 +_08097700: .4byte gMain +_08097704: + ldr r0, _0809771C + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + bl sub_8099958 + b _08097744 + .align 2, 0 +_0809771C: .4byte gMain +_08097720: + bl sub_8099990 + lsls r0, 24 + cmp r0, 0 + bne _0809777A + bl sub_809B7AC + movs r0, 0x13 + b _08097740 +_08097732: + ldr r0, _08097750 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + movs r0, 0x14 +_08097740: + bl sub_8098898 +_08097744: + ldr r1, _08097754 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_08097750: .4byte gMain +_08097754: .4byte 0x02000000 +_08097758: + ldr r1, _08097760 + movs r0, 0x8 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_08097760: .4byte 0x02000000 +_08097764: + ldr r0, _08097780 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + ldr r0, _08097784 + bl sub_8096BE0 +_0809777A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097780: .4byte gMain +_08097784: .4byte sub_8096C84 + thumb_func_end sub_8097594 + + thumb_func_start sub_8097788 +sub_8097788: @ 8097788 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0809779C + ldrb r4, [r5, 0x4] + cmp r4, 0 + beq _080977A0 + cmp r4, 0x1 + beq _080977BC + b _080977D4 + .align 2, 0 +_0809779C: .4byte 0x02000000 +_080977A0: + bl sub_809BC18 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _080977D4 +_080977BC: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080977D4 + ldr r0, _080977DC + strb r1, [r0] + strb r1, [r5, 0x6] + ldr r0, _080977E0 + bl SetMainCallback2 +_080977D4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080977DC: .4byte gUnknown_0203847F +_080977E0: .4byte sub_8096B5C + thumb_func_end sub_8097788 + + thumb_func_start sub_80977E4 +sub_80977E4: @ 80977E4 + push {r4,lr} + ldr r4, _080977F4 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080977F8 + cmp r0, 0x1 + beq _08097824 + b _0809784C + .align 2, 0 +_080977F4: .4byte 0x02000000 +_080977F8: + movs r0, 0xC + bl sub_8098898 + ldr r0, _08097820 + adds r2, r4, r0 + ldrb r1, [r2] + movs r3, 0x96 + lsls r3, 5 + adds r0, r4, r3 + strb r1, [r0] + ldrb r0, [r2] + movs r1, 0xB0 + movs r2, 0x10 + bl sub_80F7418 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809784C + .align 2, 0 +_08097820: .4byte 0x000011f7 +_08097824: + bl sub_80F7500 + lsls r0, 24 + cmp r0, 0 + bne _0809784C + bl sub_80F7470 + bl sub_8098A5C + movs r1, 0x96 + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_809BDD8 + bl sub_809801C + ldr r0, _08097854 + bl sub_8096BE0 +_0809784C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097854: .4byte sub_8096C84 + thumb_func_end sub_80977E4 + + thumb_func_start sub_8097858 +sub_8097858: @ 8097858 + push {r4,lr} + ldr r4, _08097868 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _0809786C + cmp r0, 0x1 + beq _0809787C + b _08097890 + .align 2, 0 +_08097868: .4byte 0x02000000 +_0809786C: + bl party_compaction + bl sub_8099310 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097890 +_0809787C: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _08097890 + bl sub_80987DC + ldr r0, _08097898 + bl sub_8096BE0 +_08097890: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097898: .4byte sub_8096C84 + thumb_func_end sub_8097858 + + thumb_func_start sub_809789C +sub_809789C: @ 809789C + push {r4,lr} + ldr r4, _080978AC + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080978B0 + cmp r0, 0x1 + beq _080978C2 + b _08097968 + .align 2, 0 +_080978AC: .4byte 0x02000000 +_080978B0: + movs r0, 0x1 + bl sub_8098898 + bl sub_809CE84 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097968 +_080978C2: + bl sub_809CF30 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bhi _08097968 + lsls r0, 2 + ldr r1, _080978DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080978DC: .4byte _080978E0 + .align 2, 0 +_080978E0: + .4byte _08097914 + .4byte _08097914 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097958 + .4byte _08097940 + .4byte _0809792C +_08097914: + movs r0, 0x1 + bl sub_809A860 + bl sub_8098A5C + ldr r0, _08097928 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_08097928: .4byte sub_8096C84 +_0809792C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0809793C + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_0809793C: .4byte sub_8097B44 +_08097940: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097954 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_08097954: .4byte sub_8097974 +_08097958: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097970 + bl sub_8096BE0 +_08097968: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097970: .4byte sub_8097A64 + thumb_func_end sub_809789C + + thumb_func_start sub_8097974 +sub_8097974: @ 8097974 + push {r4,r5,lr} + ldr r5, _08097988 + ldrb r0, [r5, 0x4] + cmp r0, 0x1 + beq _080979A2 + cmp r0, 0x1 + bgt _0809798C + cmp r0, 0 + beq _08097996 + b _08097A5A + .align 2, 0 +_08097988: .4byte 0x02000000 +_0809798C: + cmp r0, 0x2 + beq _080979FC + cmp r0, 0x3 + beq _08097A44 + b _08097A5A +_08097996: + bl sub_8098A80 + movs r0, 0x2 + bl sub_8098898 + b _08097A3C +_080979A2: + bl sub_809CF30 + ldr r1, _080979CC + adds r4, r5, r1 + strh r0, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080979D4 + movs r0, 0x1 + bl sub_809A860 + bl sub_8098A5C + ldr r0, _080979D0 + bl sub_8096BE0 + b _08097A5A + .align 2, 0 +_080979CC: .4byte 0x00000d5e +_080979D0: .4byte sub_8096C84 +_080979D4: + cmp r0, r1 + blt _08097A5A + cmp r0, 0xF + bgt _08097A5A + cmp r0, 0xC + blt _08097A5A + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + subs r0, 0xC + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + bl sub_8098AA8 + movs r0, 0x3 + bl sub_8098898 + b _08097A3C +_080979FC: + bl sub_809CF30 + movs r1, 0xD6 + lsls r1, 4 + adds r4, r5, r1 + strh r0, [r4] + movs r0, 0 + ldrsh r1, [r4, r0] + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08097A5A + adds r0, 0x1 + cmp r1, r0 + bne _08097A24 + bl sub_8098A5C + movs r0, 0 + strb r0, [r5, 0x4] + b _08097A5A +_08097A24: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldrh r0, [r4] + subs r0, 0x10 + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + bl sub_8099DCC +_08097A3C: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097A5A +_08097A44: + bl sub_8099E08 + lsls r0, 24 + cmp r0, 0 + bne _08097A5A + movs r0, 0x1 + bl sub_809A860 + ldr r0, _08097A60 + bl sub_8096BE0 +_08097A5A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097A60: .4byte sub_8096C84 + thumb_func_end sub_8097974 + + thumb_func_start sub_8097A64 +sub_8097A64: @ 8097A64 + push {r4,r5,lr} + ldr r5, _08097A78 + ldrb r0, [r5, 0x4] + cmp r0, 0x1 + beq _08097AB0 + cmp r0, 0x1 + bgt _08097A7C + cmp r0, 0 + beq _08097A86 + b _08097B32 + .align 2, 0 +_08097A78: .4byte 0x02000000 +_08097A7C: + cmp r0, 0x2 + beq _08097B00 + cmp r0, 0x3 + beq _08097B18 + b _08097B32 +_08097A86: + movs r0, 0x5 + bl sub_8098898 + ldr r1, _08097AA4 + adds r0, r5, r1 + ldr r2, _08097AA8 + movs r1, 0x7 + movs r3, 0x3 + bl sub_8096264 + ldr r0, _08097AAC + ldrb r0, [r0] + bl sub_809634C + b _08097B0A + .align 2, 0 +_08097AA4: .4byte 0x00002370 +_08097AA8: .4byte 0x0000daca +_08097AAC: .4byte gPokemonStorage +_08097AB0: + bl sub_8096368 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08097AF4 + adds r4, r5, r2 + strh r0, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0xC8 + beq _08097B32 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0xC9 + beq _08097AE4 + adds r1, r0, 0 + ldr r0, _08097AF8 + ldrb r0, [r0] + cmp r1, r0 + bne _08097B0A +_08097AE4: + movs r0, 0x1 + bl sub_809A860 + ldr r0, _08097AFC + bl sub_8096BE0 + b _08097B32 + .align 2, 0 +_08097AF4: .4byte 0x000008b2 +_08097AF8: .4byte gPokemonStorage +_08097AFC: .4byte sub_8096C84 +_08097B00: + ldr r1, _08097B14 + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_8099C70 +_08097B0A: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097B32 + .align 2, 0 +_08097B14: .4byte 0x000008b2 +_08097B18: + bl sub_8099D34 + lsls r0, 24 + cmp r0, 0 + bne _08097B32 + ldr r1, _08097B38 + ldr r2, _08097B3C + adds r0, r5, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, _08097B40 + bl sub_8096BE0 +_08097B32: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B38: .4byte gPokemonStorage +_08097B3C: .4byte 0x000008b2 +_08097B40: .4byte sub_8096C84 + thumb_func_end sub_8097A64 + + thumb_func_start sub_8097B44 +sub_8097B44: @ 8097B44 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _08097B58 + ldrb r4, [r5, 0x4] + cmp r4, 0 + beq _08097B5C + cmp r4, 0x1 + beq _08097B78 + b _08097B8E + .align 2, 0 +_08097B58: .4byte 0x02000000 +_08097B5C: + bl sub_809BB90 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097B8E +_08097B78: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08097B8E + ldr r0, _08097B98 + strb r4, [r0] + strb r4, [r5, 0x6] + ldr r0, _08097B9C + bl SetMainCallback2 +_08097B8E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B98: .4byte gUnknown_0203847F +_08097B9C: .4byte sub_8096B5C + thumb_func_end sub_8097B44 + + thumb_func_start sub_8097BA0 +sub_8097BA0: @ 8097BA0 + push {r4,lr} + ldr r0, _08097BB8 + ldrb r1, [r0, 0x4] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08097BAE + b _08097CB0 +_08097BAE: + lsls r0, r1, 2 + ldr r1, _08097BBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097BB8: .4byte 0x02000000 +_08097BBC: .4byte _08097BC0 + .align 2, 0 +_08097BC0: + .4byte _08097BD4 + .4byte _08097C18 + .4byte _08097C2C + .4byte _08097C74 + .4byte _08097C98 +_08097BD4: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08097BF8 + movs r0, 0x20 + bl PlaySE + movs r0, 0xF + bl sub_8098898 + ldr r1, _08097BF4 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097BF4: .4byte 0x02000000 +_08097BF8: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_8098898 + movs r0, 0 + bl sub_8098A38 + ldr r1, _08097C14 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097C14: .4byte 0x02000000 +_08097C18: + ldr r0, _08097C28 + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097CB0 + b _08097C4A + .align 2, 0 +_08097C28: .4byte gMain +_08097C2C: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08097C5C + cmp r1, 0 + bgt _08097C46 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097C4A + b _08097CB0 +_08097C46: + cmp r1, 0x1 + bne _08097CB0 +_08097C4A: + bl sub_8098A5C + ldr r0, _08097C58 + bl sub_8096BE0 + b _08097CB0 + .align 2, 0 +_08097C58: .4byte sub_8096C84 +_08097C5C: + movs r0, 0x3 + bl PlaySE + bl sub_8098A5C + ldr r1, _08097C70 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097C70: .4byte 0x02000000 +_08097C74: + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08097C94 + strh r0, [r4, 0xE] + movs r0, 0x14 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5E38 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097CB0 + .align 2, 0 +_08097C94: .4byte 0x0000dad0 +_08097C98: + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08097CB0 + bl CalculatePlayerPartyCount + ldr r1, _08097CB8 + strb r0, [r1] + ldr r0, _08097CBC + bl SetMainCallback2 +_08097CB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097CB8: .4byte gPlayerPartyCount +_08097CBC: .4byte sub_80961A8 + thumb_func_end sub_8097BA0 + + thumb_func_start sub_8097CC0 +sub_8097CC0: @ 8097CC0 + push {r4,lr} + ldr r0, _08097CD8 + ldrb r1, [r0, 0x4] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08097CCE + b _08097DD0 +_08097CCE: + lsls r0, r1, 2 + ldr r1, _08097CDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097CD8: .4byte 0x02000000 +_08097CDC: .4byte _08097CE0 + .align 2, 0 +_08097CE0: + .4byte _08097CF4 + .4byte _08097D38 + .4byte _08097D4C + .4byte _08097D94 + .4byte _08097DB8 +_08097CF4: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08097D18 + movs r0, 0x20 + bl PlaySE + movs r0, 0xF + bl sub_8098898 + ldr r1, _08097D14 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D14: .4byte 0x02000000 +_08097D18: + movs r0, 0x5 + bl PlaySE + movs r0, 0x12 + bl sub_8098898 + movs r0, 0 + bl sub_8098A38 + ldr r1, _08097D34 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D34: .4byte 0x02000000 +_08097D38: + ldr r0, _08097D48 + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097DD0 + b _08097D6C + .align 2, 0 +_08097D48: .4byte gMain +_08097D4C: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08097D6C + cmp r1, 0 + bgt _08097D66 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097D7C + b _08097DD0 +_08097D66: + cmp r1, 0x1 + beq _08097D7C + b _08097DD0 +_08097D6C: + bl sub_8098A5C + ldr r0, _08097D78 + bl sub_8096BE0 + b _08097DD0 + .align 2, 0 +_08097D78: .4byte sub_8096C84 +_08097D7C: + movs r0, 0x3 + bl PlaySE + bl sub_8098A5C + ldr r1, _08097D90 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D90: .4byte 0x02000000 +_08097D94: + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08097DB4 + strh r0, [r4, 0xE] + movs r0, 0x14 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5E38 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097DD0 + .align 2, 0 +_08097DB4: .4byte 0x0000dad0 +_08097DB8: + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08097DD0 + bl CalculatePlayerPartyCount + ldr r1, _08097DD8 + strb r0, [r1] + ldr r0, _08097DDC + bl SetMainCallback2 +_08097DD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097DD8: .4byte gPlayerPartyCount +_08097DDC: .4byte sub_80961A8 + thumb_func_end sub_8097CC0 + + thumb_func_start sub_8097DE0 +sub_8097DE0: @ 8097DE0 + push {lr} + ldr r1, _08097E1C + movs r0, 0 + strb r0, [r1, 0x7] + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + ldr r1, _08097E20 + ldr r2, _08097E24 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08097E28 + ldr r2, _08097E2C + ldr r0, _08097E30 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08097E34 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _08097E38 + ldr r1, _08097E3C + bl LZ77UnCompVram + ldr r0, _08097E40 + movs r1, 0xD0 + movs r2, 0x10 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08097E1C: .4byte 0x02000000 +_08097E20: .4byte REG_BG3CNT +_08097E24: .4byte 0x00001e0f +_08097E28: .4byte gPokemonStorageScrollingBGTile +_08097E2C: .4byte 0x0600e000 +_08097E30: .4byte 0x040000d4 +_08097E34: .4byte 0x80000010 +_08097E38: .4byte gPokemonStorageScrollingBGTilemap +_08097E3C: .4byte 0x0600f000 +_08097E40: .4byte gPokemonStorageScrollingBGPalette + thumb_func_end sub_8097DE0 + + thumb_func_start sub_8097E44 +sub_8097E44: @ 8097E44 + push {lr} + ldr r1, _08097E6C + ldrb r0, [r1, 0x7] + adds r0, 0x1 + strb r0, [r1, 0x7] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _08097E66 + movs r0, 0 + strb r0, [r1, 0x7] + ldrh r0, [r1, 0x8] + subs r0, 0x1 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08097E66: + pop {r0} + bx r0 + .align 2, 0 +_08097E6C: .4byte 0x02000000 + thumb_func_end sub_8097E44 + + thumb_func_start sub_8097E70 +sub_8097E70: @ 8097E70 + push {r4,lr} + sub sp, 0x10 + ldr r0, _08097F2C + ldr r1, _08097F30 + bl LZ77UnCompVram + ldr r0, _08097F34 + ldr r4, _08097F38 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r0, _08097F3C + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + movs r1, 0x14 + str r1, [sp, 0xC] + movs r1, 0 + movs r2, 0 + adds r3, r4, 0 + bl sub_809D034 + ldr r0, _08097F40 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F44 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F48 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F4C + movs r1, 0xC0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _08097F50 + adds r0, r4, 0 + movs r1, 0xF1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xF2 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x8 + movs r1, 0xF3 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x16 + movs r1, 0xF4 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x12 + movs r1, 0xF6 + movs r2, 0x4 + bl LoadPalette + adds r4, 0x2 + adds r0, r4, 0 + movs r1, 0xFF + movs r2, 0x2 + bl LoadPalette + ldr r0, _08097F54 + bl LoadSpritePalette + bl sub_80980D4 + bl sub_8097F58 + bl sub_8097FB8 + bl sub_809801C + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097F2C: .4byte gPSSMenuHeader_Gfx +_08097F30: .4byte 0x06005000 +_08097F34: .4byte gPSSMenuHeader_Tilemap +_08097F38: .4byte gUnknown_02039760 +_08097F3C: .4byte 0x06007800 +_08097F40: .4byte gPSSMenu1_Pal +_08097F44: .4byte gPSSMenu2_Pal +_08097F48: .4byte gUnknown_083B6D74 +_08097F4C: .4byte gUnknown_083B6D94 +_08097F50: .4byte gUnknownPalette_81E6692+0x2 +_08097F54: .4byte gWaveformSpritePalette + thumb_func_end sub_8097E70 + + thumb_func_start sub_8097F58 +sub_8097F58: @ 8097F58 + push {r4,lr} + ldr r1, _08097FA4 + movs r0, 0xD + movs r2, 0 + bl sub_80F7940 + ldr r4, _08097FA8 + ldr r1, _08097FAC + adds r3, r4, r1 + str r0, [r3] + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + ldr r0, [r3] + adds r0, 0x43 + movs r1, 0x1 + strb r1, [r0] + ldr r1, [r3] + movs r0, 0x28 + strh r0, [r1, 0x20] + ldr r1, [r3] + movs r0, 0x95 + strh r0, [r1, 0x22] + movs r0, 0xD + bl GetSpriteTileStartByTag + ldr r1, _08097FB0 + adds r4, r1 + lsls r0, 16 + lsrs r0, 11 + ldr r1, _08097FB4 + adds r0, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097FA4: .4byte 0x0000dace +_08097FA8: .4byte 0x02000000 +_08097FAC: .4byte 0x000012ac +_08097FB0: .4byte 0x000012b8 +_08097FB4: .4byte 0x06010000 + thumb_func_end sub_8097F58 + + thumb_func_start sub_8097FB8 +sub_8097FB8: @ 8097FB8 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _0809800C + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + movs r4, 0 + ldr r5, _08098010 +_08097FD0: + lsls r1, r4, 6 + subs r1, r4 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + ldr r0, _08098014 + movs r2, 0x9 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r4, 2 + adds r2, r5 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08098018 + adds r1, r0 + str r1, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08097FD0 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809800C: .4byte gWaveformSpriteSheet +_08098010: .4byte 0x020012b0 +_08098014: .4byte gSpriteTemplate_83B6EFC +_08098018: .4byte gSprites + thumb_func_end sub_8097FB8 + + thumb_func_start sub_809801C +sub_809801C: @ 809801C + push {lr} + ldr r1, _0809803C + ldr r2, _08098040 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, 0x4 + adds r1, r2 + ldr r1, [r1] + bl sub_80981F0 + bl sub_80982B4 + bl sub_8098350 + pop {r0} + bx r0 + .align 2, 0 +_0809803C: .4byte 0x02000000 +_08098040: .4byte 0x000011f0 + thumb_func_end sub_809801C + + thumb_func_start BoxSetMosaic +BoxSetMosaic: @ 8098044 + push {lr} + bl sub_809801C + ldr r0, _08098084 + movs r1, 0x9C + lsls r1, 6 + adds r3, r0, r1 + ldr r2, [r3] + cmp r2, 0 + beq _08098080 + ldrb r0, [r2, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r3] + movs r0, 0xA + strh r0, [r1, 0x2E] + ldr r1, [r3] + movs r0, 0x1 + strh r0, [r1, 0x30] + ldr r1, [r3] + ldr r0, _08098088 + str r0, [r1, 0x1C] + ldr r2, _0809808C + ldr r0, [r3] + ldrh r0, [r0, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] +_08098080: + pop {r0} + bx r0 + .align 2, 0 +_08098084: .4byte 0x02000000 +_08098088: .4byte sub_8098090 +_0809808C: .4byte REG_MOSAIC + thumb_func_end BoxSetMosaic + + thumb_func_start sub_8098090 +sub_8098090: @ 8098090 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + ldrh r1, [r3, 0x30] + subs r0, r1 + strh r0, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bge _080980A6 + movs r0, 0 + strh r0, [r3, 0x2E] +_080980A6: + ldr r2, _080980CC + ldrh r0, [r3, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080980C8 + ldrb r0, [r3, 0x1] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r3, 0x1] + ldr r0, _080980D0 + str r0, [r3, 0x1C] +_080980C8: + pop {r0} + bx r0 + .align 2, 0 +_080980CC: .4byte REG_MOSAIC +_080980D0: .4byte SpriteCallbackDummy + thumb_func_end sub_8098090 + + thumb_func_start sub_80980D4 +sub_80980D4: @ 80980D4 + push {r4,r5,lr} + sub sp, 0x28 + ldr r0, _08098150 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _08098154 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _08098158 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r1, 0 + add r5, sp, 0x18 + ldr r4, _0809815C + movs r3, 0 + ldr r2, _08098160 +_08098102: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _08098102 + movs r1, 0 + ldr r3, _08098164 + movs r2, 0 +_08098116: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _08098116 + ldr r0, _08098168 + movs r1, 0x9C + lsls r1, 6 + adds r0, r1 + movs r1, 0 + str r1, [r0] + adds r0, r5, 0 + bl LoadSpriteSheet + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080981C4 + add r0, sp, 0x20 + bl LoadSpritePalette + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _080981C4 + b _080981B0 + .align 2, 0 +_08098150: .4byte gUnknown_083B6DCC +_08098154: .4byte gUnknown_083B6DD4 +_08098158: .4byte gSpriteTemplate_83B6DDC +_0809815C: .4byte 0x02002784 +_08098160: .4byte 0x000007ff +_08098164: .4byte 0x02002704 +_08098168: .4byte 0x02000000 +_0809816C: + ldr r2, _0809819C + movs r0, 0x9C + lsls r0, 6 + adds r3, r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080981A0 + adds r0, r1 + str r0, [r3] + lsls r0, r4, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + ldr r3, _080981A4 + adds r1, r2, r3 + strh r0, [r1] + ldr r4, _080981A8 + adds r2, r4 + lsls r0, r5, 5 + ldr r1, _080981AC + adds r0, r1 + str r0, [r2] + b _080981C4 + .align 2, 0 +_0809819C: .4byte 0x02000000 +_080981A0: .4byte gSprites +_080981A4: .4byte 0x000026fa +_080981A8: .4byte 0x000026fc +_080981AC: .4byte 0x06010000 +_080981B0: + mov r0, sp + movs r1, 0x28 + movs r2, 0x30 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _0809816C +_080981C4: + ldr r0, _080981E8 + movs r2, 0x9C + lsls r2, 6 + adds r0, r2 + ldr r0, [r0] + cmp r0, 0 + bne _080981DE + movs r0, 0x2 + bl FreeSpriteTilesByTag + ldr r0, _080981EC + bl FreeSpritePaletteByTag +_080981DE: + add sp, 0x28 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080981E8: .4byte 0x02000000 +_080981EC: .4byte 0x0000dac7 + thumb_func_end sub_80980D4 + + thumb_func_start sub_80981F0 +sub_80981F0: @ 80981F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r7, r1, 0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r6, _08098274 + movs r0, 0x9C + lsls r0, 6 + adds r0, r6 + mov r8, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080982A6 + cmp r4, 0 + beq _0809829C + lsls r0, r4, 3 + ldr r1, _08098278 + adds r0, r1 + ldr r2, _0809827C + lsls r1, r4, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _08098280 + adds r3, r6, r2 + ldr r2, _08098284 + adds r5, r6, r2 + str r5, [sp] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + movs r2, 0x1 + bl sub_800D334 + ldr r1, _08098288 + adds r0, r6, r1 + ldr r0, [r0] + ldr r2, _0809828C + adds r4, r6, r2 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r1, _08098290 + adds r0, r6, r1 + ldr r1, [r0] + ldr r2, _08098294 + adds r0, r5, 0 + bl CpuSet + ldr r2, _08098298 + adds r0, r6, r2 + ldrh r1, [r0] + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + mov r0, r8 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _080982A6 + .align 2, 0 +_08098274: .4byte 0x02000000 +_08098278: .4byte gMonFrontPicTable +_0809827C: .4byte gMonFrontPicCoords +_08098280: .4byte 0x00004784 +_08098284: .4byte 0x00002784 +_08098288: .4byte 0x000011e8 +_0809828C: .4byte 0x00002704 +_08098290: .4byte 0x000026fc +_08098294: .4byte 0x04000200 +_08098298: .4byte 0x000026fa +_0809829C: + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080982A6: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80981F0 + + thumb_func_start sub_80982B4 +sub_80982B4: @ 80982B4 + push {r4,lr} + ldr r4, _080982E4 + ldr r1, _080982E8 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080982F4 + ldr r2, _080982EC + adds r0, r4, r2 + ldrb r0, [r0] + adds r2, 0xC1 + adds r1, r4, r2 + ldr r1, [r1] + bl sub_80F7A10 + ldr r1, _080982F0 + adds r0, r4, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _08098302 + .align 2, 0 +_080982E4: .4byte 0x02000000 +_080982E8: .4byte 0x000011f0 +_080982EC: .4byte 0x000011f7 +_080982F0: .4byte 0x000012ac +_080982F4: + ldr r2, _08098348 + adds r0, r4, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_08098302: + strb r0, [r1] + movs r0, 0 + movs r1, 0xB + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + ldr r4, _0809834C + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x10 + bl MenuPrint + adds r0, r4, 0 + subs r0, 0x6B + movs r1, 0x1 + movs r2, 0xB + bl MenuPrint + adds r0, r4, 0 + subs r0, 0x46 + movs r1, 0 + movs r2, 0xD + bl MenuPrint + subs r4, 0x21 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08098348: .4byte 0x000012ac +_0809834C: .4byte 0x0200127a + thumb_func_end sub_80982B4 + + thumb_func_start sub_8098350 +sub_8098350: @ 8098350 + push {r4,r5,lr} + sub sp, 0x10 + ldr r5, _080983A0 + ldr r1, _080983A4 + adds r0, r5, r1 + ldrh r2, [r0] + cmp r2, 0 + beq _080983B4 + ldr r0, _080983A8 + ldr r3, _080983AC + movs r1, 0x1 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x1 + movs r2, 0 + bl sub_809D034 + movs r4, 0 + ldr r0, _080983B0 + adds r5, r0 +_08098382: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + lsls r1, r4, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnimIfDifferent + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08098382 + b _080983EC + .align 2, 0 +_080983A0: .4byte 0x02000000 +_080983A4: .4byte 0x000011f0 +_080983A8: .4byte 0x06007800 +_080983AC: .4byte gUnknown_02039760 +_080983B0: .4byte 0x000012b0 +_080983B4: + ldr r0, _080983F4 + ldr r3, _080983F8 + movs r1, 0xA + str r1, [sp] + str r2, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x1 + movs r2, 0 + bl sub_809D034 + movs r4, 0 + ldr r1, _080983FC + adds r5, r1 +_080983D4: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + lsls r1, r4, 25 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080983D4 +_080983EC: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080983F4: .4byte 0x06007800 +_080983F8: .4byte gUnknown_02039760 +_080983FC: .4byte 0x000012b0 + thumb_func_end sub_8098350 + + thumb_func_start sub_8098400 +sub_8098400: @ 8098400 + push {r4,r5,lr} + sub sp, 0x14 + ldr r1, _0809847C + ldr r2, _08098480 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08098484 + ldr r1, _08098488 + bl LZ77UnCompVram + ldr r0, _0809848C + ldr r5, _08098490 + adds r1, r5, 0 + bl LZ77UnCompWram + ldr r0, _08098494 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08098498 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r4, _0809849C + add r1, sp, 0x10 + movs r0, 0 + strh r0, [r1] + ldr r0, _080984A0 + str r1, [r0] + str r4, [r0, 0x4] + ldr r1, _080984A4 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8098780 + ldr r0, _080984A8 + ldrb r0, [r0] + cmp r0, 0 + beq _080984AC + movs r0, 0x1 + bl sub_8098690 + movs r0, 0x1 + bl sub_8099200 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0xC + str r0, [sp, 0x8] + movs r0, 0x16 + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0 + adds r3, r5, 0 + bl sub_809D034 + b _080984CC + .align 2, 0 +_0809847C: .4byte REG_BG1CNT +_08098480: .4byte 0x00000f01 +_08098484: .4byte gPSSMenuMisc_Gfx +_08098488: .4byte 0x06006800 +_0809848C: .4byte gPSSMenuMisc_Tilemap +_08098490: .4byte 0x020000a8 +_08098494: .4byte gPSSMenu3_Pal +_08098498: .4byte gPSSMenu4_Pal +_0809849C: .4byte 0x06007800 +_080984A0: .4byte 0x040000d4 +_080984A4: .4byte 0x81000400 +_080984A8: .4byte gUnknown_0203847C +_080984AC: + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0xC + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0 + adds r3, r5, 0 + bl sub_809D034 + movs r0, 0x1 + bl sub_8098690 +_080984CC: + ldr r0, _080984E0 + ldr r1, _080984E4 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080984E0: .4byte 0x02000000 +_080984E4: .4byte 0x000008af + thumb_func_end sub_8098400 + + thumb_func_start sub_80984E8 +sub_80984E8: @ 80984E8 + push {lr} + ldr r1, _08098510 + ldr r0, _08098514 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x14 + strh r0, [r2] + ldr r0, _08098518 + adds r2, r1, r0 + movs r0, 0x2 + strh r0, [r2] + ldr r0, _0809851C + adds r1, r0 + strb r3, [r1] + movs r0, 0 + bl sub_8099200 + pop {r0} + bx r0 + .align 2, 0 +_08098510: .4byte 0x02000000 +_08098514: .4byte 0x000008a8 +_08098518: .4byte 0x000008aa +_0809851C: .4byte 0x000008ad + thumb_func_end sub_80984E8 + + thumb_func_start sub_8098520 +sub_8098520: @ 8098520 + push {r4,r5,lr} + sub sp, 0x10 + ldr r3, _08098578 + ldr r0, _0809857C + adds r5, r3, r0 + ldrb r0, [r5] + cmp r0, 0x14 + beq _08098592 + ldr r0, _08098580 + adds r1, r3, r0 + ldrh r0, [r1] + subs r0, 0x1 + movs r4, 0 + strh r0, [r1] + ldr r0, _08098584 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + ldr r0, _08098588 + adds r3, 0xA8 + str r4, [sp] + ldrh r1, [r1] + str r1, [sp, 0x4] + movs r1, 0xC + str r1, [sp, 0x8] + ldrh r1, [r2] + str r1, [sp, 0xC] + movs r1, 0xA + movs r2, 0 + bl sub_809D034 + movs r0, 0x8 + bl sub_80994A8 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _0809858C + movs r0, 0x1 + b _08098594 + .align 2, 0 +_08098578: .4byte 0x02000000 +_0809857C: .4byte 0x000008ad +_08098580: .4byte 0x000008a8 +_08098584: .4byte 0x000008aa +_08098588: .4byte 0x06007800 +_0809858C: + ldr r1, _0809859C + movs r0, 0x1 + strb r0, [r1] +_08098592: + movs r0, 0 +_08098594: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809859C: .4byte gUnknown_0203847C + thumb_func_end sub_8098520 + + thumb_func_start add_to_c3_somehow +add_to_c3_somehow: @ 80985A0 + ldr r1, _080985BC + ldr r0, _080985C0 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0 + strh r0, [r2] + ldr r0, _080985C4 + adds r2, r1, r0 + movs r0, 0x16 + strh r0, [r2] + ldr r0, _080985C8 + adds r1, r0 + strb r3, [r1] + bx lr + .align 2, 0 +_080985BC: .4byte 0x02000000 +_080985C0: .4byte 0x000008a8 +_080985C4: .4byte 0x000008aa +_080985C8: .4byte 0x000008ad + thumb_func_end add_to_c3_somehow + + thumb_func_start sub_80985CC +sub_80985CC: @ 80985CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + ldr r3, _08098640 + ldr r0, _08098644 + adds r6, r3, r0 + ldrb r0, [r6] + cmp r0, 0x14 + beq _0809867A + ldr r2, _08098648 + adds r1, r3, r2 + ldrh r0, [r1] + adds r0, 0x1 + movs r2, 0 + mov r9, r2 + strh r0, [r1] + ldr r0, _0809864C + adds r4, r3, r0 + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldr r5, _08098650 + adds r3, 0xA8 + mov r8, r3 + str r2, [sp] + ldrh r0, [r1] + str r0, [sp, 0x4] + movs r7, 0xC + str r7, [sp, 0x8] + ldrh r0, [r4] + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + bl sub_809D034 + ldrh r2, [r4] + movs r4, 0x1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0xA + movs r3, 0xC + bl sub_809D16C + movs r0, 0x8 + negs r0, r0 + bl sub_80994A8 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _08098654 + movs r0, 0x1 + b _0809867C + .align 2, 0 +_08098640: .4byte 0x02000000 +_08098644: .4byte 0x000008ad +_08098648: .4byte 0x000008a8 +_0809864C: .4byte 0x000008aa +_08098650: .4byte 0x06007800 +_08098654: + ldr r0, _0809868C + movs r1, 0 + strb r1, [r0] + bl sub_809954C + bl party_compaction + str r7, [sp] + mov r2, r9 + str r2, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0x15 + movs r2, 0 + mov r3, r8 + bl sub_809D034 +_0809867A: + movs r0, 0 +_0809867C: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809868C: .4byte gUnknown_0203847C + thumb_func_end sub_80985CC + + thumb_func_start sub_8098690 +sub_8098690: @ 8098690 + push {lr} + sub sp, 0x10 + lsls r0, 24 + cmp r0, 0 + beq _080986C0 + ldr r0, _080986B8 + ldr r3, _080986BC + movs r1, 0xC + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x15 + movs r2, 0 + bl sub_809D034 + b _080986DA + .align 2, 0 +_080986B8: .4byte 0x06007800 +_080986BC: .4byte 0x020000a8 +_080986C0: + ldr r0, _080986E0 + ldr r3, _080986E4 + movs r1, 0xC + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + movs r1, 0x15 + movs r2, 0 + bl sub_809D034 +_080986DA: + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080986E0: .4byte 0x06007800 +_080986E4: .4byte 0x020000a8 + thumb_func_end sub_8098690 + + thumb_func_start sub_80986E8 +sub_80986E8: @ 80986E8 + ldr r1, _08098704 + ldr r2, _08098708 + adds r0, r1, r2 + movs r3, 0x1 + strb r3, [r0] + movs r0, 0x8B + lsls r0, 4 + adds r2, r1, r0 + movs r0, 0x1E + strb r0, [r2] + ldr r2, _0809870C + adds r1, r2 + strb r3, [r1] + bx lr + .align 2, 0 +_08098704: .4byte 0x02000000 +_08098708: .4byte 0x000008af +_0809870C: .4byte 0x000008b1 + thumb_func_end sub_80986E8 + + thumb_func_start sub_8098710 +sub_8098710: @ 8098710 + push {lr} + ldr r0, _0809872C + ldr r2, _08098730 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08098728 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + bl sub_8098690 +_08098728: + pop {r0} + bx r0 + .align 2, 0 +_0809872C: .4byte 0x02000000 +_08098730: .4byte 0x000008af + thumb_func_end sub_8098710 + + thumb_func_start sub_8098734 +sub_8098734: @ 8098734 + push {lr} + ldr r2, _08098774 + ldr r1, _08098778 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08098770 + movs r0, 0x8B + lsls r0, 4 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bls _08098770 + movs r0, 0 + strb r0, [r1] + movs r3, 0 + ldr r0, _0809877C + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _08098768 + movs r3, 0x1 +_08098768: + strb r3, [r1] + ldrb r0, [r1] + bl sub_8098690 +_08098770: + pop {r0} + bx r0 + .align 2, 0 +_08098774: .4byte 0x02000000 +_08098778: .4byte 0x000008af +_0809877C: .4byte 0x000008b1 + thumb_func_end sub_8098734 + + thumb_func_start sub_8098780 +sub_8098780: @ 8098780 + push {r4-r6,lr} + sub sp, 0x10 + movs r4, 0x1 + ldr r6, _080987D4 + movs r5, 0x80 + lsls r5, 9 +_0809878C: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080987D8 + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080987A0 + movs r0, 0x1 +_080987A0: + movs r1, 0x10 + cmp r0, 0 + beq _080987A8 + movs r1, 0xC +_080987A8: + lsrs r2, r5, 16 + str r1, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0x7 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0xC0 + lsls r0, 10 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x5 + ble _0809878C + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080987D4: .4byte 0x020000a8 +_080987D8: .4byte gPlayerParty + thumb_func_end sub_8098780 + + thumb_func_start sub_80987DC +sub_80987DC: @ 80987DC + push {lr} + sub sp, 0x10 + bl sub_8098780 + ldr r0, _08098804 + ldr r3, _08098808 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xC + str r1, [sp, 0x8] + movs r1, 0x16 + str r1, [sp, 0xC] + movs r1, 0xA + movs r2, 0 + bl sub_809D034 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_08098804: .4byte 0x06007800 +_08098808: .4byte 0x020000a8 + thumb_func_end sub_80987DC + + thumb_func_start sub_809880C +sub_809880C: @ 809880C + push {lr} + ldr r0, _08098828 + ldr r1, _0809882C + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x6 + bl PlaySE + bl sub_80984E8 + pop {r0} + bx r0 + .align 2, 0 +_08098828: .4byte 0x02000000 +_0809882C: .4byte 0x000008ae + thumb_func_end sub_809880C + + thumb_func_start sub_8098830 +sub_8098830: @ 8098830 + push {r4,r5,lr} + ldr r5, _08098848 + ldr r0, _0809884C + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _08098866 + cmp r0, 0x1 + bgt _08098850 + cmp r0, 0 + beq _08098856 + b _08098890 + .align 2, 0 +_08098848: .4byte 0x02000000 +_0809884C: .4byte 0x000008ae +_08098850: + cmp r0, 0x2 + beq _0809888C + b _08098890 +_08098856: + bl sub_8098520 + lsls r0, 24 + cmp r0, 0 + bne _08098890 + bl sub_809B068 + b _0809887E +_08098866: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _08098890 + ldr r1, _08098888 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0809887E + bl BoxSetMosaic +_0809887E: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08098890 + .align 2, 0 +_08098888: .4byte 0x000011f6 +_0809888C: + movs r0, 0 + b _08098892 +_08098890: + movs r0, 0x1 +_08098892: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8098830 + + thumb_func_start sub_8098898 +sub_8098898: @ 8098898 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _080988C4 + lsls r0, r5, 3 + adds r0, r1 + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bls _080988B8 + b _080989F4 +_080988B8: + lsls r0, 2 + ldr r1, _080988C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080988C4: .4byte gUnknown_083B6DF4 +_080988C8: .4byte _080988CC + .align 2, 0 +_080988CC: + .4byte _080989F4 + .4byte _08098930 + .4byte _080988E8 + .4byte _08098974 + .4byte _08098954 + .4byte _08098910 + .4byte _080989B8 +_080988E8: + ldr r4, _08098904 + ldr r1, _08098908 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _0809890C + adds r4, r0 + adds r0, r2, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_08098904: .4byte 0x02002694 +_08098908: .4byte gUnknown_083B6DF4 +_0809890C: .4byte 0xffffeb66 +_08098910: + ldr r4, _08098928 + ldr r1, _0809892C + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r2, r0, 0 + adds r4, 0x50 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_08098928: .4byte 0x02002694 +_0809892C: .4byte gUnknown_083B6DF4 +_08098930: + ldr r0, _08098948 + ldr r2, _0809894C + adds r1, r0, r2 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08098950 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + b _080989FE + .align 2, 0 +_08098948: .4byte 0x02002694 +_0809894C: .4byte 0xffffeb66 +_08098950: .4byte gUnknown_083B6DF4 +_08098954: + ldr r0, _0809896C + adds r1, r0, 0 + adds r1, 0x50 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08098970 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + b _080989FE + .align 2, 0 +_0809896C: .4byte 0x02002694 +_08098970: .4byte gUnknown_083B6DF4 +_08098974: + ldr r1, _080989AC + lsls r0, r5, 3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r4, r6, r4 + adds r4, 0x1 + ldr r5, _080989B0 + adds r0, r5, 0 + adds r1, r6, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _080989B4 + adds r5, r0 + adds r0, r2, 0 + adds r1, r5, 0 + bl StringCopy + adds r2, r0, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_080989AC: .4byte gUnknown_083B6DF4 +_080989B0: .4byte 0x02002694 +_080989B4: .4byte 0xffffeb66 +_080989B8: + ldr r1, _080989EC + lsls r0, r5, 3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r4, r6, r4 + subs r4, 0x1 + ldr r5, _080989F0 + adds r0, r5, 0 + adds r1, r6, 0 + bl StringCopy + adds r2, r0, 0 + subs r0, r2, 0x1 + adds r5, 0x50 + adds r1, r5, 0 + bl StringCopy + adds r2, r0, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_080989EC: .4byte gUnknown_083B6DF4 +_080989F0: .4byte 0x02002694 +_080989F4: + ldr r0, _08098A2C + ldr r2, _08098A30 + lsls r1, r5, 3 + adds r1, r2 + ldr r1, [r1] +_080989FE: + bl StringCopy + adds r2, r0, 0 + ldr r0, _08098A34 + adds r3, r0, 0 + subs r3, 0x12 + cmp r2, r0 + bcs _08098A18 + movs r1, 0 +_08098A10: + strb r1, [r2] + adds r2, 0x1 + cmp r2, r0 + bcc _08098A10 +_08098A18: + movs r0, 0xFF + strb r0, [r2] + adds r0, r3, 0 + movs r1, 0xB + movs r2, 0x11 + bl MenuPrint + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098A2C: .4byte 0x02002694 +_08098A30: .4byte gUnknown_083B6DF4 +_08098A34: .4byte 0x020026a6 + thumb_func_end sub_8098898 + + thumb_func_start sub_8098A38 +sub_8098A38: @ 8098A38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x17 + movs r1, 0xA + movs r2, 0 + bl DisplayYesNoMenu + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl MoveMenuCursor + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8098A38 + + thumb_func_start sub_8098A5C +sub_8098A5C: @ 8098A5C + push {lr} + bl sub_8072DEC + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x17 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_8098A5C + + thumb_func_start sub_8098A80 +sub_8098A80: @ 8098A80 + push {lr} + bl sub_809CDCC + movs r0, 0xC + bl sub_809CDEC + movs r0, 0xD + bl sub_809CDEC + movs r0, 0xE + bl sub_809CDEC + movs r0, 0xF + bl sub_809CDEC + bl sub_809CE84 + pop {r0} + bx r0 + thumb_func_end sub_8098A80 + + thumb_func_start sub_8098AA8 +sub_8098AA8: @ 8098AA8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_809CDCC + cmp r4, 0x1 + beq _08098AE6 + cmp r4, 0x1 + bgt _08098AC2 + cmp r4, 0 + beq _08098ACC + b _08098B32 +_08098AC2: + cmp r5, 0x2 + beq _08098B00 + cmp r5, 0x3 + beq _08098B1A + b _08098B32 +_08098ACC: + movs r0, 0x10 + bl sub_809CDEC + movs r0, 0x11 + bl sub_809CDEC + movs r0, 0x12 + bl sub_809CDEC + movs r0, 0x13 + bl sub_809CDEC + b _08098B32 +_08098AE6: + movs r0, 0x14 + bl sub_809CDEC + movs r0, 0x15 + bl sub_809CDEC + movs r0, 0x16 + bl sub_809CDEC + movs r0, 0x17 + bl sub_809CDEC + b _08098B32 +_08098B00: + movs r0, 0x18 + bl sub_809CDEC + movs r0, 0x19 + bl sub_809CDEC + movs r0, 0x1A + bl sub_809CDEC + movs r0, 0x1B + bl sub_809CDEC + b _08098B32 +_08098B1A: + movs r0, 0x1C + bl sub_809CDEC + movs r0, 0x1D + bl sub_809CDEC + movs r0, 0x1E + bl sub_809CDEC + movs r0, 0x1F + bl sub_809CDEC +_08098B32: + bl sub_809CE84 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8098AA8 + + thumb_func_start get_preferred_box +get_preferred_box: @ 8098B3C + ldr r0, _08098B44 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08098B44: .4byte gPokemonStorage + thumb_func_end get_preferred_box + + thumb_func_start sub_8098B48 +sub_8098B48: @ 8098B48 + push {r4,r5,lr} + bl sub_809D51C + movs r2, 0 + ldr r1, _08098BD8 + ldr r0, [r1] + ldr r4, _08098BDC + adds r3, r0, r4 + movs r4, 0 + adds r5, r1, 0 +_08098B5C: + lsls r0, r2, 1 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _08098B5C + movs r2, 0 + ldr r0, _08098BD8 + ldr r0, [r0] + movs r1, 0x89 + lsls r1, 5 + adds r3, r0, r1 + movs r1, 0 +_08098B7A: + lsls r0, r2, 1 + adds r0, r3, r0 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _08098B7A + movs r2, 0 + ldr r0, _08098BD8 + ldr r0, [r0] + ldr r4, _08098BE0 + adds r3, r0, r4 + movs r1, 0 +_08098B96: + lsls r0, r2, 2 + adds r0, r3, r0 + str r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _08098B96 + movs r2, 0 + ldr r0, _08098BD8 + ldr r0, [r0] + ldr r1, _08098BE4 + adds r3, r0, r1 + movs r1, 0 +_08098BB2: + lsls r0, r2, 2 + adds r0, r3, r0 + str r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08098BB2 + ldr r0, [r5] + ldr r2, _08098BE8 + adds r1, r0, r2 + movs r2, 0 + str r2, [r1] + ldr r4, _08098BEC + adds r0, r4 + strh r2, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08098BD8: .4byte gUnknown_083B6DB4 +_08098BDC: .4byte 0x000010d0 +_08098BE0: .4byte 0x00001038 +_08098BE4: .4byte 0x00001050 +_08098BE8: .4byte 0x00001034 +_08098BEC: .4byte 0x00000d5c + thumb_func_end sub_8098B48 + + thumb_func_start sub_8098BF0 +sub_8098BF0: @ 8098BF0 + push {r4-r6,lr} + sub sp, 0x8 + ldr r0, _08098C38 + ldr r5, [r0] + ldr r0, _08098C3C + adds r4, r5, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x7 + str r1, [sp, 0x4] + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_8099AFC + ldr r1, _08098C40 + adds r5, r1 + str r0, [r5] + ldr r1, _08098C44 + str r1, [r0, 0x1C] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098C38: .4byte gUnknown_083B6DB4 +_08098C3C: .4byte 0x000025b4 +_08098C40: .4byte 0x00001034 +_08098C44: .4byte sub_80999C4 + thumb_func_end sub_8098BF0 + + thumb_func_start sub_8098C48 +sub_8098C48: @ 8098C48 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _08098CCC + adds r6, r0, r1 + movs r0, 0 + mov r8, r0 + movs r7, 0 +_08098C6A: + movs r5, 0 + adds r1, r7, 0x1 + mov r9, r1 +_08098C70: + adds r0, r6, 0 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08098CD8 + adds r0, r6, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + lsls r2, r5, 1 + adds r2, r5 + lsls r2, 19 + movs r3, 0xC8 + lsls r3, 15 + adds r2, r3 + asrs r2, 16 + lsls r3, r7, 1 + adds r3, r7 + lsls r3, 19 + movs r0, 0xB0 + lsls r0, 14 + adds r3, r0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x12 + subs r0, r5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r4, 0 + asrs r3, 16 + bl sub_8099AFC + ldr r1, _08098CD0 + ldr r1, [r1] + mov r3, r8 + lsls r2, r3, 2 + ldr r3, _08098CD4 + adds r1, r3 + adds r1, r2 + str r0, [r1] + b _08098CE8 + .align 2, 0 +_08098CCC: .4byte gUnknown_020300A4 +_08098CD0: .4byte gUnknown_083B6DB4 +_08098CD4: .4byte 0x00001050 +_08098CD8: + ldr r0, _08098D18 + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _08098D1C + adds r0, r3 + adds r0, r1 + str r4, [r0] +_08098CE8: + adds r6, 0x50 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08098C70 + mov r1, r9 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _08098C6A + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098D18: .4byte gUnknown_083B6DB4 +_08098D1C: .4byte 0x00001050 + thumb_func_end sub_8098C48 + + thumb_func_start sub_8098D20 +sub_8098D20: @ 8098D20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r2, r1, 4 + subs r2, r1 + lsls r2, 5 + lsls r0, r4, 2 + mov r9, r0 + adds r0, r4 + lsls r0, 4 + ldr r1, _08098DD4 + adds r0, r1 + adds r7, r2, r0 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _08098DC4 + adds r0, r4, 0 + movs r1, 0x6 + bl __umodsi3 + adds r6, r0, 0 + lsls r0, r6, 24 + lsrs r0, 24 + lsls r5, r0, 1 + adds r5, r0 + lsls r5, 19 + movs r1, 0xC8 + lsls r1, 15 + adds r5, r1 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 19 + movs r2, 0xB0 + lsls r2, 14 + adds r4, r2 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x12 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + mov r0, r8 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_8099AFC + ldr r1, _08098DD8 + ldr r1, [r1] + ldr r2, _08098DDC + adds r1, r2 + add r1, r9 + str r0, [r1] +_08098DC4: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098DD4: .4byte gUnknown_020300A4 +_08098DD8: .4byte gUnknown_083B6DB4 +_08098DDC: .4byte 0x00001050 + thumb_func_end sub_8098D20 + + thumb_func_start sub_8098DE0 +sub_8098DE0: @ 8098DE0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0 + ldr r0, _08098E18 + ldr r0, [r0] + ldr r1, _08098E1C + adds r3, r0, r1 + movs r6, 0x1 + ldr r5, _08098E20 +_08098DF4: + lsls r0, r2, 2 + adds r1, r3, r0 + ldr r0, [r1] + cmp r0, 0 + beq _08098E08 + strh r4, [r0, 0x32] + ldr r0, [r1] + strh r6, [r0, 0x36] + ldr r0, [r1] + str r5, [r0, 0x1C] +_08098E08: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08098DF4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098E18: .4byte gUnknown_083B6DB4 +_08098E1C: .4byte 0x00001050 +_08098E20: .4byte sub_8098E68 + thumb_func_end sub_8098DE0 + + thumb_func_start sub_8098E24 +sub_8098E24: @ 8098E24 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08098E40 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + b _08098E56 +_08098E40: + ldr r0, _08098E5C + ldr r1, [r0] + ldr r3, _08098E60 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrh r0, [r2, 0x34] + strh r0, [r2, 0x20] + ldr r0, _08098E64 + str r0, [r2, 0x1C] +_08098E56: + pop {r0} + bx r0 + .align 2, 0 +_08098E5C: .4byte gUnknown_083B6DB4 +_08098E60: .4byte 0x00001178 +_08098E64: .4byte SpriteCallbackDummy + thumb_func_end sub_8098E24 + + thumb_func_start sub_8098E68 +sub_8098E68: @ 8098E68 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x36] + movs r3, 0x36 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08098E7C + subs r0, r1, 0x1 + strh r0, [r2, 0x36] + b _08098E98 +_08098E7C: + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x38] + subs r0, 0x45 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB6 + bls _08098E98 + ldr r0, _08098E9C + str r0, [r2, 0x1C] +_08098E98: + pop {r0} + bx r0 + .align 2, 0 +_08098E9C: .4byte SpriteCallbackDummy + thumb_func_end sub_8098E68 + + thumb_func_start sub_8098EA0 +sub_8098EA0: @ 8098EA0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r0, _08098ED8 + ldr r0, [r0] + ldr r1, _08098EDC + adds r7, r0, r1 +_08098EB0: + lsls r0, r5, 2 + adds r4, r7, r0 + ldr r0, [r4] + cmp r0, 0 + beq _08098EC2 + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_08098EC2: + adds r0, r5, 0x6 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _08098EB0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098ED8: .4byte gUnknown_083B6DB4 +_08098EDC: .4byte 0x00001050 + thumb_func_end sub_8098EA0 + + thumb_func_start sub_8098EE0 +sub_8098EE0: @ 8098EE0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x8] + lsls r2, 16 + movs r0, 0x2C + str r0, [sp, 0x10] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 19 + movs r1, 0xC8 + lsls r1, 15 + adds r0, r1 + lsrs r0, 16 + mov r10, r0 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsrs r3, r2, 16 + str r3, [sp, 0xC] + asrs r2, 16 + adds r1, r0, 0 + muls r1, r2 + mov r4, r10 + subs r1, r4, r1 + movs r0, 0x12 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + movs r0, 0 + str r0, [sp, 0x14] + mov r9, r0 + ldr r0, _08098FF8 + ldr r0, [r0] + ldr r2, _08098FFC + adds r2, r0 + mov r8, r2 + ldr r3, _08099000 + adds r3, r0, r3 + str r3, [sp, 0x20] + lsls r1, 16 + str r1, [sp, 0x1C] +_08098F42: + mov r4, r8 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r7, r6, 2 + adds r1, r7, r6 + lsls r1, 4 + ldr r2, _08099004 + adds r4, r1, r2 + adds r0, r4 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08098FC8 + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + adds r0, r4 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + ldr r2, [sp, 0x10] + lsls r3, r2, 16 + asrs r3, 16 + movs r0, 0x2 + str r0, [sp] + ldr r4, [sp, 0x18] + str r4, [sp, 0x4] + adds r0, r5, 0 + ldr r4, [sp, 0x1C] + asrs r2, r4, 16 + bl sub_8099AFC + ldr r2, [sp, 0x20] + adds r1, r2, r7 + str r0, [r1] + cmp r0, 0 + beq _08098FC8 + mov r3, sp + ldrh r3, [r3, 0x8] + strh r3, [r0, 0x30] + ldr r0, [r1] + mov r4, sp + ldrh r4, [r4, 0xC] + strh r4, [r0, 0x32] + ldr r0, [r1] + mov r2, r10 + strh r2, [r0, 0x34] + ldr r1, [r1] + ldr r0, _08099008 + str r0, [r1, 0x1C] + ldr r0, [sp, 0x14] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] +_08098FC8: + adds r0, r6, 0x6 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x10] + adds r0, 0x18 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _08098F42 + ldr r0, [sp, 0x14] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08098FF8: .4byte gUnknown_083B6DB4 +_08098FFC: .4byte 0x0000117d +_08099000: .4byte 0x00001050 +_08099004: .4byte gUnknown_020300A4 +_08099008: .4byte sub_8098E24 + thumb_func_end sub_8098EE0 + + thumb_func_start sub_809900C +sub_809900C: @ 809900C + push {r4-r6,lr} + lsls r1, 24 + lsrs r1, 24 + ldr r4, _08099058 + ldr r5, [r4] + ldr r3, _0809905C + adds r2, r5, r3 + movs r3, 0 + strb r3, [r2] + ldr r6, _08099060 + adds r2, r5, r6 + strb r0, [r2] + ldr r2, _08099064 + adds r0, r5, r2 + strb r1, [r0] + subs r6, 0xB + adds r2, r5, r6 + movs r0, 0x20 + strh r0, [r2] + lsls r1, 24 + asrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + negs r0, r0 + adds r6, 0x4 + adds r2, r5, r6 + strh r0, [r2] + ldr r2, _08099068 + adds r0, r5, r2 + strh r3, [r0] + cmp r1, 0 + ble _08099070 + ldr r3, _0809906C + adds r1, r5, r3 + movs r0, 0 + b _08099076 + .align 2, 0 +_08099058: .4byte gUnknown_083B6DB4 +_0809905C: .4byte 0x0000117c +_08099060: .4byte 0x0000117d +_08099064: .4byte 0x0000117b +_08099068: .4byte 0x00001178 +_0809906C: .4byte 0x0000117a +_08099070: + ldr r6, _080990A0 + adds r1, r5, r6 + movs r0, 0x5 +_08099076: + strb r0, [r1] + ldr r2, [r4] + ldr r1, _080990A0 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x64 + ldr r3, _080990A4 + adds r1, r2, r3 + strh r0, [r1] + ldr r6, _080990A8 + adds r2, r6 + movs r1, 0 + ldrsh r0, [r2, r1] + bl sub_8098DE0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080990A0: .4byte 0x0000117a +_080990A4: .4byte 0x00001174 +_080990A8: .4byte 0x00001176 + thumb_func_end sub_809900C + + thumb_func_start sub_80990AC +sub_80990AC: @ 80990AC + push {r4-r6,lr} + ldr r0, _080990D4 + ldr r4, [r0] + ldr r0, _080990D8 + adds r3, r4, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _080990C0 + subs r0, 0x1 + strh r0, [r3] +_080990C0: + ldr r1, _080990DC + adds r6, r4, r1 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08099138 + cmp r0, 0x1 + bgt _080990E0 + cmp r0, 0 + beq _080990E8 + b _080991F0 + .align 2, 0 +_080990D4: .4byte gUnknown_083B6DB4 +_080990D8: .4byte 0x00001172 +_080990DC: .4byte 0x0000117c +_080990E0: + cmp r0, 0x2 + bne _080990E6 + b _080991E0 +_080990E6: + b _080991F0 +_080990E8: + ldr r2, _0809912C + adds r5, r4, r2 + ldr r3, _08099130 + adds r0, r4, r3 + ldrh r0, [r0] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBA + bhi _08099104 + b _080991F8 +_08099104: + adds r2, 0x6 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_8098EA0 + ldr r3, _08099134 + adds r0, r4, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _080991F8 + .align 2, 0 +_0809912C: .4byte 0x00001174 +_08099130: .4byte 0x00001176 +_08099134: .4byte 0x0000117b +_08099138: + ldr r2, _08099194 + adds r1, r4, r2 + ldr r5, _08099198 + adds r2, r4, r5 + ldrh r0, [r2] + ldrh r5, [r1] + adds r0, r5 + strh r0, [r1] + ldr r0, _0809919C + adds r5, r4, r0 + ldrb r0, [r5] + ldrh r1, [r3] + movs r3, 0 + ldrsh r2, [r2, r3] + bl sub_8098EE0 + ldr r2, _080991A0 + adds r1, r4, r2 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + ldr r1, _080991A4 + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r1, 0 + ble _08099178 + ldrb r0, [r5] + cmp r0, 0x5 + beq _08099182 +_08099178: + cmp r1, 0 + bge _080991B0 + ldrb r0, [r5] + cmp r0, 0 + bne _080991B0 +_08099182: + ldr r0, _080991A8 + ldr r1, [r0] + ldr r2, _080991AC + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080991F8 + .align 2, 0 +_08099194: .4byte 0x00001174 +_08099198: .4byte 0x00001176 +_0809919C: .4byte 0x0000117a +_080991A0: .4byte 0x00001178 +_080991A4: .4byte 0x0000117b +_080991A8: .4byte gUnknown_083B6DB4 +_080991AC: .4byte 0x0000117c +_080991B0: + ldr r0, _080991D0 + ldr r1, [r0] + ldr r5, _080991D4 + adds r3, r1, r5 + ldr r2, _080991D8 + adds r0, r1, r2 + ldrb r0, [r0] + ldrb r5, [r3] + adds r0, r5 + movs r2, 0 + strb r0, [r3] + ldr r0, _080991DC + adds r1, r0 + strb r2, [r1] + b _080991F8 + .align 2, 0 +_080991D0: .4byte gUnknown_083B6DB4 +_080991D4: .4byte 0x0000117a +_080991D8: .4byte 0x0000117b +_080991DC: .4byte 0x0000117c +_080991E0: + ldr r1, _080991F4 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080991F8 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080991F0: + movs r0, 0 + b _080991FA + .align 2, 0 +_080991F4: .4byte 0x00001178 +_080991F8: + movs r0, 0x1 +_080991FA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80990AC + + thumb_func_start sub_8099200 +sub_8099200: @ 8099200 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080992A0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x68 + movs r3, 0x40 + bl sub_8099AFC + ldr r1, _080992A4 + ldr r1, [r1] + ldr r2, _080992A8 + adds r1, r2 + str r0, [r1] + movs r7, 0x1 + movs r6, 0x1 +_08099246: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _080992A0 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080992AC + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + subs r0, r6, 0x1 + lsls r3, r0, 1 + adds r3, r0 + lsls r3, 19 + movs r0, 0x80 + lsls r0, 13 + adds r3, r0 + asrs r3, 16 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x98 + bl sub_8099AFC + ldr r1, _080992A4 + ldr r1, [r1] + lsls r2, r6, 2 + ldr r3, _080992A8 + adds r1, r3 + adds r1, r2 + str r0, [r1] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + b _080992BA + .align 2, 0 +_080992A0: .4byte gPlayerParty +_080992A4: .4byte gUnknown_083B6DB4 +_080992A8: .4byte 0x00001038 +_080992AC: + ldr r0, _08099308 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0809930C + adds r0, r2 + adds r0, r1 + str r5, [r0] +_080992BA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _08099246 + mov r3, r8 + cmp r3, 0 + bne _080992FA + movs r6, 0 + cmp r6, r7 + bcs _080992FA + ldr r0, _08099308 + ldr r0, [r0] + ldr r1, _0809930C + adds r3, r0, r1 + movs r4, 0x4 +_080992DA: + lsls r1, r6, 2 + adds r1, r3, r1 + ldr r2, [r1] + ldrh r0, [r2, 0x22] + subs r0, 0xA0 + strh r0, [r2, 0x22] + ldr r1, [r1] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _080992DA +_080992FA: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099308: .4byte gUnknown_083B6DB4 +_0809930C: .4byte 0x00001038 + thumb_func_end sub_8099200 + + thumb_func_start sub_8099310 +sub_8099310: @ 8099310 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08099368 + ldr r2, [r0] + ldr r0, _0809936C + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + movs r5, 0 + movs r6, 0 + mov r8, r2 + ldr r7, _0809936C + add r7, r8 +_0809932C: + lsls r1, r5, 2 + ldr r0, _08099370 + add r0, r8 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _08099354 + cmp r5, r6 + beq _0809934E + adds r1, r6, 0 + bl sub_8099388 + movs r0, 0 + str r0, [r4] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] +_0809934E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08099354: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809932C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099368: .4byte gUnknown_083B6DB4 +_0809936C: .4byte 0x00001171 +_08099370: .4byte 0x00001038 + thumb_func_end sub_8099310 + + thumb_func_start sub_8099374 +sub_8099374: @ 8099374 + ldr r0, _08099380 + ldr r0, [r0] + ldr r1, _08099384 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08099380: .4byte gUnknown_083B6DB4 +_08099384: .4byte 0x00001171 + thumb_func_end sub_8099374 + + thumb_func_start sub_8099388 +sub_8099388: @ 8099388 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + strh r1, [r2, 0x30] + cmp r1, 0 + bne _0809939C + movs r3, 0x68 + movs r4, 0x40 + b _080993AE +_0809939C: + movs r3, 0x98 + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 19 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 +_080993AE: + ldrh r0, [r2, 0x20] + lsls r0, 3 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x22] + lsls r0, 3 + strh r0, [r2, 0x34] + lsls r1, r3, 3 + movs r3, 0x32 + ldrsh r0, [r2, r3] + subs r0, r1, r0 + cmp r0, 0 + bge _080993C8 + adds r0, 0x7 +_080993C8: + asrs r0, 3 + strh r0, [r2, 0x36] + lsls r0, r4, 16 + asrs r0, 13 + movs r3, 0x34 + ldrsh r1, [r2, r3] + subs r0, r1 + cmp r0, 0 + bge _080993DC + adds r0, 0x7 +_080993DC: + asrs r0, 3 + strh r0, [r2, 0x38] + movs r0, 0x8 + strh r0, [r2, 0x3A] + ldr r0, _080993F0 + str r0, [r2, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080993F0: .4byte sub_80993F4 + thumb_func_end sub_8099388 + + thumb_func_start sub_80993F4 +sub_80993F4: @ 80993F4 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08099424 + ldrh r0, [r3, 0x36] + ldrh r4, [r3, 0x32] + adds r0, r4 + strh r0, [r3, 0x32] + ldrh r1, [r3, 0x38] + ldrh r4, [r3, 0x34] + adds r1, r4 + strh r1, [r3, 0x34] + lsls r0, 16 + asrs r0, 19 + strh r0, [r3, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r3, 0x22] + subs r0, r2, 0x1 + strh r0, [r3, 0x3A] + b _08099468 +_08099424: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08099434 + movs r0, 0x68 + strh r0, [r3, 0x20] + movs r0, 0x40 + b _08099446 +_08099434: + movs r0, 0x98 + strh r0, [r3, 0x20] + movs r4, 0x30 + ldrsh r1, [r3, r4] + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x10 +_08099446: + strh r0, [r3, 0x22] + ldr r0, _08099470 + str r0, [r3, 0x1C] + ldr r0, _08099474 + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 2 + ldr r4, _08099478 + adds r0, r2, r4 + adds r0, r1 + str r3, [r0] + ldr r0, _0809947C + adds r2, r0 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] +_08099468: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099470: .4byte SpriteCallbackDummy +_08099474: .4byte gUnknown_083B6DB4 +_08099478: .4byte 0x00001038 +_0809947C: .4byte 0x00001171 + thumb_func_end sub_80993F4 + + thumb_func_start sub_8099480 +sub_8099480: @ 8099480 + push {r4,lr} + ldr r0, _080994A0 + ldr r0, [r0] + ldr r1, _080994A4 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _08099498 + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_08099498: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080994A0: .4byte gUnknown_083B6DB4 +_080994A4: .4byte 0x00001034 + thumb_func_end sub_8099480 + + thumb_func_start sub_80994A8 +sub_80994A8: @ 80994A8 + push {r4-r6,lr} + movs r3, 0 + ldr r1, _080994FC + ldr r1, [r1] + ldr r2, _08099500 + adds r5, r1, r2 + lsls r0, 16 + asrs r4, r0, 16 + movs r6, 0x5 + negs r6, r6 +_080994BC: + lsls r0, r3, 2 + adds r2, r5, r0 + ldr r1, [r2] + cmp r1, 0 + beq _0809950E + ldrh r0, [r1, 0x22] + adds r0, r4, r0 + strh r0, [r1, 0x22] + ldr r2, [r2] + ldrh r1, [r2, 0x26] + ldrh r0, [r2, 0x22] + adds r1, r0 + adds r0, r2, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + cmp r0, 0xC0 + bls _08099504 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0809950E + .align 2, 0 +_080994FC: .4byte gUnknown_083B6DB4 +_08099500: .4byte 0x00001038 +_08099504: + adds r2, 0x3E + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r2] +_0809950E: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080994BC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80994A8 + + thumb_func_start sub_8099520 +sub_8099520: @ 8099520 + push {r4,lr} + lsls r0, 24 + ldr r1, _08099544 + ldr r1, [r1] + lsrs r0, 22 + ldr r2, _08099548 + adds r1, r2 + adds r4, r1, r0 + ldr r0, [r4] + cmp r0, 0 + beq _0809953E + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_0809953E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099544: .4byte gUnknown_083B6DB4 +_08099548: .4byte 0x00001038 + thumb_func_end sub_8099520 + + thumb_func_start sub_809954C +sub_809954C: @ 809954C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _0809957C + ldr r0, [r0] + ldr r1, _08099580 + adds r6, r0, r1 +_08099558: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _0809956A + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_0809956A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08099558 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809957C: .4byte gUnknown_083B6DB4 +_08099580: .4byte 0x00001038 + thumb_func_end sub_809954C + + thumb_func_start sub_8099584 +sub_8099584: @ 8099584 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + cmp r4, 0 + bne _080995B4 + ldr r3, _080995AC + ldr r0, [r3] + ldr r5, _080995B0 + adds r2, r0, r5 + lsls r1, 2 + adds r5, 0x4 + adds r0, r5 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + str r4, [r0] + b _080995D0 + .align 2, 0 +_080995AC: .4byte gUnknown_083B6DB4 +_080995B0: .4byte 0x00001034 +_080995B4: + cmp r4, 0x1 + bne _080995F4 + ldr r3, _080995FC + ldr r0, [r3] + ldr r1, _08099600 + adds r2, r0, r1 + lsls r1, r5, 2 + ldr r4, _08099604 + adds r0, r4 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + movs r1, 0 + str r1, [r0] +_080995D0: + ldr r2, [r3] + ldr r5, _08099600 + adds r2, r5 + ldr r1, [r2] + ldr r0, _08099608 + str r0, [r1, 0x1C] + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r2] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_080995F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080995FC: .4byte gUnknown_083B6DB4 +_08099600: .4byte 0x00001034 +_08099604: .4byte 0x00001050 +_08099608: .4byte sub_80999C4 + thumb_func_end sub_8099584 + + thumb_func_start sub_809960C +sub_809960C: @ 809960C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r0, 0xE + bne _08099654 + ldr r4, _08099648 + ldr r0, [r4] + lsls r1, r6, 2 + ldr r2, _0809964C + adds r3, r0, r2 + adds r3, r1 + ldr r1, _08099650 + adds r0, r1 + ldr r2, [r0] + str r2, [r3] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, [r3] + adds r0, 0x43 + movs r1, 0xB + strb r1, [r0] + b _0809968A + .align 2, 0 +_08099648: .4byte gUnknown_083B6DB4 +_0809964C: .4byte 0x00001038 +_08099650: .4byte 0x00001034 +_08099654: + ldr r5, _080996A0 + ldr r0, [r5] + lsls r1, r6, 2 + ldr r2, _080996A4 + adds r3, r0, r2 + adds r3, r1 + ldr r1, _080996A8 + adds r0, r1 + ldr r2, [r0] + str r2, [r3] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r4, [r3] + adds r0, r6, 0 + movs r1, 0x6 + bl __umodsi3 + movs r1, 0x12 + subs r1, r0 + adds r4, 0x43 + strb r1, [r4] + adds r4, r5, 0 +_0809968A: + ldr r1, [r4] + ldr r2, _080996A8 + adds r1, r2 + ldr r2, [r1] + ldr r0, _080996AC + str r0, [r2, 0x1C] + movs r0, 0 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080996A0: .4byte gUnknown_083B6DB4 +_080996A4: .4byte 0x00001050 +_080996A8: .4byte 0x00001034 +_080996AC: .4byte SpriteCallbackDummy + thumb_func_end sub_809960C + + thumb_func_start sub_80996B0 +sub_80996B0: @ 80996B0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0xE + bne _080996D8 + ldr r3, _080996CC + ldr r1, [r3] + ldr r0, _080996D0 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _080996D4 + b _080996E4 + .align 2, 0 +_080996CC: .4byte gUnknown_083B6DB4 +_080996D0: .4byte 0x000010c8 +_080996D4: .4byte 0x00001038 +_080996D8: + ldr r3, _08099704 + ldr r1, [r3] + ldr r0, _08099708 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _0809970C +_080996E4: + adds r0, r4 + adds r1, r0 + str r1, [r2] + ldr r1, [r3] + ldr r2, _08099710 + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _08099714 + str r0, [r2, 0x1C] + ldr r4, _08099718 + adds r1, r4 + movs r0, 0 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099704: .4byte gUnknown_083B6DB4 +_08099708: .4byte 0x000010c8 +_0809970C: .4byte 0x00001050 +_08099710: .4byte 0x00001034 +_08099714: .4byte SpriteCallbackDummy +_08099718: .4byte 0x00001170 + thumb_func_end sub_80996B0 + + thumb_func_start sub_809971C +sub_809971C: @ 809971C + push {r4-r7,lr} + ldr r0, _08099730 + ldr r2, [r0] + ldr r0, _08099734 + adds r7, r2, r0 + ldrb r0, [r7] + cmp r0, 0x10 + bne _08099738 + movs r0, 0 + b _08099800 + .align 2, 0 +_08099730: .4byte gUnknown_083B6DB4 +_08099734: .4byte 0x00001170 +_08099738: + adds r0, 0x1 + strb r0, [r7] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809975E + ldr r1, _08099808 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, 0x22] + subs r0, 0x1 + strh r0, [r1, 0x22] + ldr r4, _0809980C + adds r0, r2, r4 + ldr r1, [r0] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] +_0809975E: + ldr r0, _08099808 + adds r5, r2, r0 + ldr r0, [r5] + ldr r1, [r0] + ldr r3, _08099810 + ldrb r0, [r7] + lsls r0, 4 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + bge _08099778 + adds r0, 0xF +_08099778: + asrs r0, 4 + strh r0, [r1, 0x24] + ldr r0, _0809980C + adds r6, r2, r0 + ldr r1, [r6] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _08099792 + adds r0, 0xF +_08099792: + asrs r0, 4 + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r7] + cmp r0, 0x8 + bne _080997DE + ldr r4, [r6] + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, 0x5] + movs r2, 0xC + ands r2, r0 + ldrb r3, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, 0x5] + ldr r2, [r6] + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x43 + ldrb r0, [r0] + adds r2, 0x43 + strb r0, [r2] + ldr r0, [r5] + ldr r2, [r0] + ldrb r0, [r2, 0x5] + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x5] + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_080997DE: + ldrb r0, [r7] + cmp r0, 0x10 + bne _080997FE + ldr r1, [r6] + ldr r0, [r5] + ldr r0, [r0] + str r0, [r6] + ldr r0, [r5] + str r1, [r0] + ldr r1, [r6] + ldr r0, _08099814 + str r0, [r1, 0x1C] + ldr r0, [r5] + ldr r1, [r0] + ldr r0, _08099818 + str r0, [r1, 0x1C] +_080997FE: + movs r0, 0x1 +_08099800: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08099808: .4byte 0x000010c8 +_0809980C: .4byte 0x00001034 +_08099810: .4byte gSineTable +_08099814: .4byte sub_80999C4 +_08099818: .4byte SpriteCallbackDummy + thumb_func_end sub_809971C + + thumb_func_start sub_809981C +sub_809981C: @ 809981C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0x1 + beq _08099858 + cmp r0, 0x1 + bgt _08099836 + cmp r0, 0 + beq _0809983C + b _080998C0 +_08099836: + cmp r2, 0x2 + beq _0809987C + b _080998C0 +_0809983C: + ldr r3, _0809984C + ldr r1, [r3] + ldr r0, _08099850 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08099854 + b _08099864 + .align 2, 0 +_0809984C: .4byte gUnknown_083B6DB4 +_08099850: .4byte 0x000010cc +_08099854: .4byte 0x00001038 +_08099858: + ldr r3, _08099870 + ldr r1, [r3] + ldr r0, _08099874 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08099878 +_08099864: + adds r0, r4 + adds r1, r0 + str r1, [r2] + adds r0, r3, 0 + b _0809988A + .align 2, 0 +_08099870: .4byte gUnknown_083B6DB4 +_08099874: .4byte 0x000010cc +_08099878: .4byte 0x00001050 +_0809987C: + ldr r0, _080998C8 + ldr r1, [r0] + ldr r3, _080998CC + adds r2, r1, r3 + ldr r4, _080998D0 + adds r1, r4 + str r1, [r2] +_0809988A: + ldr r0, [r0] + ldr r1, _080998CC + adds r4, r0, r1 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _080998C0 + bl InitSpriteAffineAnim + ldr r0, [r4] + ldr r2, [r0] + ldrb r1, [r2, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r0, [r4] + ldr r1, [r0] + ldr r0, _080998D4 + str r0, [r1, 0x10] + ldr r0, [r4] + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAffineAnim +_080998C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080998C8: .4byte gUnknown_083B6DB4 +_080998CC: .4byte 0x000010cc +_080998D0: .4byte 0x00001034 +_080998D4: .4byte gUnknown_083B6F5C + thumb_func_end sub_809981C + + thumb_func_start sub_80998D8 +sub_80998D8: @ 80998D8 + push {lr} + ldr r0, _080998FC + ldr r0, [r0] + ldr r1, _08099900 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0] + cmp r1, 0 + beq _080998F8 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _08099904 +_080998F8: + movs r0, 0 + b _0809991A + .align 2, 0 +_080998FC: .4byte gUnknown_083B6DB4 +_08099900: .4byte 0x000010cc +_08099904: + adds r0, r1, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08099918 + movs r0, 0x4 + orrs r0, r2 + strb r0, [r3] +_08099918: + movs r0, 0x1 +_0809991A: + pop {r1} + bx r1 + thumb_func_end sub_80998D8 + + thumb_func_start sub_8099920 +sub_8099920: @ 8099920 + push {r4,lr} + ldr r0, _08099950 + ldr r0, [r0] + ldr r1, _08099954 + adds r4, r0, r1 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _0809994A + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + ldr r0, [r0] + bl sub_8099BE0 + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_0809994A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099950: .4byte gUnknown_083B6DB4 +_08099954: .4byte 0x000010cc + thumb_func_end sub_8099920 + + thumb_func_start sub_8099958 +sub_8099958: @ 8099958 + push {lr} + ldr r0, _08099988 + ldr r0, [r0] + ldr r1, _0809998C + adds r3, r0, r1 + ldr r0, [r3] + ldr r0, [r0] + cmp r0, 0 + beq _08099982 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAffineAnim +_08099982: + pop {r0} + bx r0 + .align 2, 0 +_08099988: .4byte gUnknown_083B6DB4 +_0809998C: .4byte 0x000010cc + thumb_func_end sub_8099958 + + thumb_func_start sub_8099990 +sub_8099990: @ 8099990 + push {lr} + ldr r0, _080999A4 + ldr r0, [r0] + ldr r1, _080999A8 + adds r2, r0, r1 + ldr r0, [r2] + cmp r0, 0 + bne _080999AC + movs r0, 0 + b _080999C0 + .align 2, 0 +_080999A4: .4byte gUnknown_083B6DB4 +_080999A8: .4byte 0x000010cc +_080999AC: + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080999BE + movs r0, 0 + str r0, [r2] +_080999BE: + movs r0, 0x1 +_080999C0: + pop {r1} + bx r1 + thumb_func_end sub_8099990 + + thumb_func_start sub_80999C4 +sub_80999C4: @ 80999C4 + ldr r1, _080999E4 + ldr r1, [r1] + movs r2, 0x8E + lsls r2, 5 + adds r1, r2 + ldr r2, [r1] + ldrh r2, [r2, 0x20] + strh r2, [r0, 0x20] + ldr r2, [r1] + ldrh r1, [r2, 0x26] + ldrh r2, [r2, 0x22] + adds r1, r2 + adds r1, 0x4 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080999E4: .4byte gUnknown_083B6DB4 + thumb_func_end sub_80999C4 + + thumb_func_start sub_80999E8 +sub_80999E8: @ 80999E8 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, _08099A58 + ldr r0, [r1] + movs r2, 0x89 + lsls r2, 5 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, r3 + beq _08099A20 + adds r6, r2, 0 + movs r5, 0x89 + lsls r5, 5 +_08099A08: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08099A20 + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08099A08 +_08099A20: + cmp r4, 0x28 + bne _08099A60 + movs r4, 0 + ldr r0, [r2] + movs r5, 0x89 + lsls r5, 5 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _08099A4E + adds r6, r2, 0 +_08099A36: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08099A4E + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08099A36 +_08099A4E: + cmp r4, 0x28 + bne _08099A60 + ldr r0, _08099A5C + b _08099A94 + .align 2, 0 +_08099A58: .4byte gUnknown_083B6DB4 +_08099A5C: .4byte 0x0000ffff +_08099A60: + ldr r1, [r2] + lsls r2, r4, 1 + movs r5, 0x89 + lsls r5, 5 + adds r0, r1, r5 + adds r0, r2 + strh r3, [r0] + ldr r0, _08099A9C + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r4, 20 + lsrs r4, 16 + ldr r1, _08099AA0 + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + lsls r1, r4, 5 + ldr r2, _08099AA4 + adds r1, r2 + ldr r2, _08099AA8 + bl CpuSet + adds r0, r4, 0 +_08099A94: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08099A9C: .4byte 0x000010d0 +_08099AA0: .4byte gMonIconTable +_08099AA4: .4byte 0x06010000 +_08099AA8: .4byte 0x04000080 + thumb_func_end sub_80999E8 + + thumb_func_start sub_8099AAC +sub_8099AAC: @ 8099AAC + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0 + ldr r0, _08099AE4 + ldr r0, [r0] + movs r1, 0x89 + lsls r1, 5 + adds r5, r0, r1 + subs r1, 0x50 + adds r4, r0, r1 + ldr r0, _08099AE8 + adds r7, r0, 0 +_08099AC6: + lsls r1, r3, 1 + adds r2, r5, r1 + ldrh r0, [r2] + cmp r0, r6 + bne _08099AEC + adds r1, r4, r1 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ands r0, r7 + cmp r0, 0 + bne _08099AF6 + strh r0, [r2] + b _08099AF6 + .align 2, 0 +_08099AE4: .4byte gUnknown_083B6DB4 +_08099AE8: .4byte 0x0000ffff +_08099AEC: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x27 + bls _08099AC6 +_08099AF6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8099AAC + + thumb_func_start sub_8099AFC +sub_8099AFC: @ 8099AFC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + lsls r0, 16 + lsrs r6, r0, 16 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x18] + lsls r3, 16 + lsrs r3, 16 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r9, r5 + mov r2, sp + ldr r0, _08099BAC + ldm r0!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldm r0!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + adds r0, r6, 0 + bl mon_icon_convert_unown_species_id + mov r10, r0 + mov r6, r10 + mov r2, sp + ldr r1, _08099BB0 + adds r1, r6, r1 + ldr r3, _08099BB4 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2, 0x2] + adds r0, r6, 0 + bl sub_80999E8 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + ldr r0, _08099BB8 + cmp r5, r0 + beq _08099BCE + ldr r7, [sp, 0x18] + lsls r1, r7, 16 + asrs r1, 16 + mov r0, r8 + lsls r2, r0, 16 + asrs r2, 16 + mov r0, sp + mov r3, r9 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _08099BC8 + ldr r1, _08099BBC + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldr r2, _08099BC0 + ands r2, r5 + ldrh r3, [r0, 0x4] + ldr r1, _08099BC4 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + movs r1, 0x3 + ands r4, r1 + lsls r3, r4, 2 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, 0x5] + mov r1, r10 + strh r1, [r0, 0x2E] + b _08099BD0 + .align 2, 0 +_08099BAC: .4byte gSpriteTemplate_83B6F14 +_08099BB0: .4byte gMonIconPaletteIndices +_08099BB4: .4byte 0x0000dac0 +_08099BB8: .4byte 0x0000ffff +_08099BBC: .4byte gSprites +_08099BC0: .4byte 0x000003ff +_08099BC4: .4byte 0xfffffc00 +_08099BC8: + adds r0, r6, 0 + bl sub_8099AAC +_08099BCE: + movs r0, 0 +_08099BD0: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8099AFC + + thumb_func_start sub_8099BE0 +sub_8099BE0: @ 8099BE0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + bl sub_8099AAC + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8099BE0 + + thumb_func_start sub_8099BF8 +sub_8099BF8: @ 8099BF8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08099C50 + ldr r0, [r0] + ldr r1, _08099C54 + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r2, _08099C58 + adds r0, r2 + strh r1, [r0] + str r1, [sp] + ldr r1, _08099C5C + mov r0, sp + str r0, [r1] + ldr r0, _08099C60 + str r0, [r1, 0x4] + ldr r0, _08099C64 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0 + bl sub_8099EB0 + adds r0, r4, 0 + bl sub_809A23C + bl sub_809A6DC + adds r0, r4, 0 + bl sub_8098C48 + ldr r1, _08099C68 + ldr r2, _08099C6C + adds r0, r2, 0 + strh r0, [r1] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099C50: .4byte gUnknown_083B6DB4 +_08099C54: .4byte 0x000008ba +_08099C58: .4byte 0x000008b4 +_08099C5C: .4byte 0x040000d4 +_08099C60: .4byte 0x0600d000 +_08099C64: .4byte 0x85000400 +_08099C68: .4byte REG_BG2CNT +_08099C6C: .4byte 0x00005a0a + thumb_func_end sub_8099BF8 + + thumb_func_start sub_8099C70 +sub_8099C70: @ 8099C70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + bl sub_8099D90 + lsls r0, 24 + asrs r4, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8099EB0 + ldr r0, _08099D10 + ldr r2, [r0] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 1 + ldr r3, _08099D14 + adds r1, r2, r3 + strh r0, [r1] + ldr r0, _08099D18 + adds r1, r2, r0 + movs r0, 0x20 + strh r0, [r1] + ldr r1, _08099D1C + adds r0, r2, r1 + strb r5, [r0] + movs r1, 0 + cmp r4, 0 + bgt _08099CAE + movs r1, 0x5 +_08099CAE: + ldr r3, _08099D20 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _08099D24 + adds r0, r2, r1 + strh r4, [r0] + movs r1, 0x38 + cmp r4, 0 + ble _08099CC6 + movs r3, 0x84 + lsls r3, 1 + adds r1, r3, 0 +_08099CC6: + movs r3, 0x8C + lsls r3, 4 + adds r0, r2, r3 + strh r1, [r0] + movs r1, 0 + cmp r4, 0 + bgt _08099CD6 + movs r1, 0x5 +_08099CD6: + ldr r3, _08099D28 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _08099D2C + adds r0, r2, r1 + strh r4, [r0] + adds r3, 0x4 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + ldr r0, _08099D30 + adds r1, r2, r0 + movs r0, 0x2 + strh r0, [r1] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809900C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809A3D0 + adds r0, r4, 0 + bl sub_809A774 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08099D10: .4byte gUnknown_083B6DB4 +_08099D14: .4byte 0x000008b6 +_08099D18: .4byte 0x000008b8 +_08099D1C: .4byte 0x000008bb +_08099D20: .4byte 0x000008bc +_08099D24: .4byte 0x000008be +_08099D28: .4byte 0x000008c2 +_08099D2C: .4byte 0x000008c4 +_08099D30: .4byte 0x000008c8 + thumb_func_end sub_8099C70 + + thumb_func_start sub_8099D34 +sub_8099D34: @ 8099D34 + push {r4,lr} + bl sub_80990AC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08099D78 + ldr r1, [r0] + ldr r0, _08099D7C + adds r3, r1, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _08099D88 + ldr r4, _08099D80 + adds r2, r1, r4 + adds r4, 0x2 + adds r0, r1, r4 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r1 + ldr r1, _08099D84 + ands r0, r1 + strh r0, [r2] + ldrh r0, [r3] + subs r0, 0x1 + strh r0, [r3] + lsls r0, 16 + cmp r0, 0 + bne _08099D74 + bl sub_809A598 + bl sub_809A810 +_08099D74: + movs r0, 0x1 + b _08099D8A + .align 2, 0 +_08099D78: .4byte gUnknown_083B6DB4 +_08099D7C: .4byte 0x000008b8 +_08099D80: .4byte 0x000008b4 +_08099D84: .4byte 0x000001ff +_08099D88: + adds r0, r2, 0 +_08099D8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8099D34 + + thumb_func_start sub_8099D90 +sub_8099D90: @ 8099D90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0 + cmp r1, r4 + beq _08099DBA +_08099DA4: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xD + bls _08099DB0 + movs r1, 0 +_08099DB0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r1, r4 + bne _08099DA4 +_08099DBA: + movs r0, 0x1 + negs r0, r0 + cmp r2, 0x6 + bhi _08099DC4 + movs r0, 0x1 +_08099DC4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8099D90 + + thumb_func_start sub_8099DCC +sub_8099DCC: @ 8099DCC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08099DF8 + ldr r2, _08099DFC + adds r1, r2 + adds r0, r1 + movs r1, 0 + strb r4, [r0] + ldr r0, _08099E00 + ldr r0, [r0] + ldr r2, _08099E04 + adds r0, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099DF8: .4byte gPokemonStorage +_08099DFC: .4byte 0x000083c2 +_08099E00: .4byte gUnknown_083B6DB4 +_08099E04: .4byte 0x00001032 + thumb_func_end sub_8099DCC + + thumb_func_start sub_8099E08 +sub_8099E08: @ 8099E08 + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _08099E24 + ldr r5, [r0] + ldr r0, _08099E28 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _08099E54 + cmp r0, 0x1 + bgt _08099E2C + cmp r0, 0 + beq _08099E36 + b _08099EA6 + .align 2, 0 +_08099E24: .4byte gUnknown_083B6DB4 +_08099E28: .4byte 0x00001032 +_08099E2C: + cmp r0, 0x2 + beq _08099E90 + cmp r0, 0x3 + beq _08099EA2 + b _08099EA6 +_08099E36: + ldr r1, _08099E4C + adds r0, r5, r1 + ldr r0, [r0] + ldr r1, _08099E50 + str r1, [sp] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08099E9A + .align 2, 0 +_08099E4C: .4byte 0x00000d08 +_08099E50: .4byte 0x0000ffff +_08099E54: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08099EA6 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8099EB0 + bl sub_809A654 + ldr r1, _08099E88 + adds r0, r5, r1 + ldr r0, [r0] + ldr r1, _08099E8C + str r1, [sp] + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08099E9A + .align 2, 0 +_08099E88: .4byte 0x00000d08 +_08099E8C: .4byte 0x0000ffff +_08099E90: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08099EA6 +_08099E9A: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08099EA6 +_08099EA2: + movs r0, 0 + b _08099EA8 +_08099EA6: + movs r0, 0x1 +_08099EA8: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8099E08 + + thumb_func_start sub_8099EB0 +sub_8099EB0: @ 8099EB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r1, 0 + beq _08099ED8 + ldr r0, _08099F38 + ldr r0, [r0] + movs r2, 0 + ldr r3, _08099F3C + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _08099ED0 + movs r2, 0x1 +_08099ED0: + strb r2, [r1] + ldr r0, _08099F40 + bl sub_809A14C +_08099ED8: + ldr r0, _08099F44 + ldr r1, _08099F48 + adds r0, r1 + adds r0, r4, r0 + ldrb r4, [r0] + lsls r4, 4 + ldr r0, _08099F4C + adds r4, r0 + ldr r0, [r4, 0xC] + ldr r1, _08099F38 + ldr r5, [r1] + ldr r2, _08099F3C + adds r6, r5, r2 + ldrb r2, [r6] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 20 + movs r3, 0x80 + lsls r3, 15 + adds r1, r3 + lsrs r1, 16 + movs r2, 0x60 + bl LoadPalette + ldr r0, [r4, 0x8] + ldr r1, _08099F50 + adds r5, r1 + adds r1, r5, 0 + bl LZ77UnCompWram + ldr r0, _08099F40 + lsls r2, r7, 24 + asrs r2, 24 + ldrb r3, [r6] + adds r1, r5, 0 + bl sub_8099F58 + ldr r0, [r4] + ldrb r1, [r6] + lsls r1, 13 + ldr r2, _08099F54 + adds r1, r2 + bl LZ77UnCompVram + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099F38: .4byte gUnknown_083B6DB4 +_08099F3C: .4byte 0x000008ba +_08099F40: .4byte 0x0600d000 +_08099F44: .4byte gPokemonStorage +_08099F48: .4byte 0x000083c2 +_08099F4C: .4byte gWallpaperTable +_08099F50: .4byte 0x00000d62 +_08099F54: .4byte 0x06008000 + thumb_func_end sub_8099EB0 + + thumb_func_start sub_8099F58 +sub_8099F58: @ 8099F58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r9, r0 + adds r5, r1, 0 + lsls r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, r3, 8 + str r0, [sp] + lsls r0, r3, 1 + adds r0, r3 + adds r0, 0x4 + lsls r0, 28 + lsrs r0, 16 + str r0, [sp, 0x4] + ldr r0, _08099FB8 + ldr r0, [r0] + ldr r1, _08099FBC + adds r0, r1 + ldrh r1, [r0] + lsrs r1, 3 + adds r1, 0xA + lsrs r0, r2, 24 + mov r8, r0 + asrs r2, 24 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + movs r0, 0x3F + ands r1, r0 + str r1, [sp, 0x8] + adds r2, r1, 0 + cmp r2, 0xC + bgt _08099FC0 + movs r6, 0x14 + movs r3, 0 + lsls r0, r2, 1 + adds r0, 0x80 + mov r1, r9 + adds r4, r1, r0 + movs r7, 0 + b _0809A020 + .align 2, 0 +_08099FB8: .4byte gUnknown_083B6DB4 +_08099FBC: .4byte 0x000008b4 +_08099FC0: + cmp r2, 0x1F + bgt _08099FE6 + movs r0, 0x20 + subs r0, r2 + lsls r0, 16 + movs r1, 0x14 + lsrs r6, r0, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r0, r2, 1 + adds r0, 0x80 + mov r2, r9 + adds r4, r2, r0 + movs r7, 0x88 + lsls r7, 4 + add r7, r9 + b _0809A020 +_08099FE6: + cmp r2, 0x2C + bgt _08099FFE + movs r6, 0x14 + movs r3, 0 + lsls r0, r2, 1 + movs r1, 0x84 + lsls r1, 4 + adds r0, r1 + mov r2, r9 + adds r4, r2, r0 + movs r7, 0 + b _0809A020 +_08099FFE: + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + movs r1, 0x14 + lsrs r6, r0, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r0, r2, 1 + movs r1, 0x84 + lsls r1, 4 + adds r0, r1 + mov r2, r9 + adds r4, r2, r0 + mov r7, r9 + adds r7, 0x80 +_0809A020: + movs r1, 0 + mov r0, r8 + lsls r0, 24 + str r0, [sp, 0x14] + lsls r0, r6, 16 + asrs r0, 16 + mov r8, r0 + lsls r3, 16 + str r3, [sp, 0xC] + asrs r2, r3, 16 + str r2, [sp, 0x10] +_0809A036: + movs r3, 0 + adds r0, r4, 0 + adds r0, 0x40 + str r0, [sp, 0x18] + adds r2, r7, 0 + adds r2, 0x40 + str r2, [sp, 0x1C] + adds r1, 0x1 + mov r10, r1 + cmp r3, r8 + bge _0809A07A + ldr r0, _0809A0D4 + mov r12, r0 + movs r6, 0xF0 + lsls r6, 8 +_0809A054: + ldrh r2, [r5] + mov r0, r12 + ands r0, r2 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, r6, 0 + ands r1, r2 + ldr r2, [sp, 0x4] + adds r1, r2, r1 + orrs r1, r0 + lsls r0, r3, 1 + adds r0, r4 + strh r1, [r0] + adds r5, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r8 + blt _0809A054 +_0809A07A: + movs r3, 0 + ldr r0, [sp, 0x10] + cmp r3, r0 + bge _0809A0B4 + ldr r1, _0809A0D4 + mov r12, r1 + movs r6, 0xF0 + lsls r6, 8 + ldr r2, [sp, 0xC] + asrs r4, r2, 16 +_0809A08E: + ldrh r2, [r5] + mov r0, r12 + ands r0, r2 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, r6, 0 + ands r1, r2 + ldr r2, [sp, 0x4] + adds r1, r2, r1 + orrs r1, r0 + lsls r0, r3, 1 + adds r0, r7 + strh r1, [r0] + adds r5, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + blt _0809A08E +_0809A0B4: + ldr r4, [sp, 0x18] + ldr r7, [sp, 0x1C] + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0x11 + bls _0809A036 + ldr r0, [sp, 0x14] + asrs r2, r0, 24 + cmp r2, 0 + beq _0809A13A + cmp r2, 0 + ble _0809A0D8 + ldr r1, [sp, 0x8] + adds r1, 0x14 + b _0809A0DC + .align 2, 0 +_0809A0D4: .4byte 0x00000fff +_0809A0D8: + ldr r1, [sp, 0x8] + subs r1, 0x4 +_0809A0DC: + movs r0, 0x3F + ands r1, r0 + adds r4, r1, 0 + adds r0, r4, 0 + cmp r0, 0x1F + bgt _0809A0EE + lsls r0, 1 + adds r0, 0x80 + b _0809A0F6 +_0809A0EE: + lsls r0, 1 + movs r2, 0x84 + lsls r2, 4 + adds r0, r2 +_0809A0F6: + mov r1, r9 + adds r2, r1, r0 + movs r3, 0 + movs r6, 0 +_0809A0FE: + movs r1, 0 + adds r5, r3, 0x1 + lsls r3, r4, 16 +_0809A104: + strh r6, [r2] + adds r2, 0x40 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x11 + bls _0809A104 + asrs r0, r3, 16 + adds r4, r0, 0x1 + movs r0, 0x3F + ands r4, r0 + adds r0, r4, 0 + cmp r0, 0x1F + bgt _0809A126 + lsls r0, 1 + adds r0, 0x80 + b _0809A12E +_0809A126: + lsls r0, 1 + movs r2, 0x84 + lsls r2, 4 + adds r0, r2 +_0809A12E: + mov r1, r9 + adds r2, r1, r0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _0809A0FE +_0809A13A: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8099F58 + + thumb_func_start sub_809A14C +sub_809A14C: @ 809A14C + push {r4-r6,lr} + adds r2, r0, 0 + ldr r0, _0809A174 + ldr r0, [r0] + ldr r1, _0809A178 + adds r0, r1 + ldrh r0, [r0] + lsrs r0, 3 + adds r3, r0, 0 + adds r3, 0x1E + movs r0, 0x3F + ands r3, r0 + adds r0, r3, 0 + cmp r0, 0x1F + bgt _0809A17C + lsls r0, 1 + movs r6, 0x98 + lsls r6, 3 + adds r0, r6 + b _0809A184 + .align 2, 0 +_0809A174: .4byte gUnknown_083B6DB4 +_0809A178: .4byte 0x000008b4 +_0809A17C: + lsls r0, 1 + movs r1, 0xC8 + lsls r1, 4 + adds r0, r1 +_0809A184: + adds r2, r0 + movs r0, 0 + movs r5, 0 + movs r4, 0x3F +_0809A18C: + strh r5, [r2] + adds r2, 0x2 + adds r3, 0x1 + ands r3, r4 + adds r1, r3, 0 + cmp r1, 0 + bne _0809A19E + ldr r6, _0809A1B8 + adds r2, r6 +_0809A19E: + cmp r1, 0x20 + bne _0809A1A8 + movs r1, 0xF8 + lsls r1, 3 + adds r2, r1 +_0809A1A8: + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2B + bls _0809A18C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A1B8: .4byte 0xfffff7c0 + thumb_func_end sub_809A14C + + thumb_func_start sub_809A1BC +sub_809A1BC: @ 809A1BC + push {r4-r6,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r2, r1, 0 + ldr r0, _0809A228 + ldr r5, [r0] + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r4, _0809A22C + str r1, [r4] + str r5, [r4, 0x4] + movs r6, 0x80 + lsls r6, 1 + ldr r0, _0809A230 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0809A234 + adds r1, r5, 0 + str r3, [sp, 0x4] + bl sub_8004E3C + str r5, [r4] + ldr r3, [sp, 0x4] + str r3, [r4, 0x4] + ldr r1, _0809A238 + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r5, r6 + str r0, [r4] + adds r0, r3, 0 + adds r0, 0x80 + str r0, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r5, 0 + adds r0, 0x80 + str r0, [r4] + adds r6, r3, r6 + str r6, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + adds r5, r0 + str r5, [r4] + adds r3, r0 + str r3, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A228: .4byte gUnknown_083B6DB8 +_0809A22C: .4byte 0x040000d4 +_0809A230: .4byte 0x81000100 +_0809A234: .4byte gWindowConfig_81E6D38 +_0809A238: .4byte 0x80000040 + thumb_func_end sub_809A1BC + + thumb_func_start sub_809A23C +sub_809A23C: @ 809A23C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0809A384 + ldr r5, [r0] + ldr r1, _0809A388 + adds r7, r5, r1 + str r7, [sp, 0x18] + mov r2, sp + adds r2, 0x18 + str r2, [sp, 0x20] + ldr r0, _0809A38C + str r0, [r2, 0x4] + mov r1, sp + ldr r3, _0809A390 + adds r0, r5, r3 + str r0, [sp] + ldr r4, _0809A394 + strh r4, [r1, 0x4] + str r0, [sp, 0x8] + ldr r6, _0809A398 + strh r6, [r1, 0xC] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + ldr r0, _0809A39C + mov r9, r0 + ldr r0, _0809A3A0 + add r0, r9 + add r0, r8 + ldrb r1, [r0] + ldr r2, _0809A3A4 + lsls r1, 2 + adds r0, r1, r2 + ldrh r3, [r0] + ldr r6, _0809A3A8 + adds r0, r5, r6 + strh r3, [r0] + adds r2, 0x2 + adds r1, r2 + ldrh r1, [r1] + ldr r2, _0809A3AC + adds r0, r5, r2 + strh r1, [r0] + mov r0, sp + bl LoadSpritePalettes + ldr r3, _0809A3B0 + adds r6, r5, r3 + movs r0, 0xFC + lsls r0, 2 + str r0, [r6] + adds r0, r4, 0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + movs r2, 0x87 + lsls r2, 1 + mov r10, r2 + add r1, r10 + ldr r3, _0809A3B4 + adds r2, r5, r3 + strh r1, [r2] + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + ldr r0, [r6] + orrs r0, r1 + str r0, [r6] + ldr r0, _0809A3B8 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + add r1, r10 + ldr r2, _0809A3BC + adds r5, r2 + strh r1, [r5] + lsls r4, r0 + ldr r0, [r6] + orrs r0, r4 + str r0, [r6] + mov r3, r8 + lsls r4, r3, 3 + add r4, r8 + ldr r6, _0809A3C0 + add r9, r6 + add r4, r9 + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_809A1BC + ldr r0, [sp, 0x20] + bl LoadSpriteSheet + adds r0, r4, 0 + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809A6D0 + movs r4, 0 + lsls r0, 16 + asrs r6, r0, 16 +_0809A328: + lsls r1, r4, 5 + adds r1, r6, r1 + lsls r1, 16 + asrs r1, 16 + ldr r0, _0809A3C4 + movs r2, 0x1C + movs r3, 0x17 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0809A384 + ldr r5, [r0] + lsls r0, r4, 2 + movs r3, 0xCF + lsls r3, 4 + adds r2, r5, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809A3C8 + adds r0, r1 + str r0, [r2] + lsls r1, r4, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _0809A328 + ldr r6, _0809A3CC + adds r1, r5, r6 + movs r0, 0 + strb r0, [r1] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A384: .4byte gUnknown_083B6DB4 +_0809A388: .4byte 0x000008ca +_0809A38C: .4byte 0x00030200 +_0809A390: .4byte 0x00000ccc +_0809A394: .4byte 0x0000dac8 +_0809A398: .4byte 0xffffdac9 +_0809A39C: .4byte gPokemonStorage +_0809A3A0: .4byte 0x000083c2 +_0809A3A4: .4byte gUnknown_083BB0A8 +_0809A3A8: .4byte 0x00000ce8 +_0809A3AC: .4byte 0x00000cea +_0809A3B0: .4byte 0x00000d08 +_0809A3B4: .4byte 0x00000cec +_0809A3B8: .4byte 0x0000dac9 +_0809A3BC: .4byte 0x00000cee +_0809A3C0: .4byte 0x00008344 +_0809A3C4: .4byte gSpriteTemplate_83BB2B8 +_0809A3C8: .4byte gSprites +_0809A3CC: .4byte 0x00000cca + thumb_func_end sub_809A23C + + thumb_func_start sub_809A3D0 +sub_809A3D0: @ 809A3D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r3, _0809A43C + ldr r5, [r3] + ldr r1, _0809A440 + adds r0, r5, r1 + str r0, [sp, 0x18] + add r2, sp, 0x18 + ldr r4, _0809A444 + mov r9, r4 + movs r6, 0xC0 + lsls r6, 10 + mov r8, r6 + ldr r0, _0809A448 + str r0, [r2, 0x4] + mov r1, sp + ldr r0, _0809A44C + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + movs r1, 0 + ldr r7, _0809A450 + adds r4, r5, r7 + ldrb r0, [r4] + adds r6, r2, 0 + cmp r0, 0 + bne _0809A41E + movs r1, 0x1 +_0809A41E: + strb r1, [r4] + cmp r1, 0 + bne _0809A458 + ldr r0, [r6, 0x4] + mov r1, r9 + ands r0, r1 + mov r4, r8 + orrs r0, r4 + str r0, [r6, 0x4] + ldr r7, _0809A454 + adds r0, r5, r7 + ldrh r0, [r0] + mov r8, r0 + b _0809A478 + .align 2, 0 +_0809A43C: .4byte gUnknown_083B6DB4 +_0809A440: .4byte 0x000008ca +_0809A444: .4byte 0x0000ffff +_0809A448: .4byte 0x00030200 +_0809A44C: .4byte gSpriteTemplate_83BB2B8 +_0809A450: .4byte 0x00000cca +_0809A454: .4byte 0x00000cec +_0809A458: + ldr r0, [r6, 0x4] + mov r1, r9 + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + orrs r0, r1 + str r0, [r6, 0x4] + ldr r4, _0809A570 + adds r0, r5, r4 + ldrh r0, [r0] + mov r8, r0 + mov r1, sp + movs r0, 0x4 + strh r0, [r1] + ldr r0, _0809A574 + strh r0, [r1, 0x2] +_0809A478: + ldr r0, [r3] + ldr r7, _0809A578 + adds r0, r7 + ldr r1, [sp, 0x28] + lsls r5, r1, 3 + adds r5, r1 + ldr r4, _0809A57C + adds r5, r4 + adds r1, r5, 0 + bl sub_809A1BC + adds r0, r6, 0 + bl LoadSpriteSheet + adds r4, 0x7E + ldr r3, [sp, 0x28] + adds r4, r3, r4 + ldrb r0, [r4] + lsls r0, 2 + ldr r1, _0809A580 + adds r0, r1 + mov r1, r8 + movs r2, 0x4 + bl LoadPalette + adds r0, r5, 0 + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809A6D0 + lsls r0, 16 + mov r4, r10 + lsls r2, r4, 24 + asrs r2, 24 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 6 + lsrs r6, r0, 16 + str r6, [sp, 0x20] + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x24] + movs r7, 0 + negs r2, r2 + mov r9, r2 + movs r0, 0x1 + mov r10, r0 +_0809A4DE: + lsls r1, r7, 5 + mov r8, r1 + ldr r3, [sp, 0x24] + lsls r1, r3, 16 + asrs r1, 16 + add r1, r8 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x1C + movs r3, 0x17 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809A584 + ldr r4, [r1] + lsls r6, r7, 2 + ldr r1, _0809A588 + adds r2, r4, r1 + adds r2, r6 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0809A58C + adds r1, r0 + str r1, [r2] + mov r3, r9 + lsls r5, r3, 1 + add r5, r9 + lsls r5, 1 + strh r5, [r1, 0x2E] + ldr r1, [r2] + ldr r3, [sp, 0x20] + lsls r0, r3, 16 + asrs r0, 16 + add r0, r8 + strh r0, [r1, 0x30] + ldr r0, [r2] + mov r1, r10 + strh r1, [r0, 0x32] + ldr r0, [r2] + ldr r1, _0809A590 + str r1, [r0, 0x1C] + lsls r1, r7, 24 + lsrs r1, 24 + bl StartSpriteAnim + movs r3, 0xCF + lsls r3, 4 + adds r4, r3 + adds r4, r6 + ldr r0, [r4] + strh r5, [r0, 0x2E] + ldr r0, [r4] + mov r6, r10 + strh r6, [r0, 0x30] + ldr r1, [r4] + ldr r0, _0809A594 + str r0, [r1, 0x1C] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _0809A4DE + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A570: .4byte 0x00000cec +_0809A574: .4byte 0x0000dac9 +_0809A578: .4byte 0x000008ca +_0809A57C: .4byte gUnknown_020383E4 +_0809A580: .4byte gUnknown_083BB0A8 +_0809A584: .4byte gUnknown_083B6DB4 +_0809A588: .4byte 0x00000cf8 +_0809A58C: .4byte gSprites +_0809A590: .4byte sub_809A5E8 +_0809A594: .4byte sub_809A61C + thumb_func_end sub_809A3D0 + + thumb_func_start sub_809A598 +sub_809A598: @ 809A598 + push {lr} + ldr r0, _0809A5B0 + ldr r0, [r0] + ldr r1, _0809A5B4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0809A5B8 + movs r0, 0x4 + bl FreeSpriteTilesByTag + b _0809A5BE + .align 2, 0 +_0809A5B0: .4byte gUnknown_083B6DB4 +_0809A5B4: .4byte 0x00000cca +_0809A5B8: + movs r0, 0x3 + bl FreeSpriteTilesByTag +_0809A5BE: + ldr r0, _0809A5E0 + ldr r0, [r0] + movs r3, 0xCF + lsls r3, 4 + adds r2, r0, r3 + adds r3, 0x8 + adds r1, r0, r3 + ldr r1, [r1] + str r1, [r2] + ldr r2, _0809A5E4 + adds r1, r0, r2 + adds r3, 0x4 + adds r0, r3 + ldr r0, [r0] + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809A5E0: .4byte gUnknown_083B6DB4 +_0809A5E4: .4byte 0x00000cf4 + thumb_func_end sub_809A598 + + thumb_func_start sub_809A5E8 +sub_809A5E8: @ 809A5E8 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0809A5FC + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + b _0809A614 +_0809A5FC: + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _0809A614 + ldr r0, _0809A618 + str r0, [r2, 0x1C] +_0809A614: + pop {r0} + bx r0 + .align 2, 0 +_0809A618: .4byte SpriteCallbackDummy + thumb_func_end sub_809A5E8 + + thumb_func_start sub_809A61C +sub_809A61C: @ 809A61C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0809A630 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + b _0809A64E +_0809A630: + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x32] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC0 + bls _0809A64E + adds r0, r2, 0 + bl DestroySprite +_0809A64E: + pop {r0} + bx r0 + thumb_func_end sub_809A61C + + thumb_func_start sub_809A654 +sub_809A654: @ 809A654 + push {lr} + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809A690 + ldr r2, _0809A694 + adds r1, r2 + adds r0, r1 + ldrb r1, [r0] + ldr r0, _0809A698 + ldr r2, [r0] + ldr r3, _0809A69C + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _0809A6A8 + lsls r0, r1, 2 + ldr r1, _0809A6A0 + adds r0, r1 + adds r3, 0x22 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _0809A6A4 + adds r1, r2 + movs r2, 0x2 + bl CpuSet + b _0809A6C0 + .align 2, 0 +_0809A690: .4byte gPokemonStorage +_0809A694: .4byte 0x000083c2 +_0809A698: .4byte gUnknown_083B6DB4 +_0809A69C: .4byte 0x00000cca +_0809A6A0: .4byte gUnknown_083BB0A8 +_0809A6A4: .4byte gPlttBufferUnfaded +_0809A6A8: + lsls r0, r1, 2 + ldr r1, _0809A6C4 + adds r0, r1 + ldr r3, _0809A6C8 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _0809A6CC + adds r1, r2 + movs r2, 0x2 + bl CpuSet +_0809A6C0: + pop {r0} + bx r0 + .align 2, 0 +_0809A6C4: .4byte gUnknown_083BB0A8 +_0809A6C8: .4byte 0x00000cee +_0809A6CC: .4byte gPlttBufferUnfaded + thumb_func_end sub_809A654 + + thumb_func_start sub_809A6D0 +sub_809A6D0: @ 809A6D0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + movs r0, 0xB0 + subs r0, r1 + bx lr + thumb_func_end sub_809A6D0 + + thumb_func_start sub_809A6DC +sub_809A6DC: @ 809A6DC + push {r4,r5,lr} + ldr r0, _0809A760 + bl LoadSpriteSheet + ldr r0, _0809A764 + bl LoadSpritePalette + movs r5, 0 +_0809A6EC: + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 19 + movs r0, 0xB8 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + ldr r0, _0809A768 + movs r2, 0x1C + movs r3, 0x15 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _0809A73E + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809A76C + adds r4, r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + movs r0, 0x1 + cmp r5, 0 + bne _0809A72C + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_0809A72C: + strh r0, [r4, 0x34] + ldr r0, _0809A770 + ldr r0, [r0] + lsls r1, r5, 2 + movs r2, 0xD0 + lsls r2, 4 + adds r0, r2 + adds r0, r1 + str r4, [r0] +_0809A73E: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _0809A6EC + bl sub_809BF2C + lsls r0, 24 + cmp r0, 0 + beq _0809A758 + movs r0, 0x1 + bl sub_809A860 +_0809A758: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809A760: .4byte gUnknown_083BB288 +_0809A764: .4byte gUnknown_083BB290 +_0809A768: .4byte gSpriteTemplate_83BB2F0 +_0809A76C: .4byte gSprites +_0809A770: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A6DC + + thumb_func_start sub_809A774 +sub_809A774: @ 809A774 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0 + ldr r7, _0809A7C4 + ldr r0, [r7] + movs r1, 0xD0 + lsls r1, 4 + adds r3, r0, r1 + movs r5, 0 + movs r4, 0x2 +_0809A78A: + lsls r1, r2, 2 + adds r1, r3, r1 + ldr r0, [r1] + strh r5, [r0, 0x24] + ldr r0, [r1] + strh r4, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A78A + lsls r0, r6, 24 + cmp r0, 0 + bge _0809A7CC + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, _0809A7C8 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0x48 + b _0809A7E8 + .align 2, 0 +_0809A7C4: .4byte gUnknown_083B6DB4 +_0809A7C8: .4byte 0x00000d04 +_0809A7CC: + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, _0809A80C + adds r1, r0 + ldr r2, [r1] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0xF8 +_0809A7E8: + strh r2, [r0, 0x32] + ldr r0, [r1] + strh r2, [r0, 0x32] + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r0, r1, r2 + ldr r2, [r0] + movs r0, 0 + strh r0, [r2, 0x3C] + ldr r0, _0809A80C + adds r1, r0 + ldr r1, [r1] + movs r0, 0x1 + strh r0, [r1, 0x3C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A80C: .4byte 0x00000d04 + thumb_func_end sub_809A774 + + thumb_func_start sub_809A810 +sub_809A810: @ 809A810 + push {r4-r6,lr} + movs r3, 0 + ldr r0, _0809A85C + ldr r0, [r0] + movs r1, 0xD0 + lsls r1, 4 + adds r4, r0, r1 + movs r5, 0 + movs r6, 0x5 + negs r6, r6 +_0809A824: + lsls r1, r3, 2 + adds r1, r4, r1 + ldr r2, [r1] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 3 + adds r0, 0x5C + strh r0, [r2, 0x20] + ldr r0, [r1] + strh r5, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x1 + bls _0809A824 + movs r0, 0x1 + bl sub_809A860 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A85C: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A810 + + thumb_func_start sub_809A860 +sub_809A860: @ 809A860 + push {r4,r5,lr} + lsls r0, 24 + cmp r0, 0 + beq _0809A89C + movs r2, 0 + ldr r0, _0809A898 + ldr r0, [r0] + movs r1, 0xD0 + lsls r1, 4 + adds r4, r0, r1 + movs r3, 0 + movs r5, 0x1 +_0809A878: + lsls r1, r2, 2 + adds r1, r4, r1 + ldr r0, [r1] + strh r5, [r0, 0x2E] + ldr r0, [r1] + strh r3, [r0, 0x30] + ldr r0, [r1] + strh r3, [r0, 0x32] + ldr r0, [r1] + strh r3, [r0, 0x36] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A878 + b _0809A8BC + .align 2, 0 +_0809A898: .4byte gUnknown_083B6DB4 +_0809A89C: + movs r2, 0 + ldr r0, _0809A8C4 + ldr r0, [r0] + movs r3, 0xD0 + lsls r3, 4 + adds r1, r0, r3 + movs r3, 0 +_0809A8AA: + lsls r0, r2, 2 + adds r0, r1, r0 + ldr r0, [r0] + strh r3, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A8AA +_0809A8BC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809A8C4: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A860 + + thumb_func_start sub_809A8C8 +sub_809A8C8: @ 809A8C8 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _0809A994 + lsls r0, 2 + ldr r1, _0809A8E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809A8E0: .4byte _0809A8E4 + .align 2, 0 +_0809A8E4: + .4byte _0809A8F8 + .4byte _0809A8FE + .4byte _0809A92C + .4byte _0809A932 + .4byte _0809A984 +_0809A8F8: + movs r0, 0 + strh r0, [r2, 0x24] + b _0809A994 +_0809A8FE: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0809A994 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x24] + adds r0, r3 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _0809A994 + strh r1, [r2, 0x32] + strh r1, [r2, 0x24] + b _0809A994 +_0809A92C: + movs r0, 0x3 + strh r0, [r2, 0x2E] + b _0809A994 +_0809A932: + ldr r0, _0809A97C + ldr r1, [r0] + ldr r0, _0809A980 + adds r1, r0 + ldrh r0, [r2, 0x20] + ldrh r1, [r1] + subs r0, r1 + strh r0, [r2, 0x20] + subs r0, 0x49 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAE + bls _0809A958 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] +_0809A958: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _0809A994 + ldrh r0, [r2, 0x32] + strh r0, [r2, 0x20] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + movs r0, 0x4 + strh r0, [r2, 0x2E] + b _0809A994 + .align 2, 0 +_0809A97C: .4byte gUnknown_083B6DB4 +_0809A980: .4byte 0x000008b6 +_0809A984: + ldr r0, _0809A998 + ldr r0, [r0] + ldr r1, _0809A99C + adds r0, r1 + ldrh r1, [r2, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r2, 0x20] +_0809A994: + pop {r0} + bx r0 + .align 2, 0 +_0809A998: .4byte gUnknown_083B6DB4 +_0809A99C: .4byte 0x000008b6 + thumb_func_end sub_809A8C8 + + thumb_func_start sub_809A9A0 +sub_809A9A0: @ 809A9A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r4, [sp, 0x18] + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0809AA0C + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0809AA18 + movs r1, 0x1 + ands r1, r7 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _0809AA10 + adds r6, r4, r5 + adds r0, r6, 0 + bl StartSpriteAnim + movs r0, 0x3 + mov r1, r8 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r5, 0x1C + adds r4, r5 + ldr r0, _0809AA14 + str r0, [r4] + adds r0, r6, 0 + b _0809AA1A + .align 2, 0 +_0809AA0C: .4byte gSpriteTemplate_83BB2F0 +_0809AA10: .4byte gSprites +_0809AA14: .4byte SpriteCallbackDummy +_0809AA18: + movs r0, 0 +_0809AA1A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809A9A0 + + thumb_func_start sub_809AA24 +sub_809AA24: @ 809AA24 + push {lr} + ldr r0, _0809AA38 + ldr r0, [r0] + ldrb r1, [r0, 0x5] + cmp r1, 0x1 + beq _0809AA40 + ldr r1, _0809AA3C + movs r0, 0 + strb r0, [r1] + b _0809AA44 + .align 2, 0 +_0809AA38: .4byte gUnknown_083B6DB4 +_0809AA3C: .4byte gUnknown_020384E4 +_0809AA40: + ldr r0, _0809AA78 + strb r1, [r0] +_0809AA44: + ldr r0, _0809AA7C + movs r1, 0 + strb r1, [r0] + ldr r0, _0809AA80 + strb r1, [r0] + ldr r0, _0809AA84 + strb r1, [r0] + ldr r0, _0809AA88 + strb r1, [r0] + ldr r0, _0809AA8C + strb r1, [r0] + bl sub_809B0D4 + bl sub_809CC04 + ldr r0, _0809AA90 + ldr r0, [r0] + ldr r1, _0809AA94 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809AA78: .4byte gUnknown_020384E4 +_0809AA7C: .4byte gUnknown_020384E5 +_0809AA80: .4byte gUnknown_020384E6 +_0809AA84: .4byte gUnknown_020384E7 +_0809AA88: .4byte gUnknown_020384E8 +_0809AA8C: .4byte gUnknown_020384E9 +_0809AA90: .4byte gUnknown_083B6DB4 +_0809AA94: .4byte 0x000011e2 + thumb_func_end sub_809AA24 + + thumb_func_start sub_809AA98 +sub_809AA98: @ 809AA98 + push {lr} + bl sub_809CC04 + bl sub_809C028 + ldr r0, _0809AAC0 + ldr r0, [r0] + ldr r1, _0809AAC4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _0809AAC8 + ldrb r0, [r0] + cmp r0, 0 + beq _0809AABA + bl sub_8098BF0 +_0809AABA: + pop {r0} + bx r0 + .align 2, 0 +_0809AAC0: .4byte gUnknown_083B6DB4 +_0809AAC4: .4byte 0x000011e2 +_0809AAC8: .4byte gUnknown_020384E6 + thumb_func_end sub_809AA98 + + thumb_func_start sub_809AACC +sub_809AACC: @ 809AACC + push {r4-r6,lr} + adds r4, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r0, 0x4 + bhi _0809AB84 + lsls r0, 2 + ldr r1, _0809AAE8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809AAE8: .4byte _0809AAEC + .align 2, 0 +_0809AAEC: + .4byte _0809AB00 + .4byte _0809AB2E + .4byte _0809AB56 + .4byte _0809AB5E + .4byte _0809AB7C +_0809AB00: + adds r0, r5, 0 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x64 + strh r1, [r4] + adds r0, r5, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x20 + strh r1, [r6] + b _0809AB84 +_0809AB2E: + cmp r5, 0 + bne _0809AB3A + movs r0, 0x68 + strh r0, [r4] + movs r0, 0x34 + b _0809AB82 +_0809AB3A: + cmp r5, 0x6 + bne _0809AB46 + movs r0, 0x98 + strh r0, [r4] + movs r0, 0x84 + b _0809AB82 +_0809AB46: + movs r0, 0x98 + strh r0, [r4] + subs r1, r5, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + b _0809AB82 +_0809AB56: + movs r0, 0xA2 + strh r0, [r4] + movs r0, 0xC + b _0809AB82 +_0809AB5E: + ldr r0, _0809AB78 + ldrb r0, [r0] + movs r1, 0xE + cmp r0, 0 + beq _0809AB6A + movs r1, 0x8 +_0809AB6A: + strh r1, [r6] + movs r0, 0x58 + muls r0, r5 + adds r0, 0x78 + strh r0, [r4] + b _0809AB84 + .align 2, 0 +_0809AB78: .4byte gUnknown_020384E6 +_0809AB7C: + movs r0, 0xA0 + strh r0, [r4] + movs r0, 0x60 +_0809AB82: + strh r0, [r6] +_0809AB84: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_809AACC + + thumb_func_start sub_809AB8C +sub_809AB8C: @ 809AB8C + push {lr} + ldr r0, _0809ABB4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809ABC0 + cmp r0, 0x1 + bne _0809ABF8 + ldr r0, _0809ABB8 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809ABBC + adds r0, r1 + movs r1, 0xB + bl GetMonData + b _0809ABEA + .align 2, 0 +_0809ABB4: .4byte gUnknown_020384E4 +_0809ABB8: .4byte gUnknown_020384E5 +_0809ABBC: .4byte gPlayerParty +_0809ABC0: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809ABF0 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809ABF4 + adds r1, r2 + adds r0, r1 + movs r1, 0xB + bl GetBoxMonData +_0809ABEA: + lsls r0, 16 + lsrs r0, 16 + b _0809ABFA + .align 2, 0 +_0809ABF0: .4byte gUnknown_020384E5 +_0809ABF4: .4byte gUnknown_020300A4 +_0809ABF8: + movs r0, 0 +_0809ABFA: + pop {r1} + bx r1 + thumb_func_end sub_809AB8C + + thumb_func_start sub_809AC00 +sub_809AC00: @ 809AC00 + push {r4-r6,lr} + ldr r0, _0809AC14 + ldr r4, [r0] + ldr r0, _0809AC18 + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0809AC1C + movs r0, 0 + b _0809AD2C + .align 2, 0 +_0809AC14: .4byte gUnknown_083B6DB4 +_0809AC18: .4byte 0x000011dc +_0809AC1C: + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809AD0C + ldr r1, _0809ACF4 + adds r3, r4, r1 + ldr r2, _0809ACF8 + adds r1, r4, r2 + ldr r0, [r3] + ldr r1, [r1] + adds r0, r1 + str r0, [r3] + ldr r6, _0809ACFC + adds r2, r4, r6 + ldr r0, _0809AD00 + adds r1, r4, r0 + ldr r0, [r2] + ldr r1, [r1] + adds r0, r1 + str r0, [r2] + movs r1, 0x8E + lsls r1, 5 + adds r5, r4, r1 + ldr r1, [r5] + ldr r0, [r3] + asrs r0, 8 + strh r0, [r1, 0x20] + ldr r1, [r5] + ldr r0, [r2] + asrs r0, 8 + strh r0, [r1, 0x22] + ldr r1, [r5] + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + movs r3, 0x80 + lsls r3, 1 + cmp r0, r3 + ble _0809AC78 + ldr r6, _0809AD04 + adds r0, r2, r6 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x40 + strh r0, [r1, 0x20] +_0809AC78: + ldr r1, [r5] + ldrh r2, [r1, 0x20] + movs r6, 0x20 + ldrsh r0, [r1, r6] + cmp r0, 0x3F + bgt _0809AC90 + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + subs r0, r3, r0 + strh r0, [r1, 0x20] +_0809AC90: + ldr r1, [r5] + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0xB0 + ble _0809ACA8 + adds r0, r2, 0 + subs r0, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r0, 0x10 + strh r0, [r1, 0x22] +_0809ACA8: + ldr r2, [r5] + ldrh r3, [r2, 0x22] + movs r6, 0x22 + ldrsh r0, [r2, r6] + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _0809ACC4 + subs r0, r1, r3 + movs r1, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r1, r0 + strh r1, [r2, 0x22] +_0809ACC4: + ldr r0, _0809AD08 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0809AD2A + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0809AD2A + ldr r2, [r5] + adds r2, 0x3F + ldrb r3, [r2] + lsrs r1, r3, 1 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 1 + movs r0, 0x3 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _0809AD2A + .align 2, 0 +_0809ACF4: .4byte 0x000011c8 +_0809ACF8: .4byte 0x000011d0 +_0809ACFC: .4byte 0x000011cc +_0809AD00: .4byte 0x000011d4 +_0809AD04: .4byte 0xffffff00 +_0809AD08: .4byte 0x000011e3 +_0809AD0C: + movs r1, 0x8E + lsls r1, 5 + adds r2, r4, r1 + ldr r1, [r2] + ldr r3, _0809AD34 + adds r0, r4, r3 + ldrh r0, [r0] + strh r0, [r1, 0x20] + ldr r1, [r2] + ldr r6, _0809AD38 + adds r0, r4, r6 + ldrh r0, [r0] + strh r0, [r1, 0x22] + bl sub_809AFB8 +_0809AD2A: + movs r0, 0x1 +_0809AD2C: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809AD34: .4byte 0x000011d8 +_0809AD38: .4byte 0x000011da + thumb_func_end sub_809AC00 + + thumb_func_start sub_809AD3C +sub_809AD3C: @ 809AD3C + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r6, sp + adds r6, 0x2 + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, sp + adds r3, r6, 0 + bl sub_809AACC + ldr r0, _0809AD88 + ldr r1, [r0] + movs r2, 0x8F + lsls r2, 5 + adds r0, r1, r2 + strb r4, [r0] + ldr r3, _0809AD8C + adds r0, r1, r3 + strb r5, [r0] + mov r0, sp + ldrh r2, [r0] + subs r3, 0x9 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r6] + ldr r2, _0809AD90 + adds r1, r2 + strh r0, [r1] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809AD88: .4byte gUnknown_083B6DB4 +_0809AD8C: .4byte 0x000011e1 +_0809AD90: .4byte 0x000011da + thumb_func_end sub_809AD3C + + thumb_func_start sub_809AD94 +sub_809AD94: @ 809AD94 + push {r4-r7,lr} + ldr r0, _0809ADB0 + ldr r2, [r0] + ldr r3, _0809ADB4 + adds r1, r2, r3 + ldrh r1, [r1] + adds r4, r0, 0 + cmp r1, 0 + beq _0809ADBC + ldr r0, _0809ADB8 + adds r1, r2, r0 + movs r0, 0xC + b _0809ADC2 + .align 2, 0 +_0809ADB0: .4byte gUnknown_083B6DB4 +_0809ADB4: .4byte 0x000011de +_0809ADB8: .4byte 0x000011dc +_0809ADBC: + ldr r3, _0809AE04 + adds r1, r2, r3 + movs r0, 0x6 +_0809ADC2: + strh r0, [r1] + ldr r2, [r4] + ldr r0, _0809AE08 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0809ADDA + ldr r3, _0809AE04 + adds r0, r2, r3 + ldrh r0, [r0] + lsrs r0, 1 + strb r0, [r1] +_0809ADDA: + ldr r1, _0809AE0C + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0809AE14 + cmp r1, 0x1 + beq _0809AE30 + ldr r3, _0809AE10 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + b _0809AE46 + .align 2, 0 +_0809AE04: .4byte 0x000011dc +_0809AE08: .4byte 0x000011e3 +_0809AE0C: .4byte 0x000011de +_0809AE10: .4byte 0x000011da +_0809AE14: + ldr r3, _0809AE2C + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _0809AE46 + .align 2, 0 +_0809AE2C: .4byte 0x000011da +_0809AE30: + ldr r3, _0809AE74 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_0809AE46: + subs r7, r1, r0 + ldr r2, [r4] + ldr r3, _0809AE78 + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0809AE80 + cmp r1, 0x1 + beq _0809AE9C + ldr r1, _0809AE7C + adds r0, r2, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + b _0809AEB2 + .align 2, 0 +_0809AE74: .4byte 0x000011da +_0809AE78: .4byte 0x000011df +_0809AE7C: .4byte 0x000011d8 +_0809AE80: + ldr r3, _0809AE98 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _0809AEB2 + .align 2, 0 +_0809AE98: .4byte 0x000011d8 +_0809AE9C: + ldr r3, _0809AF00 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_0809AEB2: + subs r0, r1, r0 + lsls r7, 8 + lsls r0, 8 + ldr r4, [r4] + ldr r3, _0809AF04 + adds r6, r4, r3 + ldr r1, _0809AF08 + adds r5, r4, r1 + ldrh r1, [r5] + bl __divsi3 + str r0, [r6] + ldr r2, _0809AF0C + adds r6, r4, r2 + ldrh r1, [r5] + adds r0, r7, 0 + bl __divsi3 + str r0, [r6] + ldr r3, _0809AF10 + adds r2, r4, r3 + movs r0, 0x8E + lsls r0, 5 + adds r1, r4, r0 + ldr r0, [r1] + movs r3, 0x20 + ldrsh r0, [r0, r3] + lsls r0, 8 + str r0, [r2] + ldr r0, _0809AF14 + adds r4, r0 + ldr r0, [r1] + movs r1, 0x22 + ldrsh r0, [r0, r1] + lsls r0, 8 + str r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809AF00: .4byte 0x000011d8 +_0809AF04: .4byte 0x000011d0 +_0809AF08: .4byte 0x000011dc +_0809AF0C: .4byte 0x000011d4 +_0809AF10: .4byte 0x000011c8 +_0809AF14: .4byte 0x000011cc + thumb_func_end sub_809AD94 + + thumb_func_start sub_809AF18 +sub_809AF18: @ 809AF18 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_809AD3C + bl sub_809AD94 + ldr r0, _0809AFA4 + ldrb r0, [r0] + cmp r0, 0 + bne _0809AF46 + ldr r0, _0809AFA8 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim +_0809AF46: + cmp r4, 0x1 + bne _0809AF70 + ldr r0, _0809AFAC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _0809AF70 + ldr r0, _0809AFA8 + ldr r0, [r0] + ldr r2, _0809AFB0 + adds r1, r0, r2 + strb r4, [r1] + ldr r1, _0809AFB4 + adds r0, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] +_0809AF70: + cmp r4, 0 + beq _0809AF9E + cmp r4, 0 + blt _0809AF9E + cmp r4, 0x3 + bgt _0809AF9E + ldr r0, _0809AFA8 + ldr r2, [r0] + ldr r0, _0809AFB4 + adds r2, r0 + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r2, [r2] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x5] +_0809AF9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809AFA4: .4byte gUnknown_020384E6 +_0809AFA8: .4byte gUnknown_083B6DB4 +_0809AFAC: .4byte gUnknown_020384E4 +_0809AFB0: .4byte 0x000011e2 +_0809AFB4: .4byte 0x000011c4 + thumb_func_end sub_809AF18 + + thumb_func_start sub_809AFB8 +sub_809AFB8: @ 809AFB8 + push {r4,r5,lr} + ldr r5, _0809B000 + ldr r0, _0809B004 + ldr r4, [r0] + movs r1, 0x8F + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r5] + ldr r1, _0809B008 + ldr r2, _0809B00C + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0809B010 + ldrb r0, [r0] + cmp r0, 0 + bne _0809AFEA + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_0809AFEA: + bl sub_809BF74 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0x1 + beq _0809B020 + cmp r0, 0x1 + bgt _0809B014 + cmp r0, 0 + beq _0809B034 + b _0809B05E + .align 2, 0 +_0809B000: .4byte gUnknown_020384E4 +_0809B004: .4byte gUnknown_083B6DB4 +_0809B008: .4byte gUnknown_020384E5 +_0809B00C: .4byte 0x000011e1 +_0809B010: .4byte gUnknown_020384E6 +_0809B014: + cmp r0, 0x2 + bne _0809B05E + movs r0, 0x1 + bl sub_809A860 + b _0809B05E +_0809B020: + ldr r2, _0809B030 + adds r0, r4, r2 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0xC + strb r1, [r0] + b _0809B05E + .align 2, 0 +_0809B030: .4byte 0x000011c4 +_0809B034: + ldr r0, _0809B064 + adds r2, r4, r0 + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r2] + adds r0, 0x43 + movs r1, 0x14 + strb r1, [r0] + ldr r1, [r2] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0809B05E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B064: .4byte 0x000011c4 + thumb_func_end sub_809AFB8 + + thumb_func_start sub_809B068 +sub_809B068: @ 809B068 + push {lr} + ldr r0, _0809B078 + ldrb r0, [r0] + cmp r0, 0 + bne _0809B07C + movs r3, 0 + b _0809B08A + .align 2, 0 +_0809B078: .4byte gUnknown_020384E6 +_0809B07C: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + bls _0809B08A + movs r3, 0x5 +_0809B08A: + ldr r0, _0809B0B8 + ldr r2, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r2, r1 + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809B0AA + ldr r0, _0809B0BC + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] +_0809B0AA: + movs r0, 0x1 + adds r1, r3, 0 + bl sub_809AF18 + pop {r0} + bx r0 + .align 2, 0 +_0809B0B8: .4byte gUnknown_083B6DB4 +_0809B0BC: .4byte 0x000011e3 + thumb_func_end sub_809B068 + + thumb_func_start sub_809B0C0 +sub_809B0C0: @ 809B0C0 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_809AF18 + pop {r0} + bx r0 + thumb_func_end sub_809B0C0 + + thumb_func_start sub_809B0D4 +sub_809B0D4: @ 809B0D4 + ldr r1, _0809B0DC + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809B0DC: .4byte gUnknown_020384EA + thumb_func_end sub_809B0D4 + + thumb_func_start sub_809B0E0 +sub_809B0E0: @ 809B0E0 + ldr r0, _0809B0EC + ldr r1, _0809B0F0 + ldrb r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_0809B0EC: .4byte gUnknown_020384EA +_0809B0F0: .4byte gUnknown_020384E5 + thumb_func_end sub_809B0E0 + + thumb_func_start sub_809B0F4 +sub_809B0F4: @ 809B0F4 + ldr r0, _0809B0FC + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809B0FC: .4byte gUnknown_020384EA + thumb_func_end sub_809B0F4 + + thumb_func_start sub_809B100 +sub_809B100: @ 809B100 + lsls r0, 24 + ldr r1, _0809B120 + ldr r1, [r1] + ldr r2, _0809B124 + adds r3, r1, r2 + ldr r2, _0809B128 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0809B12C + adds r1, r0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809B120: .4byte gUnknown_083B6DB4 +_0809B124: .4byte 0x000012a4 +_0809B128: .4byte gUnknown_083BBBC8 +_0809B12C: .4byte 0x000012a8 + thumb_func_end sub_809B100 + + thumb_func_start sub_809B130 +sub_809B130: @ 809B130 + push {lr} + ldr r0, _0809B148 + ldr r0, [r0] + ldr r1, _0809B14C + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0809B148: .4byte gUnknown_083B6DB4 +_0809B14C: .4byte 0x000012a4 + thumb_func_end sub_809B130 + + thumb_func_start sub_809B150 +sub_809B150: @ 809B150 + push {r4,r5,lr} + ldr r0, _0809B16C + ldr r5, [r0] + ldr r0, _0809B170 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _0809B1A0 + cmp r0, 0x1 + bgt _0809B174 + cmp r0, 0 + beq _0809B17E + b _0809B1CE + .align 2, 0 +_0809B16C: .4byte gUnknown_083B6DB4 +_0809B170: .4byte 0x000012a8 +_0809B174: + cmp r0, 0x2 + beq _0809B1BE + cmp r0, 0x3 + beq _0809B186 + b _0809B1CE +_0809B17E: + ldr r0, _0809B18C + ldrb r0, [r0] + cmp r0, 0 + beq _0809B190 +_0809B186: + movs r0, 0 + b _0809B1D0 + .align 2, 0 +_0809B18C: .4byte gUnknown_020384E6 +_0809B190: + movs r1, 0x8E + lsls r1, 5 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + b _0809B1C8 +_0809B1A0: + bl sub_809B324 + lsls r0, 24 + cmp r0, 0 + bne _0809B1CE + movs r1, 0x8E + lsls r1, 5 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + bl sub_809B384 + b _0809B1C8 +_0809B1BE: + bl sub_809B358 + lsls r0, 24 + cmp r0, 0 + bne _0809B1CE +_0809B1C8: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_0809B1CE: + movs r0, 0x1 +_0809B1D0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B150 + + thumb_func_start sub_809B1D8 +sub_809B1D8: @ 809B1D8 + push {r4,r5,lr} + ldr r0, _0809B1F4 + ldr r4, [r0] + ldr r0, _0809B1F8 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _0809B220 + cmp r0, 0x1 + bgt _0809B1FC + cmp r0, 0 + beq _0809B202 + b _0809B244 + .align 2, 0 +_0809B1F4: .4byte gUnknown_083B6DB4 +_0809B1F8: .4byte 0x000012a8 +_0809B1FC: + cmp r0, 0x2 + beq _0809B240 + b _0809B244 +_0809B202: + bl sub_809B324 + lsls r0, 24 + cmp r0, 0 + bne _0809B244 + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + bl sub_809B3E0 + b _0809B238 +_0809B220: + bl sub_809B358 + lsls r0, 24 + cmp r0, 0 + bne _0809B244 + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_0809B238: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0809B244 +_0809B240: + movs r0, 0 + b _0809B246 +_0809B244: + movs r0, 0x1 +_0809B246: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B1D8 + + thumb_func_start sub_809B24C +sub_809B24C: @ 809B24C + push {r4,r5,lr} + ldr r0, _0809B268 + ldr r4, [r0] + ldr r0, _0809B26C + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _0809B2E0 + cmp r0, 0x1 + bgt _0809B270 + cmp r0, 0 + beq _0809B276 + b _0809B31C + .align 2, 0 +_0809B268: .4byte gUnknown_083B6DB4 +_0809B26C: .4byte 0x000012a8 +_0809B270: + cmp r0, 0x2 + beq _0809B318 + b _0809B31C +_0809B276: + ldr r0, _0809B290 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B298 + cmp r0, 0x1 + bne _0809B318 + ldr r2, _0809B294 + adds r1, r4, r2 + movs r0, 0xE + b _0809B2A0 + .align 2, 0 +_0809B290: .4byte gUnknown_020384E4 +_0809B294: .4byte 0x000012a9 +_0809B298: + bl get_preferred_box + ldr r2, _0809B2D0 + adds r1, r4, r2 +_0809B2A0: + strb r0, [r1] + ldr r0, _0809B2D4 + ldr r4, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + ldr r2, _0809B2D0 + adds r0, r4, r2 + ldrb r0, [r0] + ldr r1, _0809B2D8 + ldrb r1, [r1] + bl sub_80996B0 + ldr r0, _0809B2DC + adds r4, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0809B31C + .align 2, 0 +_0809B2D0: .4byte 0x000012a9 +_0809B2D4: .4byte gUnknown_083B6DB4 +_0809B2D8: .4byte gUnknown_020384E5 +_0809B2DC: .4byte 0x000012a8 +_0809B2E0: + bl sub_809971C + lsls r0, 24 + cmp r0, 0 + bne _0809B31C + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + ldr r2, _0809B310 + adds r0, r4, r2 + ldrb r0, [r0] + ldr r1, _0809B314 + ldrb r1, [r1] + bl diegohint1 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0809B31C + .align 2, 0 +_0809B310: .4byte 0x000012a9 +_0809B314: .4byte gUnknown_020384E5 +_0809B318: + movs r0, 0 + b _0809B31E +_0809B31C: + movs r0, 0x1 +_0809B31E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B24C + + thumb_func_start sub_809B324 +sub_809B324: @ 809B324 + push {lr} + ldr r0, _0809B348 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0809B33E + cmp r0, 0x8 + beq _0809B34C +_0809B33E: + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _0809B350 + .align 2, 0 +_0809B348: .4byte gUnknown_083B6DB4 +_0809B34C: + movs r0, 0 + b _0809B352 +_0809B350: + movs r0, 0x1 +_0809B352: + pop {r1} + bx r1 + thumb_func_end sub_809B324 + + thumb_func_start sub_809B358 +sub_809B358: @ 809B358 + push {lr} + ldr r0, _0809B378 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0809B37C + ldrh r0, [r1, 0x26] + subs r0, 0x1 + strh r0, [r1, 0x26] + movs r0, 0x1 + b _0809B37E + .align 2, 0 +_0809B378: .4byte gUnknown_083B6DB4 +_0809B37C: + movs r0, 0 +_0809B37E: + pop {r1} + bx r1 + thumb_func_end sub_809B358 + + thumb_func_start sub_809B384 +sub_809B384: @ 809B384 + push {r4,lr} + ldr r0, _0809B3AC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B3B4 + cmp r0, 0x1 + bne _0809B3D2 + ldr r4, _0809B3B0 + ldrb r1, [r4] + movs r0, 0xE + bl sub_809B44C + ldrb r1, [r4] + movs r0, 0 + bl sub_8099584 + b _0809B3CC + .align 2, 0 +_0809B3AC: .4byte gUnknown_020384E4 +_0809B3B0: .4byte gUnknown_020384E5 +_0809B3B4: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r4, _0809B3D8 + ldrb r1, [r4] + bl sub_809B44C + ldrb r1, [r4] + movs r0, 0x1 + bl sub_8099584 +_0809B3CC: + ldr r1, _0809B3DC + movs r0, 0x1 + strb r0, [r1] +_0809B3D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809B3D8: .4byte gUnknown_020384E5 +_0809B3DC: .4byte gUnknown_020384E6 + thumb_func_end sub_809B384 + + thumb_func_start sub_809B3E0 +sub_809B3E0: @ 809B3E0 + push {r4,r5,lr} + ldr r0, _0809B408 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B410 + cmp r0, 0x1 + bne _0809B432 + ldr r4, _0809B40C + ldrb r1, [r4] + movs r0, 0xE + bl diegohint2 + ldrb r1, [r4] + movs r0, 0xE + bl sub_809960C + b _0809B42C + .align 2, 0 +_0809B408: .4byte gUnknown_020384E4 +_0809B40C: .4byte gUnknown_020384E5 +_0809B410: + bl get_preferred_box + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _0809B438 + ldrb r1, [r5] + adds r0, r4, 0 + bl diegohint2 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_809960C +_0809B42C: + ldr r1, _0809B43C + movs r0, 0 + strb r0, [r1] +_0809B432: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B438: .4byte gUnknown_020384E5 +_0809B43C: .4byte gUnknown_020384E6 + thumb_func_end sub_809B3E0 + + thumb_func_start sub_809B440 +sub_809B440: @ 809B440 + push {lr} + bl sub_809BF74 + pop {r0} + bx r0 + thumb_func_end sub_809B440 + + thumb_func_start sub_809B44C +sub_809B44C: @ 809B44C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0xE + bne _0809B488 + ldr r0, _0809B478 + ldr r0, [r0] + ldr r1, _0809B47C + adds r0, r1 + ldr r3, _0809B480 + ldr r1, _0809B484 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + b _0809B4AA + .align 2, 0 +_0809B478: .4byte gUnknown_083B6DB4 +_0809B47C: .4byte 0x000025b4 +_0809B480: .4byte gPlayerParty +_0809B484: .4byte gUnknown_020384E5 +_0809B488: + lsls r1, r4, 2 + adds r1, r4 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 4 + ldr r2, _0809B4C0 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B4C4 + ldr r1, [r1] + ldr r2, _0809B4C8 + adds r1, r2 + bl sub_803B4B4 +_0809B4AA: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809B548 + ldr r0, _0809B4CC + strb r4, [r0] + ldr r0, _0809B4D0 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B4C0: .4byte gUnknown_020300A4 +_0809B4C4: .4byte gUnknown_083B6DB4 +_0809B4C8: .4byte 0x000025b4 +_0809B4CC: .4byte gUnknown_020384E7 +_0809B4D0: .4byte gUnknown_020384E8 + thumb_func_end sub_809B44C + + thumb_func_start diegohint2 +diegohint2: @ 809B4D4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r6, 0xE + bne _0809B508 + ldr r1, _0809B4FC + movs r0, 0x64 + muls r0, r5 + adds r0, r1 + ldr r1, _0809B500 + ldr r1, [r1] + ldr r2, _0809B504 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809B536 + .align 2, 0 +_0809B4FC: .4byte gPlayerParty +_0809B500: .4byte gUnknown_083B6DB4 +_0809B504: .4byte 0x000025b4 +_0809B508: + ldr r0, _0809B53C + ldr r4, [r0] + ldr r0, _0809B540 + adds r4, r0 + adds r0, r4, 0 + bl pokemon_restore_pp + ldr r3, _0809B544 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + lsls r2, r6, 2 + adds r2, r6 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 5 + adds r0, r1 + adds r0, r3 + adds r0, 0x4 + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy +_0809B536: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B53C: .4byte gUnknown_083B6DB4 +_0809B540: .4byte 0x000025b4 +_0809B544: .4byte gPokemonStorage + thumb_func_end diegohint2 + + thumb_func_start sub_809B548 +sub_809B548: @ 809B548 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + cmp r0, 0xE + bne _0809B568 + movs r0, 0x64 + muls r0, r2 + ldr r1, _0809B564 + adds r0, r1 + bl ZeroMonData + b _0809B582 + .align 2, 0 +_0809B564: .4byte gPlayerParty +_0809B568: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809B588 + adds r1, r2 + adds r0, r1 + bl ZeroBoxMonData +_0809B582: + pop {r0} + bx r0 + .align 2, 0 +_0809B588: .4byte gUnknown_020300A4 + thumb_func_end sub_809B548 + + thumb_func_start diegohint1 +diegohint1: @ 809B58C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r5, 0xE + bne _0809B5C0 + ldr r0, _0809B5B4 + ldr r0, [r0] + ldr r1, _0809B5B8 + adds r0, r1 + ldr r2, _0809B5BC + movs r1, 0x64 + muls r1, r6 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809B5E2 + .align 2, 0 +_0809B5B4: .4byte gUnknown_083B6DB4 +_0809B5B8: .4byte 0x00002618 +_0809B5BC: .4byte gPlayerParty +_0809B5C0: + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 4 + ldr r2, _0809B614 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B618 + ldr r1, [r1] + ldr r2, _0809B61C + adds r1, r2 + bl sub_803B4B4 +_0809B5E2: + adds r0, r5, 0 + adds r1, r6, 0 + bl diegohint2 + ldr r0, _0809B618 + ldr r1, [r0] + ldr r0, _0809B620 + adds r4, r1, r0 + ldr r2, _0809B61C + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0 + movs r1, 0 + bl sub_809C04C + ldr r0, _0809B624 + strb r5, [r0] + ldr r0, _0809B628 + strb r6, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B614: .4byte gUnknown_020300A4 +_0809B618: .4byte gUnknown_083B6DB4 +_0809B61C: .4byte 0x00002618 +_0809B620: .4byte 0x000025b4 +_0809B624: .4byte gUnknown_020384E7 +_0809B628: .4byte gUnknown_020384E8 + thumb_func_end diegohint1 + + thumb_func_start sub_809B62C +sub_809B62C: @ 809B62C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + bl sub_8095B24 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0809B64A + movs r0, 0 + b _0809B6AC +_0809B64A: + ldr r5, _0809B668 + ldrb r0, [r5] + cmp r0, 0 + beq _0809B66C + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + bl sub_8099480 + movs r0, 0 + strb r0, [r5] + b _0809B686 + .align 2, 0 +_0809B668: .4byte gUnknown_020384E6 +_0809B66C: + ldr r5, _0809B6B4 + ldrb r1, [r5] + movs r0, 0xE + bl sub_809B44C + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + ldrb r0, [r5] + bl sub_8099520 +_0809B686: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bne _0809B698 + lsrs r0, r4, 24 + bl sub_8098D20 +_0809B698: + ldr r0, _0809B6B8 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x1 +_0809B6AC: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809B6B4: .4byte gUnknown_020384E5 +_0809B6B8: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B62C + + thumb_func_start sub_809B6BC +sub_809B6BC: @ 809B6BC + push {lr} + ldr r0, _0809B6D8 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809B6D8: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B6BC + + thumb_func_start sub_809B6DC +sub_809B6DC: @ 809B6DC + push {lr} + ldr r0, _0809B6EC + ldrb r0, [r0] + cmp r0, 0 + beq _0809B6F0 + movs r2, 0x2 + b _0809B700 + .align 2, 0 +_0809B6EC: .4byte gUnknown_020384E6 +_0809B6F0: + ldr r0, _0809B720 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0x1 + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r2, r0, 31 +_0809B700: + ldr r0, _0809B724 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_809981C + ldr r0, _0809B728 + ldr r1, [r0] + ldr r2, _0809B72C + adds r0, r1, r2 + ldr r2, _0809B730 + adds r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_0809B720: .4byte gUnknown_020384E4 +_0809B724: .4byte gUnknown_020384E5 +_0809B728: .4byte gUnknown_083B6DB4 +_0809B72C: .4byte 0x000026e4 +_0809B730: .4byte 0x000011fa + thumb_func_end sub_809B6DC + + thumb_func_start sub_809B734 +sub_809B734: @ 809B734 + push {lr} + bl sub_80998D8 + lsls r0, 24 + cmp r0, 0 + beq _0809B744 + movs r0, 0x1 + b _0809B758 +_0809B744: + ldr r0, _0809B75C + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + movs r0, 0 +_0809B758: + pop {r1} + bx r1 + .align 2, 0 +_0809B75C: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B734 + + thumb_func_start sub_809B760 +sub_809B760: @ 809B760 + push {lr} + bl sub_8099920 + ldr r1, _0809B774 + ldrb r0, [r1] + cmp r0, 0 + beq _0809B778 + movs r0, 0 + strb r0, [r1] + b _0809B79E + .align 2, 0 +_0809B774: .4byte gUnknown_020384E6 +_0809B778: + ldr r0, _0809B788 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809B78C + movs r2, 0xE + b _0809B794 + .align 2, 0 +_0809B788: .4byte gUnknown_020384E4 +_0809B78C: + bl get_preferred_box + lsls r0, 24 + lsrs r2, r0, 24 +_0809B794: + ldr r0, _0809B7A8 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_809B548 +_0809B79E: + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809B7A8: .4byte gUnknown_020384E5 + thumb_func_end sub_809B760 + + thumb_func_start sub_809B7AC +sub_809B7AC: @ 809B7AC + push {lr} + ldr r0, _0809B7CC + ldrb r0, [r0] + cmp r0, 0 + beq _0809B7C8 + ldr r0, _0809B7D0 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim +_0809B7C8: + pop {r0} + bx r0 + .align 2, 0 +_0809B7CC: .4byte gUnknown_020384E6 +_0809B7D0: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B7AC + + thumb_func_start sub_809B7D4 +sub_809B7D4: @ 809B7D4 + push {r4-r6,lr} + ldr r0, _0809B804 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B81C + ldr r0, _0809B808 + ldr r4, [r0] + ldr r1, _0809B80C + adds r0, r4, r1 + ldr r2, _0809B810 + adds r1, r4, r2 + movs r2, 0x64 + bl memcpy + ldr r0, _0809B814 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _0809B818 + adds r4, r1 + movs r0, 0x1 + negs r0, r0 + strb r0, [r4] + b _0809B8A6 + .align 2, 0 +_0809B804: .4byte gUnknown_020384E6 +_0809B808: .4byte gUnknown_083B6DB4 +_0809B80C: .4byte 0x00002618 +_0809B810: .4byte 0x000025b4 +_0809B814: .4byte 0x00002682 +_0809B818: .4byte 0x00002683 +_0809B81C: + ldr r0, _0809B84C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809B864 + ldr r0, _0809B850 + ldr r4, [r0] + ldr r2, _0809B854 + adds r0, r4, r2 + ldr r3, _0809B858 + ldr r1, _0809B85C + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + ldr r0, _0809B860 + adds r4, r0 + movs r0, 0xE + b _0809B896 + .align 2, 0 +_0809B84C: .4byte gUnknown_020384E4 +_0809B850: .4byte gUnknown_083B6DB4 +_0809B854: .4byte 0x00002618 +_0809B858: .4byte gPlayerParty +_0809B85C: .4byte gUnknown_020384E5 +_0809B860: .4byte 0x00002682 +_0809B864: + ldr r5, _0809B8FC + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809B900 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r2, r5, 0x4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B904 + ldr r4, [r1] + ldr r2, _0809B908 + adds r1, r4, r2 + bl sub_803B4B4 + ldrb r0, [r5] + ldr r1, _0809B90C + adds r4, r1 +_0809B896: + strb r0, [r4] + ldr r0, _0809B904 + ldr r0, [r0] + ldr r1, _0809B900 + ldrb r1, [r1] + ldr r2, _0809B910 + adds r0, r2 + strb r1, [r0] +_0809B8A6: + ldr r0, _0809B904 + ldr r6, [r0] + ldr r0, _0809B914 + adds r4, r6, r0 + movs r0, 0 + strb r0, [r4] + ldr r1, _0809B918 + adds r5, r6, r1 + strb r0, [r5] + ldr r0, _0809B91C + adds r2, r6, r0 + movs r0, 0x39 + strh r0, [r2] + ldr r0, _0809B920 + adds r1, r6, r0 + ldr r0, _0809B924 + strh r0, [r1] + ldr r0, _0809B928 + adds r1, r6, r0 + ldr r0, _0809B92C + strh r0, [r1] + ldr r1, _0809B908 + adds r0, r6, r1 + movs r1, 0x50 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + movs r2, 0x1 + ands r1, r2 + strb r1, [r4] + lsrs r0, 17 + movs r1, 0x1 + ands r0, r1 + strb r0, [r5] + ldrh r0, [r4] + cmp r0, 0 + beq _0809B934 + ldr r2, _0809B930 + adds r1, r6, r2 + movs r0, 0 + strb r0, [r1] + b _0809B940 + .align 2, 0 +_0809B8FC: .4byte gPokemonStorage +_0809B900: .4byte gUnknown_020384E5 +_0809B904: .4byte gUnknown_083B6DB4 +_0809B908: .4byte 0x00002618 +_0809B90C: .4byte 0x00002682 +_0809B910: .4byte 0x00002683 +_0809B914: .4byte 0x0000267e +_0809B918: .4byte 0x0000267f +_0809B91C: .4byte 0x00002686 +_0809B920: .4byte 0x00002688 +_0809B924: .4byte 0x00000123 +_0809B928: .4byte 0x0000268a +_0809B92C: .4byte 0x00000163 +_0809B930: .4byte 0x0000267d +_0809B934: + ldr r2, _0809B954 + adds r0, r6, r2 + strb r1, [r0] + subs r2, 0x1 + adds r0, r6, r2 + strb r1, [r0] +_0809B940: + ldr r0, _0809B958 + ldr r0, [r0] + ldr r1, _0809B95C + adds r0, r1 + movs r1, 0 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B954: .4byte 0x0000267d +_0809B958: .4byte gUnknown_083B6DB4 +_0809B95C: .4byte 0x00002684 + thumb_func_end sub_809B7D4 + + thumb_func_start sub_809B960 +sub_809B960: @ 809B960 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0809B988 + ldr r2, [r0] + ldr r3, _0809B98C + adds r1, r2, r3 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _0809B994 + ldr r7, _0809B990 + adds r0, r2, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _0809BB5C + .align 2, 0 +_0809B988: .4byte gUnknown_083B6DB4 +_0809B98C: .4byte 0x0000267d +_0809B990: .4byte 0x0000267c +_0809B994: + ldr r1, _0809B9A4 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0809B9A8 + cmp r0, 0x1 + beq _0809BA84 + b _0809BB58 + .align 2, 0 +_0809B9A4: .4byte 0x00002684 +_0809B9A8: + movs r5, 0 + movs r6, 0 +_0809B9AC: + mov r2, r12 + ldr r4, [r2] + ldr r3, _0809BA28 + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bne _0809B9CC + ldr r7, _0809BA2C + adds r0, r4, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, r5 + beq _0809BA02 +_0809B9CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809BA30 + adds r0, r1 + ldr r1, _0809BA34 + adds r2, r4, r1 + movs r1, 0x50 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0809B9F0 + ldr r2, _0809BA38 + adds r0, r4, r2 + strb r6, [r0] +_0809B9F0: + movs r0, 0x2 + ands r3, r0 + ldr r7, _0809BA3C + mov r12, r7 + cmp r3, 0 + beq _0809BA02 + ldr r1, _0809BA40 + adds r0, r4, r1 + strb r6, [r0] +_0809BA02: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809B9AC + mov r3, r12 + ldr r2, [r3] + ldr r7, _0809BA38 + adds r0, r2, r7 + ldrh r0, [r0] + cmp r0, 0 + bne _0809BA4C + ldr r1, _0809BA44 + adds r0, r2, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r3, _0809BA48 + b _0809BB54 + .align 2, 0 +_0809BA28: .4byte 0x00002682 +_0809BA2C: .4byte 0x00002683 +_0809BA30: .4byte gPlayerParty +_0809BA34: .4byte 0x00002686 +_0809BA38: .4byte 0x0000267e +_0809BA3C: .4byte gUnknown_083B6DB4 +_0809BA40: .4byte 0x0000267f +_0809BA44: .4byte 0x0000267d +_0809BA48: .4byte 0x0000267c +_0809BA4C: + movs r7, 0x9A + lsls r7, 6 + adds r0, r2, r7 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809BA68 + adds r0, r2, r3 + strb r1, [r0] + adds r7, 0x4 + adds r1, r2, r7 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0809BB58 + .align 2, 0 +_0809BA68: .4byte 0x00002681 +_0809BA6C: + ldr r1, _0809BA7C + adds r0, r2, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r7, _0809BA80 + adds r0, r2, r7 + strb r3, [r0] + b _0809BB3C + .align 2, 0 +_0809BA7C: .4byte 0x0000267d +_0809BA80: .4byte 0x0000267c +_0809BA84: + movs r5, 0 + mov r9, r12 + adds r4, r2, 0 + movs r0, 0x9A + lsls r0, 6 + adds r6, r4, r0 + ldr r1, _0809BB6C + adds r1, r4 + mov r8, r1 + ldr r2, _0809BB70 + mov r10, r2 +_0809BA9A: + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r3, _0809BB74 + adds r1, r4, r3 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809BB78 + adds r1, r2 + adds r0, r1 + movs r1, 0x50 + ldr r7, _0809BB7C + adds r2, r4, r7 + bl GetBoxMonData + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _0809BB00 + ldr r1, _0809BB80 + adds r0, r4, r1 + ldrh r0, [r0] + ldrh r2, [r6] + mov r1, r10 + ands r1, r0 + mov r0, r10 + ands r0, r2 + cmp r1, r0 + beq _0809BB00 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0809BAF2 + ldr r2, _0809BB84 + adds r1, r4, r2 + movs r0, 0 + strb r0, [r1] +_0809BAF2: + movs r0, 0x2 + ands r3, r0 + cmp r3, 0 + beq _0809BB00 + movs r0, 0 + mov r3, r8 + strb r0, [r3] +_0809BB00: + mov r7, r9 + ldr r2, [r7] + ldr r0, _0809BB74 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r3, 0 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + ldr r7, _0809BB88 + mov r12, r7 + cmp r0, 0x1D + ble _0809BB32 + strb r3, [r1] + movs r0, 0x9A + lsls r0, 6 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xD + bgt _0809BA6C +_0809BB32: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _0809BA9A +_0809BB3C: + mov r1, r12 + ldr r2, [r1] + ldr r3, _0809BB84 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + bne _0809BB58 + ldr r7, _0809BB8C + adds r0, r2, r7 + movs r1, 0x1 + strb r1, [r0] + subs r3, 0x2 +_0809BB54: + adds r0, r2, r3 + strb r1, [r0] +_0809BB58: + movs r0, 0x1 + negs r0, r0 +_0809BB5C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809BB6C: .4byte 0x0000267f +_0809BB70: .4byte 0x0000ffff +_0809BB74: .4byte 0x00002681 +_0809BB78: .4byte gUnknown_020300A4 +_0809BB7C: .4byte 0x00002686 +_0809BB80: .4byte 0x00002682 +_0809BB84: .4byte 0x0000267e +_0809BB88: .4byte gUnknown_083B6DB4 +_0809BB8C: .4byte 0x0000267d + thumb_func_end sub_809B960 + + thumb_func_start sub_809BB90 +sub_809BB90: @ 809BB90 + push {lr} + ldr r0, _0809BBB0 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BBAA + ldr r0, _0809BBB4 + ldr r1, _0809BBB8 + ldr r1, [r1] + ldr r2, _0809BBBC + adds r1, r2 + movs r2, 0x64 + bl memcpy +_0809BBAA: + pop {r0} + bx r0 + .align 2, 0 +_0809BBB0: .4byte gUnknown_020384E6 +_0809BBB4: .4byte gUnknown_02038480 +_0809BBB8: .4byte gUnknown_083B6DB4 +_0809BBBC: .4byte 0x000025b4 + thumb_func_end sub_809BB90 + + thumb_func_start sub_809BBC0 +sub_809BBC0: @ 809BBC0 + push {lr} + ldr r0, _0809BBE4 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BC08 + ldr r0, _0809BBE8 + ldrb r0, [r0] + cmp r0, 0xE + bne _0809BBF8 + ldr r0, _0809BBEC + ldr r0, [r0] + ldr r1, _0809BBF0 + adds r0, r1 + ldr r1, _0809BBF4 + movs r2, 0x64 + bl memcpy + b _0809BC08 + .align 2, 0 +_0809BBE4: .4byte gUnknown_020384E6 +_0809BBE8: .4byte gUnknown_020384E7 +_0809BBEC: .4byte gUnknown_083B6DB4 +_0809BBF0: .4byte 0x000025b4 +_0809BBF4: .4byte gUnknown_02038480 +_0809BBF8: + ldr r0, _0809BC0C + ldr r0, [r0] + ldr r1, _0809BC10 + adds r0, r1 + ldr r1, _0809BC14 + movs r2, 0x50 + bl memcpy +_0809BC08: + pop {r0} + bx r0 + .align 2, 0 +_0809BC0C: .4byte gUnknown_083B6DB4 +_0809BC10: .4byte 0x000025b4 +_0809BC14: .4byte gUnknown_02038480 + thumb_func_end sub_809BBC0 + + thumb_func_start sub_809BC18 +sub_809BC18: @ 809BC18 + push {r4,r5,lr} + ldr r0, _0809BC48 + ldrb r5, [r0] + cmp r5, 0 + beq _0809BC64 + bl sub_809BB90 + ldr r0, _0809BC4C + ldr r2, [r0] + ldr r0, _0809BC50 + adds r1, r2, r0 + ldr r0, _0809BC54 + str r0, [r1] + ldr r1, _0809BC58 + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809BC5C + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0809BC60 + adds r2, r0 + strb r1, [r2] + b _0809BCF2 + .align 2, 0 +_0809BC48: .4byte gUnknown_020384E6 +_0809BC4C: .4byte gUnknown_083B6DB4 +_0809BC50: .4byte 0x00002690 +_0809BC54: .4byte gUnknown_02038480 +_0809BC58: .4byte 0x0000268d +_0809BC5C: .4byte 0x0000268c +_0809BC60: .4byte 0x0000268e +_0809BC64: + ldr r0, _0809BC9C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BCBC + ldr r0, _0809BCA0 + ldr r4, [r0] + ldr r2, _0809BCA4 + adds r1, r4, r2 + ldr r0, _0809BCA8 + str r0, [r1] + ldr r0, _0809BCAC + ldrb r1, [r0] + ldr r3, _0809BCB0 + adds r0, r4, r3 + strb r1, [r0] + bl sub_8095C28 + subs r0, 0x1 + ldr r2, _0809BCB4 + adds r1, r4, r2 + strb r0, [r1] + ldr r3, _0809BCB8 + adds r4, r3 + strb r5, [r4] + b _0809BCF2 + .align 2, 0 +_0809BC9C: .4byte gUnknown_020384E4 +_0809BCA0: .4byte gUnknown_083B6DB4 +_0809BCA4: .4byte 0x00002690 +_0809BCA8: .4byte gPlayerParty +_0809BCAC: .4byte gUnknown_020384E5 +_0809BCB0: .4byte 0x0000268d +_0809BCB4: .4byte 0x0000268c +_0809BCB8: .4byte 0x0000268e +_0809BCBC: + ldr r0, _0809BCF8 + ldr r3, [r0] + ldr r0, _0809BCFC + adds r4, r3, r0 + ldr r2, _0809BD00 + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + adds r2, 0x4 + adds r0, r2 + str r0, [r4] + ldr r0, _0809BD04 + ldrb r1, [r0] + ldr r2, _0809BD08 + adds r0, r3, r2 + strb r1, [r0] + ldr r0, _0809BD0C + adds r1, r3, r0 + movs r0, 0x1D + strb r0, [r1] + ldr r1, _0809BD10 + adds r3, r1 + movs r0, 0x5 + strb r0, [r3] +_0809BCF2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809BCF8: .4byte gUnknown_083B6DB4 +_0809BCFC: .4byte 0x00002690 +_0809BD00: .4byte gPokemonStorage +_0809BD04: .4byte gUnknown_020384E5 +_0809BD08: .4byte 0x0000268d +_0809BD0C: .4byte 0x0000268c +_0809BD10: .4byte 0x0000268e + thumb_func_end sub_809BC18 + + thumb_func_start sub_809BD14 +sub_809BD14: @ 809BD14 + push {lr} + ldr r0, _0809BD24 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BD28 + bl sub_809BBC0 + b _0809BD30 + .align 2, 0 +_0809BD24: .4byte gUnknown_020384E6 +_0809BD28: + ldr r0, _0809BD34 + ldr r1, _0809BD38 + ldrb r1, [r1, 0x9] + strb r1, [r0] +_0809BD30: + pop {r0} + bx r0 + .align 2, 0 +_0809BD34: .4byte gUnknown_020384E5 +_0809BD38: .4byte 0x02018000 + thumb_func_end sub_809BD14 + + thumb_func_start party_compaction +party_compaction: @ 809BD3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, _0809BD88 + movs r6, 0 + movs r5, 0 + movs r0, 0x64 + mov r9, r0 + ldr r1, _0809BD8C + mov r8, r1 + subs r0, 0x65 + mov r10, r0 +_0809BD58: + mov r0, r9 + muls r0, r6 + mov r1, r8 + adds r4, r0, r1 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + cmp r0, 0 + beq _0809BD90 + cmp r6, r5 + beq _0809BD80 + mov r0, r9 + muls r0, r5 + add r0, r8 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy +_0809BD80: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + b _0809BD9A + .align 2, 0 +_0809BD88: .4byte 0x0000ffff +_0809BD8C: .4byte gPlayerParty +_0809BD90: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, r10 + bne _0809BD9A + adds r7, r6, 0 +_0809BD9A: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _0809BD58 + lsls r7, 16 + cmp r5, 0x5 + bhi _0809BDC2 + movs r6, 0x64 + ldr r4, _0809BDD4 +_0809BDAE: + adds r0, r5, 0 + muls r0, r6 + adds r0, r4 + bl ZeroMonData + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809BDAE +_0809BDC2: + asrs r0, r7, 16 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809BDD4: .4byte gPlayerParty + thumb_func_end party_compaction + + thumb_func_start sub_809BDD8 +sub_809BDD8: @ 809BDD8 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + ldr r1, _0809BE04 + ldr r2, [r1] + ldr r3, _0809BE08 + adds r1, r2, r3 + strb r0, [r1] + ldr r0, _0809BE0C + ldrb r0, [r0] + cmp r0, 0 + beq _0809BE14 + ldr r1, _0809BE10 + adds r0, r2, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _0809BE68 + .align 2, 0 +_0809BE04: .4byte gUnknown_083B6DB4 +_0809BE08: .4byte 0x000011f7 +_0809BE0C: .4byte gUnknown_020384E6 +_0809BE10: .4byte 0x000025b4 +_0809BE14: + ldr r4, _0809BE70 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x1 + bne _0809BE34 + ldr r0, _0809BE74 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809BE78 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData +_0809BE34: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _0809BE68 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809BE74 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809BE7C + adds r1, r2 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetBoxMonData +_0809BE68: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809BE70: .4byte gUnknown_020384E4 +_0809BE74: .4byte gUnknown_020384E5 +_0809BE78: .4byte gPlayerParty +_0809BE7C: .4byte gUnknown_020300A4 + thumb_func_end sub_809BDD8 + + thumb_func_start sub_809BE80 +sub_809BE80: @ 809BE80 + push {lr} + ldr r0, _0809BEA8 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BEB4 + ldr r0, _0809BEAC + ldrb r0, [r0] + cmp r0, 0 + bne _0809BEB4 + ldr r0, _0809BEB0 + ldrb r0, [r0] + bl sub_8095BB4 + lsls r0, 24 + cmp r0, 0 + bne _0809BEB4 + movs r0, 0x1 + b _0809BEB6 + .align 2, 0 +_0809BEA8: .4byte gUnknown_020384E4 +_0809BEAC: .4byte gUnknown_020384E6 +_0809BEB0: .4byte gUnknown_020384E5 +_0809BEB4: + movs r0, 0 +_0809BEB6: + pop {r1} + bx r1 + thumb_func_end sub_809BE80 + + thumb_func_start sub_809BEBC +sub_809BEBC: @ 809BEBC + push {lr} + ldr r0, _0809BF00 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BF18 + ldr r0, _0809BF04 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BEFC + ldr r0, _0809BF08 + ldrb r0, [r0] + bl sub_8095BB4 + lsls r0, 24 + cmp r0, 0 + bne _0809BEFC + ldr r0, _0809BF0C + ldr r1, [r0] + ldr r2, _0809BF10 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0809BF18 + ldr r2, _0809BF14 + adds r0, r1, r2 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0809BF18 +_0809BEFC: + movs r0, 0x1 + b _0809BF1A + .align 2, 0 +_0809BF00: .4byte gUnknown_020384E6 +_0809BF04: .4byte gUnknown_020384E4 +_0809BF08: .4byte gUnknown_020384E5 +_0809BF0C: .4byte gUnknown_083B6DB4 +_0809BF10: .4byte 0x000011f9 +_0809BF14: .4byte 0x000025b4 +_0809BF18: + movs r0, 0 +_0809BF1A: + pop {r1} + bx r1 + thumb_func_end sub_809BEBC + + thumb_func_start sub_809BF20 +sub_809BF20: @ 809BF20 + ldr r0, _0809BF28 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809BF28: .4byte gUnknown_020384E6 + thumb_func_end sub_809BF20 + + thumb_func_start sub_809BF2C +sub_809BF2C: @ 809BF2C + push {lr} + movs r1, 0 + ldr r0, _0809BF44 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + bne _0809BF3E + movs r1, 0x1 +_0809BF3E: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809BF44: .4byte gUnknown_020384E4 + thumb_func_end sub_809BF2C + + thumb_func_start sub_809BF48 +sub_809BF48: @ 809BF48 + push {lr} + movs r1, 0 + ldr r0, _0809BF6C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _0809BF66 + ldr r0, _0809BF70 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BF66 + movs r1, 0x1 +_0809BF66: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809BF6C: .4byte gUnknown_020384E4 +_0809BF70: .4byte gUnknown_020384E5 + thumb_func_end sub_809BF48 + + thumb_func_start sub_809BF74 +sub_809BF74: @ 809BF74 + push {r4,lr} + ldr r0, _0809BFA8 + ldr r1, [r0] + movs r2, 0 + ldr r3, _0809BFAC + ldrb r0, [r3] + cmp r0, 0 + bne _0809BF86 + movs r2, 0x1 +_0809BF86: + ldr r4, _0809BFB0 + adds r0, r1, r4 + strb r2, [r0] + ldrb r0, [r3] + cmp r0, 0 + bne _0809C018 + ldr r0, _0809BFB4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _0809BFBE + cmp r0, 0x1 + bgt _0809BFB8 + cmp r0, 0 + beq _0809BFEE + b _0809C018 + .align 2, 0 +_0809BFA8: .4byte gUnknown_083B6DB4 +_0809BFAC: .4byte gUnknown_020384E6 +_0809BFB0: .4byte 0x000011f6 +_0809BFB4: .4byte gUnknown_020384E4 +_0809BFB8: + cmp r0, 0x3 + bgt _0809C018 + b _0809BFE4 +_0809BFBE: + ldr r1, _0809BFDC + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _0809BFE4 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809BFE0 + adds r0, r1 + movs r1, 0 + bl sub_809C04C + b _0809C018 + .align 2, 0 +_0809BFDC: .4byte gUnknown_020384E5 +_0809BFE0: .4byte gPlayerParty +_0809BFE4: + movs r0, 0 + movs r1, 0x2 + bl sub_809C04C + b _0809C018 +_0809BFEE: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809C020 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809C024 + adds r1, r2 + adds r0, r1 + movs r1, 0x1 + bl sub_809C04C +_0809C018: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809C020: .4byte gUnknown_020384E5 +_0809C024: .4byte gUnknown_020300A4 + thumb_func_end sub_809BF74 + + thumb_func_start sub_809C028 +sub_809C028: @ 809C028 + push {lr} + ldr r0, _0809C03C + ldrb r0, [r0] + cmp r0, 0 + beq _0809C044 + ldr r0, _0809C040 + movs r1, 0 + bl sub_809C04C + b _0809C048 + .align 2, 0 +_0809C03C: .4byte gUnknown_020384E6 +_0809C040: .4byte gUnknown_02038480 +_0809C044: + bl sub_809BF74 +_0809C048: + pop {r0} + bx r0 + thumb_func_end sub_809C028 + + thumb_func_start sub_809C04C +sub_809C04C: @ 809C04C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + str r0, [sp] + ldr r0, _0809C0FC + ldr r6, [r0] + ldr r2, _0809C100 + adds r2, r6 + mov r8, r2 + mov r0, sp + ldrh r0, [r0] + strh r0, [r2] + cmp r1, 0 + bne _0809C120 + adds r0, r7, 0 + movs r1, 0x41 + bl GetMonData + ldr r2, _0809C104 + adds r1, r6, r2 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _0809C08C + b _0809C1EC +_0809C08C: + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + ldr r2, _0809C108 + adds r1, r6, r2 + strb r0, [r1] + ldr r0, _0809C10C + adds r4, r6, r0 + adds r0, r7, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r7, 0 + movs r1, 0x38 + bl GetMonData + ldr r2, _0809C110 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetMonData + ldr r2, _0809C114 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetMonData + ldr r2, _0809C118 + adds r1, r6, r2 + str r0, [r1] + adds r0, r7, 0 + bl pokemon_get_pal + ldr r2, _0809C11C + adds r1, r6, r2 + str r0, [r1] + adds r0, r7, 0 + bl GetMonGender + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0xC + bl GetMonData + b _0809C1B2 + .align 2, 0 +_0809C0FC: .4byte gUnknown_083B6DB4 +_0809C100: .4byte 0x000011f2 +_0809C104: .4byte 0x000011f0 +_0809C108: .4byte 0x000011f9 +_0809C10C: .4byte 0x000011fa +_0809C110: .4byte 0x000011f8 +_0809C114: .4byte 0x000011f7 +_0809C118: .4byte 0x000011ec +_0809C11C: .4byte 0x000011e8 +_0809C120: + cmp r1, 0x1 + bne _0809C1D4 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + ldr r2, _0809C1B8 + adds r5, r6, r2 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + beq _0809C1EC + adds r0, r7, 0 + movs r1, 0x1 + bl GetBoxMonData + mov r9, r0 + adds r0, r7, 0 + movs r1, 0x2D + bl GetBoxMonData + ldr r2, _0809C1BC + adds r1, r6, r2 + strb r0, [r1] + ldr r0, _0809C1C0 + adds r4, r6, r0 + adds r0, r7, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetBoxMonData + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r7, 0 + bl GetLevelFromBoxMonExp + ldr r2, _0809C1C4 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetBoxMonData + ldr r2, _0809C1C8 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r2, r0, 0 + ldr r0, _0809C1CC + adds r4, r6, r0 + str r2, [r4] + ldrh r0, [r5] + mov r1, r9 + bl species_and_otid_get_pal + ldr r2, _0809C1D0 + adds r1, r6, r2 + str r0, [r1] + ldrh r0, [r5] + ldr r1, [r4] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0xC + bl GetBoxMonData +_0809C1B2: + mov r1, r8 + strh r0, [r1] + b _0809C1DE + .align 2, 0 +_0809C1B8: .4byte 0x000011f0 +_0809C1BC: .4byte 0x000011f9 +_0809C1C0: .4byte 0x000011fa +_0809C1C4: .4byte 0x000011f8 +_0809C1C8: .4byte 0x000011f7 +_0809C1CC: .4byte 0x000011ec +_0809C1D0: .4byte 0x000011e8 +_0809C1D4: + ldr r2, _0809C220 + adds r0, r6, r2 + mov r1, sp + ldrh r1, [r1] + strh r1, [r0] +_0809C1DE: + ldr r0, _0809C224 + ldr r4, [r0] + ldr r2, _0809C220 + adds r0, r4, r2 + ldrh r1, [r0] + cmp r1, 0 + bne _0809C23C +_0809C1EC: + ldr r0, _0809C224 + ldr r1, [r0] + ldr r0, _0809C228 + adds r2, r1, r0 + movs r0, 0xFF + strb r0, [r2] + ldr r0, _0809C22C + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r0, _0809C230 + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r0, _0809C234 + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r2, _0809C238 + adds r1, r2 + strb r0, [r1] + b _0809C43E + .align 2, 0 +_0809C220: .4byte 0x000011f0 +_0809C224: .4byte gUnknown_083B6DB4 +_0809C228: .4byte 0x000011fa +_0809C22C: .4byte 0x0000120f +_0809C230: .4byte 0x00001234 +_0809C234: .4byte 0x00001259 +_0809C238: .4byte 0x0000127a +_0809C23C: + ldr r2, _0809C28C + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0809C2A4 + ldr r0, _0809C290 + adds r7, r4, r0 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x4 + strb r0, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r0, 0x1 + strb r0, [r7, 0x4] + ldr r1, _0809C294 + adds r7, r4, r1 + adds r2, 0x1 + adds r1, r4, r2 + adds r0, r7, 0 + bl StringCopy + ldr r0, _0809C298 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r2, _0809C29C + adds r1, r4, r2 + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + ldr r0, _0809C2A0 + adds r1, r4, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + b _0809C43E + .align 2, 0 +_0809C28C: .4byte 0x000011f9 +_0809C290: .4byte 0x0000120f +_0809C294: .4byte 0x00001214 +_0809C298: .4byte 0x00001234 +_0809C29C: .4byte 0x00001259 +_0809C2A0: .4byte 0x0000127a +_0809C2A4: + cmp r1, 0x20 + beq _0809C2AC + cmp r1, 0x1D + bne _0809C2B0 +_0809C2AC: + movs r1, 0xFF + str r1, [sp] +_0809C2B0: + ldr r0, _0809C388 + ldr r4, [r0] + ldr r2, _0809C38C + adds r7, r4, r2 + movs r0, 0xFC + mov r9, r0 + strb r0, [r7] + movs r1, 0x4 + mov r8, r1 + strb r1, [r7, 0x1] + movs r2, 0xF + strb r2, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r6, 0x1 + strb r6, [r7, 0x4] + ldr r1, _0809C390 + adds r7, r4, r1 + ldr r2, _0809C394 + adds r1, r4, r2 + adds r0, r7, 0 + bl StringCopy + ldr r0, _0809C398 + adds r7, r4, r0 + mov r1, r9 + strb r1, [r7] + mov r2, r8 + strb r2, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r1, 0 + strb r1, [r7, 0x3] + strb r6, [r7, 0x4] + mov r2, r9 + strb r2, [r7, 0x5] + movs r0, 0x13 + mov r10, r0 + strb r0, [r7, 0x6] + movs r1, 0x7 + strb r1, [r7, 0x7] + movs r0, 0xBA + strb r0, [r7, 0x8] + ldr r2, _0809C39C + adds r7, r4, r2 + ldr r1, _0809C3A0 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, _0809C3A4 + adds r1, r0 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + mov r2, r9 + strb r2, [r7] + mov r0, r10 + strb r0, [r7, 0x1] + movs r0, 0x50 + strb r0, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + ldr r1, _0809C3A8 + adds r7, r4, r1 + strb r2, [r7] + mov r2, r8 + strb r2, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r1, 0 + strb r1, [r7, 0x3] + strb r6, [r7, 0x4] + mov r2, r9 + strb r2, [r7, 0x5] + mov r0, r10 + strb r0, [r7, 0x6] + movs r6, 0x8 + strb r6, [r7, 0x7] + ldr r1, _0809C3AC + adds r7, r4, r1 + movs r0, 0x34 + strb r0, [r7] + ldr r2, _0809C3B0 + adds r7, r4, r2 + ldr r0, _0809C3B4 + adds r4, r0 + ldrb r1, [r4] + adds r0, r7, 0 + movs r2, 0x22 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + mov r1, r9 + strb r1, [r7] + movs r0, 0x11 + strb r0, [r7, 0x1] + strb r6, [r7, 0x2] + adds r7, 0x3 + ldr r2, [sp] + cmp r2, 0 + beq _0809C3B8 + cmp r2, 0xFE + beq _0809C3D0 + b _0809C3EA + .align 2, 0 +_0809C388: .4byte gUnknown_083B6DB4 +_0809C38C: .4byte 0x0000120f +_0809C390: .4byte 0x00001214 +_0809C394: .4byte 0x000011fa +_0809C398: .4byte 0x00001234 +_0809C39C: .4byte 0x0000123d +_0809C3A0: .4byte 0x000011f0 +_0809C3A4: .4byte gSpeciesNames +_0809C3A8: .4byte 0x00001259 +_0809C3AC: .4byte 0x00001261 +_0809C3B0: .4byte 0x00001262 +_0809C3B4: .4byte 0x000011f8 +_0809C3B8: + mov r0, r9 + strb r0, [r7] + mov r1, r8 + strb r1, [r7, 0x1] + strb r1, [r7, 0x2] + mov r2, sp + ldrb r2, [r2] + strb r2, [r7, 0x3] + movs r0, 0x5 + strb r0, [r7, 0x4] + movs r0, 0xB5 + b _0809C3E6 +_0809C3D0: + mov r0, r9 + strb r0, [r7] + mov r1, r8 + strb r1, [r7, 0x1] + movs r0, 0x6 + strb r0, [r7, 0x2] + movs r2, 0 + strb r2, [r7, 0x3] + movs r0, 0x7 + strb r0, [r7, 0x4] + movs r0, 0xB6 +_0809C3E6: + strb r0, [r7, 0x5] + adds r7, 0x6 +_0809C3EA: + movs r5, 0xFF + strb r5, [r7] + ldr r0, _0809C450 + ldr r2, [r0] + ldr r1, _0809C454 + adds r7, r2, r1 + ldr r0, _0809C458 + adds r3, r2, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _0809C43C + movs r4, 0xFC + strb r4, [r7] + movs r1, 0x4 + strb r1, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r0, 0x1 + strb r0, [r7, 0x4] + ldr r0, _0809C45C + adds r7, r2, r0 + strb r4, [r7] + movs r0, 0x6 + strb r0, [r7, 0x1] + strb r1, [r7, 0x2] + ldr r1, _0809C460 + adds r7, r2, r1 + ldrh r0, [r3] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + strb r4, [r7] + movs r0, 0x7 + strb r0, [r7, 0x1] + adds r7, 0x2 +_0809C43C: + strb r5, [r7] +_0809C43E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809C450: .4byte gUnknown_083B6DB4 +_0809C454: .4byte 0x0000127a +_0809C458: .4byte 0x000011f2 +_0809C45C: .4byte 0x0000127f +_0809C460: .4byte 0x00001282 + thumb_func_end sub_809C04C + + thumb_func_start sub_809C464 +sub_809C464: @ 809C464 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0809C4D8 + ldrb r0, [r0] + mov r8, r0 + ldr r2, _0809C4DC + ldrb r4, [r2] + ldr r0, _0809C4E0 + ldr r1, [r0] + ldr r0, _0809C4E4 + adds r7, r1, r0 + movs r0, 0 + strb r0, [r7] + ldr r3, _0809C4E8 + adds r5, r1, r3 + strb r0, [r5] + adds r3, 0x4 + adds r6, r1, r3 + strb r0, [r6] + ldr r0, _0809C4EC + mov r12, r0 + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _0809C4A0 + b _0809C62A +_0809C4A0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809C4F0 + movs r1, 0x1 + mov r9, r1 + lsls r0, r4, 24 + movs r3, 0xC0 + lsls r3, 19 + adds r0, r3 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x1D + bgt _0809C4BE + b _0809C648 +_0809C4BE: + movs r1, 0x3 + mov r8, r1 + subs r0, 0x1E + lsls r0, 24 + asrs r0, 24 + bl __divsi3 + lsls r0, 24 + lsrs r4, r0, 24 + mov r3, r9 + strb r3, [r7] + strb r3, [r6] + b _0809C648 + .align 2, 0 +_0809C4D8: .4byte gUnknown_020384E4 +_0809C4DC: .4byte gUnknown_020384E5 +_0809C4E0: .4byte gUnknown_083B6DB4 +_0809C4E4: .4byte 0x000011de +_0809C4E8: .4byte 0x000011df +_0809C4EC: .4byte gMain +_0809C4F0: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0809C524 + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + movs r1, 0x6 + bl __modsi3 + lsls r0, 24 + cmp r0, 0 + beq _0809C514 + lsls r0, r4, 24 + movs r1, 0xFF + lsls r1, 24 + b _0809C63C +_0809C514: + movs r0, 0xFF + strb r0, [r5] + lsls r0, r4, 24 + movs r3, 0xA0 + lsls r3, 19 + adds r0, r3 + lsrs r4, r0, 24 + b _0809C648 +_0809C524: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0809C554 + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, 0x1 + movs r1, 0x6 + bl __modsi3 + cmp r0, 0 + beq _0809C548 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + b _0809C63C +_0809C548: + mov r3, r9 + strb r3, [r5] + lsls r0, r4, 24 + movs r1, 0xFB + lsls r1, 24 + b _0809C63C +_0809C554: + mov r3, r12 + ldrh r1, [r3, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0809C56A + movs r0, 0x1 + mov r9, r0 + movs r1, 0x2 + mov r8, r1 + b _0809C646 +_0809C56A: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C5D4 + bl sub_809CAB0 + lsls r0, 24 + cmp r0, 0 + beq _0809C5D4 + ldr r0, _0809C588 + ldrb r0, [r0] + cmp r0, 0 + bne _0809C58C + movs r0, 0x8 + b _0809C658 + .align 2, 0 +_0809C588: .4byte gUnknown_020384E9 +_0809C58C: + movs r0, 0 + bl sub_809CE4C + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _0809C5D4 + lsls r0, 2 + ldr r1, _0809C5A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C5A8: .4byte _0809C5AC + .align 2, 0 +_0809C5AC: + .4byte _0809C5C0 + .4byte _0809C5C4 + .4byte _0809C5C8 + .4byte _0809C5CC + .4byte _0809C5D0 +_0809C5C0: + movs r0, 0xB + b _0809C658 +_0809C5C4: + movs r0, 0xC + b _0809C658 +_0809C5C8: + movs r0, 0xD + b _0809C658 +_0809C5CC: + movs r0, 0xE + b _0809C658 +_0809C5D0: + movs r0, 0xF + b _0809C658 +_0809C5D4: + ldr r2, _0809C5E4 + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C5E8 + movs r0, 0x10 + b _0809C658 + .align 2, 0 +_0809C5E4: .4byte gMain +_0809C5E8: + ldr r0, _0809C600 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809C612 + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0809C604 + movs r0, 0xA + b _0809C658 + .align 2, 0 +_0809C600: .4byte gSaveBlock2 +_0809C604: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _0809C612 + movs r0, 0x9 + b _0809C658 +_0809C612: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C624 + bl sub_809CD88 + movs r0, 0 + b _0809C658 +_0809C624: + movs r3, 0 + mov r9, r3 + b _0809C656 +_0809C62A: + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x5 + ble _0809C642 + lsls r0, r4, 24 + movs r1, 0xFA + lsls r1, 24 +_0809C63C: + adds r0, r1 + lsrs r4, r0, 24 + b _0809C648 +_0809C642: + movs r3, 0x2 + mov r8, r3 +_0809C646: + movs r4, 0 +_0809C648: + mov r0, r9 + cmp r0, 0 + beq _0809C656 + mov r0, r8 + adds r1, r4, 0 + bl sub_809AF18 +_0809C656: + mov r0, r9 +_0809C658: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C464 + + thumb_func_start sub_809C664 +sub_809C664: @ 809C664 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0809C6D8 + ldrb r0, [r0] + mov r10, r0 + ldr r7, _0809C6DC + ldrb r4, [r7] + ldr r2, _0809C6E0 + ldr r5, [r2] + ldr r1, _0809C6E4 + adds r0, r5, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809C6E8 + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x5 + adds r0, r5, r3 + strb r1, [r0] + mov r9, r1 + mov r8, r1 + ldr r1, _0809C6EC + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + adds r6, r7, 0 + mov r12, r2 + adds r2, r1, 0 + cmp r0, 0 + beq _0809C6A8 + b _0809C81C +_0809C6A8: + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _0809C6F0 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x6 + ble _0809C6C2 + movs r4, 0 +_0809C6C2: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + bne _0809C6D0 + b _0809C83C +_0809C6D0: + movs r2, 0x1 + mov r8, r2 + b _0809C842 + .align 2, 0 +_0809C6D8: .4byte gUnknown_020384E4 +_0809C6DC: .4byte gUnknown_020384E5 +_0809C6E0: .4byte gUnknown_083B6DB4 +_0809C6E4: .4byte 0x000011df +_0809C6E8: .4byte 0x000011de +_0809C6EC: .4byte gMain +_0809C6F0: + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _0809C714 + ldrb r1, [r6] + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0 + beq _0809C714 + movs r3, 0x1 + mov r8, r3 + ldr r2, _0809C710 + adds r0, r5, r2 + strb r1, [r0] + movs r4, 0 + b _0809C83C + .align 2, 0 +_0809C710: .4byte 0x000011e2 +_0809C714: + ldrh r1, [r2, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0809C748 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0 + bne _0809C73C + movs r3, 0x1 + mov r8, r3 + mov r1, r12 + ldr r0, [r1] + ldr r2, _0809C738 + adds r0, r2 + ldrb r4, [r0] + b _0809C83C + .align 2, 0 +_0809C738: .4byte 0x000011e2 +_0809C73C: + movs r3, 0x6 + mov r8, r3 + movs r0, 0 + mov r10, r0 + movs r4, 0 + b _0809C83C +_0809C748: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C7D0 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0x6 + bne _0809C76E + mov r1, r12 + ldr r0, [r1] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809C768 + movs r0, 0x4 + b _0809C84C +_0809C768: + movs r2, 0x1 + mov r9, r2 + b _0809C7D0 +_0809C76E: + bl sub_809CAB0 + lsls r0, 24 + cmp r0, 0 + beq _0809C7D0 + ldr r0, _0809C784 + ldrb r0, [r0] + cmp r0, 0 + bne _0809C788 + movs r0, 0x8 + b _0809C84C + .align 2, 0 +_0809C784: .4byte gUnknown_020384E9 +_0809C788: + movs r0, 0 + bl sub_809CE4C + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _0809C7D0 + lsls r0, 2 + ldr r1, _0809C7A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C7A4: .4byte _0809C7A8 + .align 2, 0 +_0809C7A8: + .4byte _0809C7BC + .4byte _0809C7C0 + .4byte _0809C7C4 + .4byte _0809C7C8 + .4byte _0809C7CC +_0809C7BC: + movs r0, 0xB + b _0809C84C +_0809C7C0: + movs r0, 0xC + b _0809C84C +_0809C7C4: + movs r0, 0xD + b _0809C84C +_0809C7C8: + movs r0, 0xE + b _0809C84C +_0809C7CC: + movs r0, 0xF + b _0809C84C +_0809C7D0: + ldr r2, _0809C7EC + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C7F8 + ldr r0, _0809C7F0 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809C7F4 + movs r0, 0x10 + b _0809C84C + .align 2, 0 +_0809C7EC: .4byte gMain +_0809C7F0: .4byte gUnknown_083B6DB4 +_0809C7F4: + movs r3, 0x1 + mov r9, r3 +_0809C7F8: + mov r0, r9 + cmp r0, 0 + beq _0809C80A + movs r1, 0x6 + mov r8, r1 + movs r2, 0 + mov r10, r2 + movs r4, 0 + b _0809C83C +_0809C80A: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C83C + bl sub_809CD88 + movs r0, 0 + b _0809C84C +_0809C81C: + lsls r0, r4, 24 + movs r3, 0xFF + lsls r3, 24 + adds r0, r3 + lsrs r4, r0, 24 + cmp r0, 0 + bge _0809C82C + movs r4, 0x6 +_0809C82C: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r7, r1] + cmp r0, r1 + beq _0809C83C + movs r0, 0x1 + mov r8, r0 +_0809C83C: + mov r1, r8 + cmp r1, 0 + beq _0809C84A +_0809C842: + mov r0, r10 + adds r1, r4, 0 + bl sub_809AF18 +_0809C84A: + mov r0, r8 +_0809C84C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C664 + + thumb_func_start sub_809C85C +sub_809C85C: @ 809C85C + push {r4-r6,lr} + ldr r0, _0809C894 + ldr r2, [r0] + ldr r1, _0809C898 + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809C89C + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0809C8A0 + adds r2, r0 + strb r1, [r2] + ldr r1, _0809C8A4 + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + cmp r0, 0 + bne _0809C91A + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _0809C8A8 + movs r4, 0x1 + movs r0, 0 + movs r5, 0x2 + b _0809C922 + .align 2, 0 +_0809C894: .4byte gUnknown_083B6DB4 +_0809C898: .4byte 0x000011df +_0809C89C: .4byte 0x000011de +_0809C8A0: .4byte 0x000011e3 +_0809C8A4: .4byte gMain +_0809C8A8: + ldrh r2, [r1, 0x2C] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _0809C8CC + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _0809C8DE + ldr r0, _0809C8D0 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809C8E2 + movs r0, 0x80 + lsls r0, 2 + ands r0, r2 + cmp r0, 0 + beq _0809C8D4 +_0809C8CC: + movs r0, 0xA + b _0809C93E + .align 2, 0 +_0809C8D0: .4byte gSaveBlock2 +_0809C8D4: + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _0809C8E2 +_0809C8DE: + movs r0, 0x9 + b _0809C93E +_0809C8E2: + ldrh r1, [r1, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C8FA + movs r0, 0 + bl sub_809A860 + bl sub_809CA8C + movs r0, 0x7 + b _0809C93E +_0809C8FA: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C906 + movs r0, 0x10 + b _0809C93E +_0809C906: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C916 + bl sub_809CD88 + movs r0, 0 + b _0809C93E +_0809C916: + movs r4, 0 + b _0809C93C +_0809C91A: + movs r4, 0x1 + movs r0, 0x3 + movs r5, 0 + strb r4, [r2] +_0809C922: + cmp r4, 0 + beq _0809C93C + lsls r6, r0, 24 + cmp r0, 0x2 + beq _0809C932 + movs r0, 0 + bl sub_809A860 +_0809C932: + lsrs r0, r6, 24 + lsls r1, r5, 24 + lsrs r1, 24 + bl sub_809AF18 +_0809C93C: + adds r0, r4, 0 +_0809C93E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_809C85C + + thumb_func_start sub_809C944 +sub_809C944: @ 809C944 + push {r4-r7,lr} + ldr r0, _0809C988 + ldrb r0, [r0] + mov r12, r0 + ldr r7, _0809C98C + ldrb r3, [r7] + ldr r0, _0809C990 + ldr r1, [r0] + ldr r0, _0809C994 + adds r5, r1, r0 + movs r0, 0 + strb r0, [r5] + ldr r2, _0809C998 + adds r4, r1, r2 + strb r0, [r4] + adds r2, 0x5 + adds r1, r2 + strb r0, [r1] + ldr r6, _0809C99C + ldrh r2, [r6, 0x30] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _0809CA14 + movs r0, 0x88 + ands r0, r2 + cmp r0, 0 + beq _0809C9A0 + movs r6, 0x1 + movs r0, 0x2 + mov r12, r0 + movs r3, 0 + b _0809CA2A + .align 2, 0 +_0809C988: .4byte gUnknown_020384E4 +_0809C98C: .4byte gUnknown_020384E5 +_0809C990: .4byte gUnknown_083B6DB4 +_0809C994: .4byte 0x000011df +_0809C998: .4byte 0x000011de +_0809C99C: .4byte gMain +_0809C9A0: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _0809C9C0 + movs r6, 0x1 + lsls r0, r3, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r3, r0, 24 + cmp r0, 0 + bge _0809CA2C + movs r0, 0xFF + strb r0, [r5] + movs r3, 0x1 + b _0809CA2C +_0809C9C0: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _0809C9E0 + movs r6, 0x1 + lsls r0, r3, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x1 + ble _0809CA2C + strb r6, [r5] + movs r3, 0 + b _0809CA2C +_0809C9E0: + ldrh r1, [r6, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C9F4 + movs r0, 0x4 + cmp r3, 0 + bne _0809CA3A + movs r0, 0x5 + b _0809CA3A +_0809C9F4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809CA00 + movs r0, 0x10 + b _0809CA3A +_0809CA00: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809CA10 + bl sub_809CD88 + movs r0, 0 + b _0809CA3A +_0809CA10: + movs r6, 0 + b _0809CA38 +_0809CA14: + movs r6, 0x1 + movs r0, 0 + mov r12, r0 + movs r0, 0xFF + strb r0, [r4] + movs r0, 0 + ldrsb r0, [r7, r0] + movs r3, 0x1D + cmp r0, 0 + bne _0809CA2A + movs r3, 0x18 +_0809CA2A: + strb r6, [r1] +_0809CA2C: + cmp r6, 0 + beq _0809CA38 + mov r0, r12 + adds r1, r3, 0 + bl sub_809AF18 +_0809CA38: + adds r0, r6, 0 +_0809CA3A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C944 + + thumb_func_start sub_809CA40 +sub_809CA40: @ 809CA40 + push {r4,r5,lr} + movs r3, 0 + ldr r0, _0809CA6C + ldr r1, [r0] + adds r4, r0, 0 + cmp r1, 0 + beq _0809CA84 + ldr r5, _0809CA70 +_0809CA50: + lsls r0, r3, 3 + adds r2, r0, r4 + movs r1, 0x4 + ldrsb r1, [r2, r1] + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r1, r0 + bne _0809CA74 + ldr r0, [r2] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + b _0809CA86 + .align 2, 0 +_0809CA6C: .4byte gUnknown_083BBBD4 +_0809CA70: .4byte gUnknown_020384E4 +_0809CA74: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r0, r3, 3 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + bne _0809CA50 +_0809CA84: + movs r0, 0 +_0809CA86: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809CA40 + + thumb_func_start sub_809CA8C +sub_809CA8C: @ 809CA8C + push {lr} + bl sub_809CDCC + movs r0, 0x9 + bl sub_809CDEC + movs r0, 0xA + bl sub_809CDEC + movs r0, 0xB + bl sub_809CDEC + movs r0, 0 + bl sub_809CDEC + pop {r0} + bx r0 + thumb_func_end sub_809CA8C + + thumb_func_start sub_809CAB0 +sub_809CAB0: @ 809CAB0 + push {lr} + bl sub_809CDCC + bl sub_809AB8C + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _0809CAD4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + beq _0809CADE + cmp r0, 0x1 + bgt _0809CAD8 + cmp r0, 0 + beq _0809CAEA + b _0809CB24 + .align 2, 0 +_0809CAD4: .4byte gUnknown_083B6DB4 +_0809CAD8: + cmp r0, 0x2 + beq _0809CAF6 + b _0809CB24 +_0809CADE: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x1 + bl sub_809CDEC + b _0809CB28 +_0809CAEA: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x2 + bl sub_809CDEC + b _0809CB28 +_0809CAF6: + ldr r0, _0809CB0C + ldrb r0, [r0] + cmp r0, 0 + beq _0809CB18 + cmp r1, 0 + beq _0809CB10 + movs r0, 0x4 + bl sub_809CDEC + b _0809CB28 + .align 2, 0 +_0809CB0C: .4byte gUnknown_020384E6 +_0809CB10: + movs r0, 0x5 + bl sub_809CDEC + b _0809CB28 +_0809CB18: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x3 + bl sub_809CDEC + b _0809CB28 +_0809CB24: + movs r0, 0 + b _0809CB6E +_0809CB28: + movs r0, 0x6 + bl sub_809CDEC + ldr r0, _0809CB4C + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x2 + bne _0809CB5A + ldr r0, _0809CB50 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _0809CB54 + movs r0, 0x2 + bl sub_809CDEC + b _0809CB5A + .align 2, 0 +_0809CB4C: .4byte gUnknown_083B6DB4 +_0809CB50: .4byte gUnknown_020384E4 +_0809CB54: + movs r0, 0x1 + bl sub_809CDEC +_0809CB5A: + movs r0, 0x8 + bl sub_809CDEC + movs r0, 0x7 + bl sub_809CDEC + movs r0, 0 + bl sub_809CDEC + movs r0, 0x1 +_0809CB6E: + pop {r1} + bx r1 + thumb_func_end sub_809CAB0 + + thumb_func_start sub_809CB74 +sub_809CB74: @ 809CB74 + ldr r1, _0809CB90 + ldr r1, [r1] + movs r2, 0x8E + lsls r2, 5 + adds r1, r2 + ldr r2, [r1] + ldrh r2, [r2, 0x20] + strh r2, [r0, 0x20] + ldr r1, [r1] + ldrh r1, [r1, 0x22] + adds r1, 0x14 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_0809CB90: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809CB74 + + thumb_func_start unref_sub_809CB94 +unref_sub_809CB94: @ 809CB94 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0809CBBC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809CBC8 + ldr r2, _0809CBC0 + ldr r0, _0809CBC4 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x50 + bl memcpy + b _0809CBF6 + .align 2, 0 +_0809CBBC: .4byte gUnknown_020384E4 +_0809CBC0: .4byte gPlayerParty +_0809CBC4: .4byte gUnknown_020384E5 +_0809CBC8: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0809CBFC + ldr r1, _0809CC00 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + lsls r2, r0, 2 + adds r2, r0 + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + adds r1, r0 + adds r1, r3 + adds r1, 0x4 + adds r0, r4, 0 + movs r2, 0x50 + bl memcpy +_0809CBF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809CBFC: .4byte gPokemonStorage +_0809CC00: .4byte gUnknown_020384E5 + thumb_func_end unref_sub_809CB94 + + thumb_func_start sub_809CC04 +sub_809CC04: @ 809CC04 + push {r4-r7,lr} + sub sp, 0x34 + mov r1, sp + ldr r0, _0809CCB0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + add r4, sp, 0x18 + adds r1, r4, 0 + ldr r0, _0809CCB4 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + ldr r0, _0809CCB8 + bl IndexOfSpritePaletteTag + ldr r1, _0809CCBC + ldr r6, [r1] + ldr r4, _0809CCC0 + adds r7, r6, r4 + strb r0, [r7] + ldr r0, _0809CCC4 + bl IndexOfSpritePaletteTag + ldr r5, _0809CCC8 + adds r1, r6, r5 + strb r0, [r1] + ldr r0, _0809CCCC + ldrb r0, [r0] + ldr r1, _0809CCD0 + ldrb r1, [r1] + add r4, sp, 0x30 + mov r5, sp + adds r5, 0x32 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_809AACC + ldr r0, _0809CCD4 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0 + ldrsh r2, [r5, r3] + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0809CCE4 + movs r5, 0x8E + lsls r5, 5 + adds r4, r6, r5 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r0, _0809CCD8 + adds r1, r0 + str r1, [r4] + ldr r0, _0809CCDC + ldrb r0, [r0] + adds r0, r7, r0 + ldrb r2, [r0] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, _0809CCE0 + ldrb r0, [r0] + cmp r0, 0 + beq _0809CCEE + ldr r0, [r4] + movs r1, 0x3 + bl StartSpriteAnim + b _0809CCEE + .align 2, 0 +_0809CCB0: .4byte gHandCursorSpriteSheets +_0809CCB4: .4byte gHandCursorSpritePalettes +_0809CCB8: .4byte 0x0000dac6 +_0809CCBC: .4byte gUnknown_083B6DB4 +_0809CCC0: .4byte 0x000011e4 +_0809CCC4: .4byte 0x0000dad1 +_0809CCC8: .4byte 0x000011e5 +_0809CCCC: .4byte gUnknown_020384E4 +_0809CCD0: .4byte gUnknown_020384E5 +_0809CCD4: .4byte gSpriteTemplate_83BBC70 +_0809CCD8: .4byte gSprites +_0809CCDC: .4byte gUnknown_020384E9 +_0809CCE0: .4byte gUnknown_020384E6 +_0809CCE4: + movs r0, 0x8E + lsls r0, 5 + adds r1, r6, r0 + movs r0, 0 + str r0, [r1] +_0809CCEE: + ldr r0, _0809CD00 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809CD04 + movs r3, 0xC + movs r5, 0x1 + b _0809CD08 + .align 2, 0 +_0809CD00: .4byte gUnknown_020384E4 +_0809CD04: + movs r3, 0x14 + movs r5, 0x2 +_0809CD08: + ldr r0, _0809CD58 + movs r1, 0 + movs r2, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0809CD6C + ldr r0, _0809CD5C + ldr r0, [r0] + ldr r1, _0809CD60 + adds r4, r0, r1 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r0, _0809CD64 + adds r1, r0 + str r1, [r4] + lsls r3, r5, 2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r0, _0809CD68 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809CD78 + ldr r0, [r4] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0809CD78 + .align 2, 0 +_0809CD58: .4byte gSpriteTemplate_83BBC88 +_0809CD5C: .4byte gUnknown_083B6DB4 +_0809CD60: .4byte 0x000011c4 +_0809CD64: .4byte gSprites +_0809CD68: .4byte gUnknown_020384E4 +_0809CD6C: + ldr r0, _0809CD80 + ldr r0, [r0] + ldr r2, _0809CD84 + adds r0, r2 + movs r1, 0 + str r1, [r0] +_0809CD78: + add sp, 0x34 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809CD80: .4byte gUnknown_083B6DB4 +_0809CD84: .4byte 0x000011c4 + thumb_func_end sub_809CC04 + + thumb_func_start sub_809CD88 +sub_809CD88: @ 809CD88 + push {lr} + ldr r2, _0809CDC0 + movs r1, 0 + ldrb r0, [r2] + cmp r0, 0 + bne _0809CD96 + movs r1, 0x1 +_0809CD96: + strb r1, [r2] + ldr r0, _0809CDC4 + ldr r0, [r0] + movs r3, 0x8E + lsls r3, 5 + adds r1, r0, r3 + ldr r3, [r1] + ldr r1, _0809CDC8 + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + ldrb r1, [r0] + lsls r1, 4 + ldrb r2, [r3, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + pop {r0} + bx r0 + .align 2, 0 +_0809CDC0: .4byte gUnknown_020384E9 +_0809CDC4: .4byte gUnknown_083B6DB4 +_0809CDC8: .4byte 0x000011e4 + thumb_func_end sub_809CD88 + + thumb_func_start sub_809CDCC +sub_809CDCC: @ 809CDCC + ldr r0, _0809CDE0 + ldr r0, [r0] + ldr r2, _0809CDE4 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _0809CDE8 + adds r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_0809CDE0: .4byte gUnknown_083B6DB4 +_0809CDE4: .4byte 0x000011b8 +_0809CDE8: .4byte 0x000011b9 + thumb_func_end sub_809CDCC + + thumb_func_start sub_809CDEC +sub_809CDEC: @ 809CDEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0809CE3C + ldr r5, [r0] + ldr r0, _0809CE40 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x6 + bhi _0809CE36 + adds r1, r0, 0 + lsls r1, 3 + movs r2, 0x8C + lsls r2, 5 + adds r1, r2 + adds r1, r5, r1 + ldr r2, _0809CE44 + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + str r3, [r1, 0x4] + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0x7 + lsrs r1, 3 + ldr r2, _0809CE48 + adds r0, r5, r2 + ldrb r2, [r0] + cmp r1, r2 + bls _0809CE30 + strb r1, [r0] +_0809CE30: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_0809CE36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809CE3C: .4byte gUnknown_083B6DB4 +_0809CE40: .4byte 0x000011b8 +_0809CE44: .4byte gUnknown_083BBCA0 +_0809CE48: .4byte 0x000011b9 + thumb_func_end sub_809CDEC + + thumb_func_start sub_809CE4C +sub_809CE4C: @ 809CE4C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0809CE70 + ldr r1, [r0] + ldr r3, _0809CE74 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bcs _0809CE7C + lsls r0, r2, 3 + ldr r2, _0809CE78 + adds r1, r2 + adds r1, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + b _0809CE80 + .align 2, 0 +_0809CE70: .4byte gUnknown_083B6DB4 +_0809CE74: .4byte 0x000011b8 +_0809CE78: .4byte 0x00001184 +_0809CE7C: + movs r0, 0x1 + negs r0, r0 +_0809CE80: + pop {r1} + bx r1 + thumb_func_end sub_809CE4C + + thumb_func_start sub_809CE84 +sub_809CE84: @ 809CE84 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _0809CF20 + ldr r4, [r0] + ldr r0, _0809CF24 + adds r0, r4 + mov r8, r0 + ldrb r0, [r0] + lsls r0, 1 + movs r1, 0xE + subs r1, r0 + ldr r3, _0809CF28 + adds r6, r4, r3 + movs r0, 0 + mov r10, r0 + strh r1, [r6] + ldr r1, _0809CF2C + adds r1, r4 + mov r9, r1 + ldrb r1, [r1] + movs r0, 0x1C + subs r0, r1 + subs r3, 0x2 + adds r5, r4, r3 + strh r0, [r5] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + movs r2, 0x1D + movs r3, 0xF + bl MenuDrawTextWindow + ldrb r0, [r5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + mov r3, r8 + ldrb r2, [r3] + movs r3, 0x8C + lsls r3, 5 + adds r4, r3 + adds r3, r4, 0 + bl PrintMenuItems + ldrb r1, [r5] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6] + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + mov r4, r8 + ldrb r3, [r4] + mov r0, r10 + str r0, [sp] + mov r4, r9 + ldrb r0, [r4] + str r0, [sp, 0x4] + movs r0, 0 + bl InitMenu + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809CF20: .4byte gUnknown_083B6DB4 +_0809CF24: .4byte 0x000011b8 +_0809CF28: .4byte 0x000011bc +_0809CF2C: .4byte 0x000011b9 + thumb_func_end sub_809CE84 + + thumb_func_start sub_809CF30 +sub_809CF30: @ 809CF30 + push {r4,r5,lr} + movs r5, 0x2 + negs r5, r5 + ldr r4, _0809CF6C + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0809CF86 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809CF52 + movs r0, 0x5 + bl PlaySE + adds r5, 0x1 +_0809CF52: + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809CF70 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _0809CF8E + .align 2, 0 +_0809CF6C: .4byte gMain +_0809CF70: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809CF8E + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _0809CF8E +_0809CF86: + bl GetMenuCursorPos + lsls r0, 24 + lsrs r5, r0, 24 +_0809CF8E: + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + beq _0809CFB2 + bl sub_8072DEC + ldr r0, _0809CFD0 + ldr r1, [r0] + ldr r2, _0809CFD4 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect +_0809CFB2: + cmp r5, 0 + blt _0809CFC4 + ldr r0, _0809CFD0 + ldr r0, [r0] + lsls r1, r5, 3 + ldr r2, _0809CFD8 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] +_0809CFC4: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809CFD0: .4byte gUnknown_083B6DB4 +_0809CFD4: .4byte 0x000011ba +_0809CFD8: .4byte 0x00001184 + thumb_func_end sub_809CF30 + + thumb_func_start sub_809CFDC +sub_809CFDC: @ 809CFDC + ldr r3, _0809CFEC + str r0, [r3] + str r1, [r0] + movs r1, 0 + strb r2, [r0, 0x5] + strb r1, [r0, 0x4] + bx lr + .align 2, 0 +_0809CFEC: .4byte gUnknown_020384EC + thumb_func_end sub_809CFDC + + thumb_func_start sub_809CFF0 +sub_809CFF0: @ 809CFF0 + push {r4,r5,lr} + ldr r2, _0809D030 + ldr r1, [r2] + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0809D02A + movs r4, 0 + ldrb r1, [r1, 0x4] + cmp r4, r1 + bcs _0809D022 + adds r5, r2, 0 +_0809D006: + ldr r0, [r5] + lsls r1, r4, 4 + ldr r0, [r0] + adds r0, r1 + ldr r1, [r0, 0xC] + bl _call_via_r1 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r5] + ldrb r0, [r0, 0x4] + cmp r4, r0 + bcc _0809D006 +_0809D022: + ldr r0, _0809D030 + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x4] +_0809D02A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D030: .4byte gUnknown_020384EC + thumb_func_end sub_809CFF0 + + thumb_func_start sub_809D034 +sub_809D034: @ 809D034 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + mov r9, r3 + ldr r0, [sp, 0x20] + ldr r3, [sp, 0x24] + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r6, r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _0809D0A4 + ldr r2, [r0] + ldrb r0, [r2, 0x4] + adds r1, r0, 0 + ldrb r7, [r2, 0x5] + cmp r1, r7 + bcs _0809D0AC + adds r0, 0x1 + strb r0, [r2, 0x4] + lsls r0, r1, 4 + ldr r2, [r2] + adds r2, r0 + lsls r0, r4, 1 + strh r0, [r2, 0x8] + lsls r0, r6, 6 + add r0, r8 + mov r4, r10 + lsls r1, r4, 1 + adds r0, r1 + str r0, [r2, 0x4] + lsls r0, r3, 6 + add r0, r9 + mov r7, r12 + lsls r1, r7, 1 + adds r0, r1 + str r0, [r2] + strh r5, [r2, 0xA] + ldr r0, _0809D0A8 + str r0, [r2, 0xC] + movs r0, 0x1 + b _0809D0AE + .align 2, 0 +_0809D0A4: .4byte gUnknown_020384EC +_0809D0A8: .4byte sub_809D0BC +_0809D0AC: + movs r0, 0 +_0809D0AE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D034 + + thumb_func_start sub_809D0BC +sub_809D0BC: @ 809D0BC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r6, [r0] + ldr r5, [r0, 0x4] + ldrh r7, [r0, 0xA] + ldrh r2, [r0, 0x8] + movs r4, 0 + cmp r4, r7 + bcs _0809D0F2 + lsrs r2, 1 + mov r8, r2 + ldr r0, _0809D100 + mov r9, r0 +_0809D0DA: + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r8 + mov r3, r9 + ands r2, r3 + bl CpuSet + adds r5, 0x40 + adds r6, 0x40 + adds r4, 0x1 + cmp r4, r7 + bcc _0809D0DA +_0809D0F2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D100: .4byte 0x001fffff + thumb_func_end sub_809D0BC + + thumb_func_start sub_809D104 +sub_809D104: @ 809D104 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, [sp, 0x18] + ldr r4, [sp, 0x1C] + ldr r6, [sp, 0x20] + mov r8, r6 + ldr r6, [sp, 0x24] + lsls r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r5, 16 + lsls r4, 16 + mov r7, r8 + lsls r7, 16 + lsls r6, 16 + lsrs r6, 16 + lsrs r4, 10 + adds r3, r4 + lsrs r5, 15 + adds r5, r3, r5 + lsls r3, r2, 6 + adds r3, r0, r3 + lsrs r1, 15 + adds r4, r3, r1 + adds r2, r6 + lsls r2, 6 + adds r6, r0, r2 + lsrs r2, r7, 15 + cmp r4, r6 + bcs _0809D15C + lsrs r7, r2, 1 + ldr r0, _0809D168 + mov r8, r0 +_0809D148: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + ands r2, r7 + bl CpuSet + adds r4, 0x40 + adds r5, 0x40 + cmp r4, r6 + bcc _0809D148 +_0809D15C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D168: .4byte 0x001fffff + thumb_func_end sub_809D104 + + thumb_func_start sub_809D16C +sub_809D16C: @ 809D16C + push {r4-r7,lr} + mov r12, r0 + ldr r0, [sp, 0x14] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0809D1B4 + ldr r1, [r0] + ldrb r0, [r1, 0x4] + adds r2, r0, 0 + ldrb r7, [r1, 0x5] + cmp r2, r7 + bcs _0809D1BC + adds r0, 0x1 + strb r0, [r1, 0x4] + lsls r0, r2, 4 + ldr r1, [r1] + adds r1, r0 + lsls r0, r3, 1 + strh r0, [r1, 0x8] + lsls r0, r4, 5 + adds r0, r6 + lsls r0, 1 + add r0, r12 + str r0, [r1, 0x4] + strh r5, [r1, 0xA] + ldr r0, _0809D1B8 + str r0, [r1, 0xC] + movs r0, 0x1 + b _0809D1BE + .align 2, 0 +_0809D1B4: .4byte gUnknown_020384EC +_0809D1B8: .4byte sub_809D1C4 +_0809D1BC: + movs r0, 0 +_0809D1BE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D16C + + thumb_func_start sub_809D1C4 +sub_809D1C4: @ 809D1C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r0, 0 + movs r0, 0 + ldrh r1, [r6, 0xA] + cmp r0, r1 + bcs _0809D252 + movs r7, 0x80 + lsls r7, 5 + mov r5, sp + ldr r2, _0809D210 + mov r8, r2 + movs r1, 0x81 + lsls r1, 24 + mov r10, r1 +_0809D1EA: + ldr r2, [r6, 0x4] + ldrh r3, [r6, 0x8] + mov r12, r2 + adds r0, 0x1 + mov r9, r0 + cmp r3, r7 + bhi _0809D214 + movs r0, 0 + strh r0, [r5] + mov r2, sp + mov r0, r8 + str r2, [r0] + mov r1, r12 + str r1, [r0, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 + mov r1, r8 + b _0809D23C + .align 2, 0 +_0809D210: .4byte 0x040000d4 +_0809D214: + movs r4, 0 + strh r4, [r5] + ldr r1, _0809D264 + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _0809D268 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r7 + subs r3, r7 + cmp r3, r7 + bhi _0809D214 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 +_0809D23C: + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, r12 + adds r0, 0x40 + str r0, [r6, 0x4] + mov r1, r9 + lsls r0, r1, 16 + lsrs r0, 16 + ldrh r2, [r6, 0xA] + cmp r0, r2 + bcc _0809D1EA +_0809D252: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D264: .4byte 0x040000d4 +_0809D268: .4byte 0x81000800 + thumb_func_end sub_809D1C4 + + thumb_func_start unref_sub_809D26C +unref_sub_809D26C: @ 809D26C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + adds r6, r3, 0 + ldr r3, [sp, 0x2C] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + mov r8, sp + ldr r4, _0809D2E0 + str r4, [sp] + ldr r5, _0809D2E4 + lsls r4, r0, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp, 0x4] + ldr r4, _0809D2E8 + str r4, [sp, 0x8] + ldr r4, _0809D2EC + str r4, [sp, 0xC] + str r1, [sp, 0x10] + ldr r1, _0809D2F0 + adds r0, r1 + ldr r4, _0809D2F4 + adds r1, r4, 0 + ldrb r0, [r0] + adds r1, r0 + mov r0, r8 + strh r1, [r0, 0x14] + lsls r2, 16 + asrs r2, 16 + lsls r6, 16 + asrs r6, 16 + mov r0, sp + adds r1, r2, 0 + adds r2, r6, 0 + bl sub_809D710 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0809D2F8 + adds r0, r1 + bl sub_809D638 + adds r0, r4, 0 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809D2E0: .4byte gOamData_83BC5E8 +_0809D2E4: .4byte gMonIconTable +_0809D2E8: .4byte gSpriteAnimTable_83BC62C +_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660 +_0809D2F0: .4byte gMonIconPaletteIndices +_0809D2F4: .4byte 0x0000dac0 +_0809D2F8: .4byte gSprites + thumb_func_end unref_sub_809D26C + + thumb_func_start sub_809D2FC +sub_809D2FC: @ 809D2FC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x30 + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, [sp, 0x48] + ldr r1, [sp, 0x4C] + lsls r4, 16 + lsrs r4, 16 + lsls r2, 16 + lsrs r7, r2, 16 + lsls r3, 16 + lsrs r6, r3, 16 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0809D38C + str r0, [sp, 0x18] + adds r0, r4, 0 + bl sub_809D4F4 + str r0, [sp, 0x1C] + ldr r0, _0809D390 + str r0, [sp, 0x20] + ldr r0, _0809D394 + str r0, [sp, 0x24] + str r5, [sp, 0x28] + ldr r0, _0809D398 + adds r0, r4, r0 + ldr r1, _0809D39C + adds r5, r1, 0 + ldrb r0, [r0] + adds r1, r5, r0 + add r0, sp, 0x2C + strh r1, [r0] + add r1, sp, 0x18 + mov r0, sp + movs r2, 0x18 + bl memcpy + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bls _0809D35A + mov r0, sp + strh r5, [r0, 0x14] +_0809D35A: + lsls r1, r7, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + mov r0, sp + mov r3, r8 + bl sub_809D710 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0809D3A0 + adds r0, r1 + bl sub_809D638 + adds r0, r4, 0 + add sp, 0x30 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809D38C: .4byte gOamData_83BC5E8 +_0809D390: .4byte gSpriteAnimTable_83BC62C +_0809D394: .4byte gSpriteAffineAnimTable_83BC660 +_0809D398: .4byte gMonIconPaletteIndices +_0809D39C: .4byte 0x0000dac0 +_0809D3A0: .4byte gSprites + thumb_func_end sub_809D2FC + + thumb_func_start sub_809D3A4 +sub_809D3A4: @ 809D3A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + adds r6, r3, 0 + ldr r3, [sp, 0x2C] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + mov r8, sp + ldr r4, _0809D418 + str r4, [sp] + ldr r5, _0809D41C + lsls r4, r0, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp, 0x4] + ldr r4, _0809D420 + str r4, [sp, 0x8] + ldr r4, _0809D424 + str r4, [sp, 0xC] + str r1, [sp, 0x10] + ldr r1, _0809D428 + adds r0, r1 + ldr r4, _0809D42C + adds r1, r4, 0 + ldrb r0, [r0] + adds r1, r0 + mov r0, r8 + strh r1, [r0, 0x14] + lsls r2, 16 + asrs r2, 16 + lsls r6, 16 + asrs r6, 16 + mov r0, sp + adds r1, r2, 0 + adds r2, r6, 0 + bl sub_809D710 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0809D430 + adds r0, r1 + bl sub_809D638 + adds r0, r4, 0 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809D418: .4byte gOamData_83BC5E8 +_0809D41C: .4byte gMonIconTable +_0809D420: .4byte gSpriteAnimTable_83BC62C +_0809D424: .4byte gSpriteAffineAnimTable_83BC660 +_0809D428: .4byte gMonIconPaletteIndices +_0809D42C: .4byte 0x0000dac0 +_0809D430: .4byte gSprites + thumb_func_end sub_809D3A4 + + thumb_func_start mon_icon_convert_unown_species_id +mon_icon_convert_unown_species_id: @ 809D434 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, SPECIES_UNOWN + bne _0809D45E + adds r0, r1, 0 + bl sub_809D474 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0809D450 + movs r0, SPECIES_UNOWN + b _0809D45A +_0809D450: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_0809D45A: + adds r1, r0, 0 + b _0809D46C +_0809D45E: + movs r0, 0xCE + lsls r0, 1 + adds r1, r2, 0 + cmp r1, r0 + bls _0809D46C + movs r1, 0x82 + lsls r1, 1 +_0809D46C: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end mon_icon_convert_unown_species_id + + thumb_func_start sub_809D474 +sub_809D474: @ 809D474 + push {lr} + adds r2, r0, 0 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_809D474 + + thumb_func_start sub_809D4A8 +sub_809D4A8: @ 809D4A8 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + mov r1, sp + bl sub_80A2D64 + lsls r0, 16 + lsrs r0, 16 + cmp r0, SPECIES_UNOWN + bne _0809D4DE + mov r0, sp + ldrh r0, [r0] + cmp r0, 0 + bne _0809D4CE + mov r1, sp + adds r0, SPECIES_UNOWN + b _0809D4D6 +_0809D4CE: + mov r1, sp + movs r2, 0xCE + lsls r2, 1 + adds r0, r2 +_0809D4D6: + strh r0, [r1] + mov r0, sp + ldrh r0, [r0] + b _0809D4EA +_0809D4DE: + adds r0, r4, 0 + movs r1, 0 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + lsrs r0, 16 +_0809D4EA: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809D4A8 + + thumb_func_start sub_809D4F4 +sub_809D4F4: @ 809D4F4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + ldr r1, _0809D50C + lsrs r0, 14 + adds r0, r1 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_0809D50C: .4byte gMonIconTable + thumb_func_end sub_809D4F4 + + thumb_func_start sub_809D510 +sub_809D510: @ 809D510 + push {lr} + bl sub_809D7E8 + pop {r0} + bx r0 + thumb_func_end sub_809D510 + + thumb_func_start sub_809D51C +sub_809D51C: @ 809D51C + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0809D53C +_0809D522: + lsls r0, r4, 3 + adds r0, r5 + bl LoadSpritePalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0809D522 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D53C: .4byte gMonIconPaletteTable + thumb_func_end sub_809D51C + + thumb_func_start unref_sub_809D540 +unref_sub_809D540: @ 809D540 + push {r4,lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bls _0809D552 + movs r1, 0x82 + lsls r1, 1 +_0809D552: + ldr r0, _0809D578 + adds r0, r1, r0 + ldrb r0, [r0] + ldr r1, _0809D57C + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809D572 + adds r0, r4, 0 + bl LoadSpritePalette +_0809D572: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809D578: .4byte gMonIconPaletteIndices +_0809D57C: .4byte gMonIconPaletteTable + thumb_func_end unref_sub_809D540 + + thumb_func_start sub_809D580 +sub_809D580: @ 809D580 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0809D5AC + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0809D5B0 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809D5A6 + adds r0, r4, 0 + bl LoadSpritePalette +_0809D5A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809D5AC: .4byte gMonIconPaletteIndices +_0809D5B0: .4byte gMonIconPaletteTable + thumb_func_end sub_809D580 + + thumb_func_start unref_sub_809D5B4 +unref_sub_809D5B4: @ 809D5B4 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0809D5D4 +_0809D5BA: + lsls r0, r4, 3 + adds r0, r5 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0809D5BA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D5D4: .4byte gMonIconPaletteTable + thumb_func_end unref_sub_809D5B4 + + thumb_func_start unref_sub_809D5D8 +unref_sub_809D5D8: @ 809D5D8 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bls _0809D5EA + movs r1, 0x82 + lsls r1, 1 +_0809D5EA: + ldr r0, _0809D600 + adds r0, r1, r0 + ldrb r0, [r0] + ldr r1, _0809D604 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_0809D600: .4byte gMonIconPaletteIndices +_0809D604: .4byte gMonIconPaletteTable + thumb_func_end unref_sub_809D5D8 + + thumb_func_start sub_809D608 +sub_809D608: @ 809D608 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0809D624 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0809D628 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_0809D624: .4byte gMonIconPaletteIndices +_0809D628: .4byte gMonIconPaletteTable + thumb_func_end sub_809D608 + + thumb_func_start sub_809D62C +sub_809D62C: @ 809D62C + push {lr} + bl sub_809D638 + pop {r0} + bx r0 + thumb_func_end sub_809D62C + + thumb_func_start sub_809D638 +sub_809D638: @ 809D638 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + movs r7, 0 + adds r6, r4, 0 + adds r6, 0x2C + ldrb r2, [r6] + movs r0, 0x3F + mov r9, r0 + ands r0, r2 + cmp r0, 0 + bne _0809D6EC + movs r1, 0x2A + adds r1, r4 + mov r8, r1 + ldrb r1, [r1] + ldr r0, [r4, 0x8] + lsls r1, 2 + adds r1, r0 + adds r5, r4, 0 + adds r5, 0x2B + ldrb r0, [r5] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + movs r1, 0 + ldrsh r3, [r0, r1] + movs r0, 0x2 + negs r0, r0 + cmp r3, r0 + beq _0809D682 + adds r0, 0x1 + cmp r3, r0 + bne _0809D686 + b _0809D700 +_0809D682: + strb r7, [r5] + b _0809D700 +_0809D686: + ldr r2, _0809D6E4 + ldrb r1, [r4, 0x3] + lsrs r1, 6 + lsls r1, 1 + ldrb r0, [r4, 0x1] + lsrs r0, 6 + lsls r0, 3 + adds r1, r0 + adds r1, r2 + ldrh r2, [r1] + adds r1, r2, 0 + muls r1, r3 + ldr r0, [r4, 0xC] + adds r0, r1 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r3, _0809D6E8 + adds r1, r3 + bl RequestSpriteCopy + mov r0, r8 + ldrb r1, [r0] + ldr r0, [r4, 0x8] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r5] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 10 + lsrs r0, 26 + mov r1, r9 + ands r1, r0 + ldrb r2, [r6] + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ldrb r7, [r5] + b _0809D700 + .align 2, 0 +_0809D6E4: .4byte gSpriteImageSizes +_0809D6E8: .4byte 0x06010000 +_0809D6EC: + lsls r0, r2, 26 + lsrs r0, 26 + subs r0, 0x1 + movs r1, 0x3F + ands r0, r1 + movs r1, 0x40 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r6] +_0809D700: + adds r0, r7, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D638 + + thumb_func_start sub_809D710 +sub_809D710: @ 809D710 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x38 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + mov r8, r3 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + str r0, [sp, 0x30] + ldr r2, _0809D7D8 + mov r0, r9 + ldr r6, [r0] + ldrb r1, [r6, 0x3] + lsrs r1, 6 + lsls r1, 1 + ldrb r0, [r6, 0x1] + lsrs r0, 6 + lsls r0, 3 + adds r1, r0 + adds r1, r2 + ldrh r2, [r1] + ldr r1, _0809D7DC + add r3, sp, 0x30 + ldr r0, [r3, 0x4] + ands r0, r1 + orrs r0, r2 + str r0, [r3, 0x4] + add r1, sp, 0x18 + ldr r0, _0809D7E0 + strh r0, [r1] + mov r0, r9 + ldrh r2, [r0, 0x14] + mov r0, sp + adds r0, 0x1A + strh r2, [r0] + str r6, [sp, 0x1C] + mov r2, r9 + ldr r0, [r2, 0x8] + str r0, [sp, 0x20] + str r3, [sp, 0x24] + ldr r0, [r2, 0xC] + str r0, [sp, 0x28] + ldr r0, [r2, 0x10] + str r0, [sp, 0x2C] + mov r0, sp + movs r2, 0x18 + bl memcpy + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r6, _0809D7E4 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r4, r3, r6 + adds r5, r4, 0 + adds r5, 0x2C + ldrb r1, [r5] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r5] + adds r4, 0x3F + ldrb r2, [r4] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r4] + adds r6, 0xC + adds r3, r6 + mov r2, r9 + ldr r1, [r2, 0x4] + str r1, [r3] + add sp, 0x38 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809D7D8: .4byte gSpriteImageSizes +_0809D7DC: .4byte 0xffff0000 +_0809D7E0: .4byte 0x0000ffff +_0809D7E4: .4byte gSprites + thumb_func_end sub_809D710 + + thumb_func_start sub_809D7E8 +sub_809D7E8: @ 809D7E8 + push {lr} + sub sp, 0x8 + movs r1, 0 + str r1, [sp] + ldr r3, _0809D81C + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r2, 1 + ldrb r1, [r0, 0x1] + lsrs r1, 6 + lsls r1, 3 + adds r2, r1 + adds r2, r3 + ldrh r3, [r2] + ldr r2, _0809D820 + ldr r1, [sp, 0x4] + ands r1, r2 + orrs r1, r3 + str r1, [sp, 0x4] + mov r1, sp + str r1, [r0, 0xC] + bl DestroySprite + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0809D81C: .4byte gSpriteImageSizes +_0809D820: .4byte 0xffff0000 + thumb_func_end sub_809D7E8 + + thumb_func_start sub_809D824 +sub_809D824: @ 809D824 + mov r12, r0 + adds r0, 0x2A + movs r3, 0 + strb r1, [r0] + mov r2, r12 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x40 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + mov r0, r12 + adds r0, 0x2B + strb r3, [r0] + bx lr + thumb_func_end sub_809D824 + + thumb_func_start sub_809D844 +sub_809D844: @ 809D844 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_809D844 + + thumb_func_start sub_809D85C +sub_809D85C: @ 809D85C + push {lr} + ldr r1, _0809D8A0 + ldr r0, _0809D8A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8A8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8AC + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8B8 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_0809D8A0: .4byte REG_BG1HOFS +_0809D8A4: .4byte gUnknown_030042C0 +_0809D8A8: .4byte gUnknown_030041B4 +_0809D8AC: .4byte gUnknown_03004288 +_0809D8B0: .4byte gUnknown_03004280 +_0809D8B4: .4byte gUnknown_030041B0 +_0809D8B8: .4byte gUnknown_030041B8 + thumb_func_end sub_809D85C + + thumb_func_start sub_809D8BC +sub_809D8BC: @ 809D8BC + push {r4-r7,lr} + ldr r4, [sp, 0x14] + lsls r4, 24 + lsrs r7, r4, 24 + ldr r6, _0809D904 + ldrb r4, [r6, 0x8] + movs r5, 0x80 + orrs r4, r5 + strb r4, [r6, 0x8] + ldr r5, _0809D908 + str r0, [r5] + movs r4, 0 + strb r7, [r5, 0x8] + strb r1, [r5, 0x9] + strb r2, [r5, 0xA] + str r3, [r5, 0x4] + adds r0, r5, 0 + adds r0, 0x74 + strb r4, [r0] + adds r1, r5, 0 + adds r1, 0x79 + movs r0, 0x4 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x7C + movs r1, 0 + strh r4, [r0] + adds r0, 0x4 + strb r1, [r0] + subs r0, 0x5 + strb r1, [r0] + cmp r7, 0x4 + bls _0809D90C + movs r0, 0x1 + strb r0, [r5, 0xE] + b _0809D90E + .align 2, 0 +_0809D904: .4byte gPaletteFade +_0809D908: .4byte 0x02018000 +_0809D90C: + strb r1, [r5, 0xE] +_0809D90E: + cmp r7, 0x6 + bhi _0809D9D6 + lsls r0, r7, 2 + ldr r1, _0809D91C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809D91C: .4byte _0809D920 + .align 2, 0 +_0809D920: + .4byte _0809D93C + .4byte _0809D9BC + .4byte _0809D992 + .4byte _0809D9D6 + .4byte _0809D966 + .4byte _0809D93C + .4byte _0809D9BC +_0809D93C: + adds r0, r5, 0 + adds r0, 0x75 + movs r1, 0 + strb r1, [r0] + adds r2, r5, 0 + adds r2, 0x76 + movs r0, 0x3 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x77 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x7E + movs r0, 0x1 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x7 + strb r0, [r1] + b _0809D9D6 +_0809D966: + adds r0, r5, 0 + adds r0, 0x75 + movs r1, 0 + strb r1, [r0] + adds r2, r5, 0 + adds r2, 0x76 + movs r0, 0x3 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x77 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r0, 0x6 + movs r1, 0x1 + strb r1, [r0] + adds r2, 0x9 + movs r0, 0x7 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x7B + b _0809D9D4 +_0809D992: + adds r1, r5, 0 + adds r1, 0x75 + movs r3, 0 + movs r0, 0x2 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x76 + movs r2, 0x3 + strb r2, [r0] + adds r0, 0x1 + movs r1, 0x1 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r0, 0x6 + strb r2, [r0] + adds r0, 0x1 + strb r3, [r0] + subs r0, 0x6 + strb r3, [r0] + b _0809D9D6 +_0809D9BC: + adds r1, r5, 0 + adds r1, 0x75 + movs r0, 0x2 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x3 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x77 + movs r1, 0x1 + strb r1, [r0] + adds r0, 0x1 +_0809D9D4: + strb r1, [r0] +_0809D9D6: + adds r0, r5, 0 + adds r0, 0x75 + ldrb r0, [r0] + strb r0, [r5, 0xB] + ldr r0, _0809D9EC + bl SetMainCallback2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D9EC: .4byte sub_809DE44 + thumb_func_end sub_809D8BC + + thumb_func_start sub_809D9F0 +sub_809D9F0: @ 809D9F0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, [sp, 0x10] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r5, 16 + lsrs r5, 16 + movs r4, 0x2 + str r4, [sp] + bl sub_809D8BC + ldr r0, _0809DA18 + adds r0, 0x7C + strh r5, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809DA18: .4byte 0x02018000 + thumb_func_end sub_809D9F0 + + thumb_func_start sub_809DA1C +sub_809DA1C: @ 809DA1C + push {lr} + ldr r0, _0809DA30 + ldrb r0, [r0, 0x8] + cmp r0, 0x6 + bhi _0809DA78 + lsls r0, 2 + ldr r1, _0809DA34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809DA30: .4byte 0x02018000 +_0809DA34: .4byte _0809DA38 + .align 2, 0 +_0809DA38: + .4byte _0809DA54 + .4byte _0809DA6C + .4byte _0809DA64 + .4byte _0809DA64 + .4byte _0809DA5C + .4byte _0809DA54 + .4byte _0809DA6C +_0809DA54: + ldr r0, _0809DA58 + b _0809DA6E + .align 2, 0 +_0809DA58: .4byte sub_809E19C +_0809DA5C: + ldr r0, _0809DA60 + b _0809DA6E + .align 2, 0 +_0809DA60: .4byte sub_809E19C +_0809DA64: + ldr r0, _0809DA68 + b _0809DA6E + .align 2, 0 +_0809DA68: .4byte sub_809EB40 +_0809DA6C: + ldr r0, _0809DA7C +_0809DA6E: + movs r1, 0 + bl CreateTask + ldr r1, _0809DA80 + strb r0, [r1, 0xF] +_0809DA78: + pop {r0} + bx r0 + .align 2, 0 +_0809DA7C: .4byte sub_809E3FC +_0809DA80: .4byte 0x02018000 + thumb_func_end sub_809DA1C + + thumb_func_start sub_809DA84 +sub_809DA84: @ 809DA84 + push {r4-r7,lr} + sub sp, 0x8 + ldr r1, _0809DAA4 + ldr r2, _0809DAA8 + adds r0, r1, r2 + ldrb r0, [r0] + mov r12, r1 + cmp r0, 0x16 + bls _0809DA98 + b _0809DE00 +_0809DA98: + lsls r0, 2 + ldr r1, _0809DAAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809DAA4: .4byte gMain +_0809DAA8: .4byte 0x0000043c +_0809DAAC: .4byte _0809DAB0 + .align 2, 0 +_0809DAB0: + .4byte _0809DB0C + .4byte _0809DB18 + .4byte _0809DB2C + .4byte _0809DB32 + .4byte _0809DB80 + .4byte _0809DB94 + .4byte _0809DBA0 + .4byte _0809DBBC + .4byte _0809DBC8 + .4byte _0809DBDC + .4byte _0809DC2C + .4byte _0809DC48 + .4byte _0809DC5C + .4byte _0809DC90 + .4byte _0809DCB0 + .4byte _0809DCC4 + .4byte _0809DCF8 + .4byte _0809DD02 + .4byte _0809DD30 + .4byte _0809DD3C + .4byte _0809DD68 + .4byte _0809DD98 + .4byte _0809DDE0 +_0809DB0C: + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + b _0809DDE8 +_0809DB18: + bl remove_some_task + ldr r1, _0809DB24 + ldr r2, _0809DB28 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DB24: .4byte gMain +_0809DB28: .4byte 0x0000043c +_0809DB2C: + bl FreeAllSpritePalettes + b _0809DDE8 +_0809DB32: + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0x80 + lsls r3, 9 + movs r5, 0 + ldr r1, _0809DB74 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _0809DB78 + movs r7, 0x85 + lsls r7, 24 +_0809DB48: + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _0809DB48 + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0809DB7C + add r1, r12 + b _0809DDEE + .align 2, 0 +_0809DB74: .4byte 0x040000d4 +_0809DB78: .4byte 0x85000400 +_0809DB7C: .4byte 0x0000043c +_0809DB80: + bl sub_809DE64 + ldr r1, _0809DB8C + ldr r2, _0809DB90 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DB8C: .4byte gMain +_0809DB90: .4byte 0x0000043c +_0809DB94: + ldr r0, _0809DB9C + bl SetUpWindowConfig + b _0809DDE8 + .align 2, 0 +_0809DB9C: .4byte gWindowConfig_81E6E6C +_0809DBA0: + ldr r0, _0809DBB0 + bl MultistepInitMenuWindowBegin + ldr r1, _0809DBB4 + ldr r2, _0809DBB8 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DBB0: .4byte gWindowConfig_81E6E6C +_0809DBB4: .4byte gMain +_0809DBB8: .4byte 0x0000043c +_0809DBBC: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _0809DBC6 + b _0809DE38 +_0809DBC6: + b _0809DDE8 +_0809DBC8: + bl sub_809DA1C + ldr r1, _0809DBD4 + ldr r2, _0809DBD8 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DBD4: .4byte gMain +_0809DBD8: .4byte 0x0000043c +_0809DBDC: + ldr r1, _0809DC08 + ldr r2, _0809DC0C + ldr r0, _0809DC10 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0809DC14 + str r1, [r0, 0x8] + ldr r1, [r0, 0x8] + ldr r1, _0809DC18 + ldr r2, _0809DC1C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0809DC20 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0809DC24 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] + ldr r1, _0809DC28 + add r1, r12 + b _0809DDEE + .align 2, 0 +_0809DC08: .4byte gSummaryScreenTextTiles +_0809DC0C: .4byte 0x0600d000 +_0809DC10: .4byte 0x040000d4 +_0809DC14: .4byte 0x800000a0 +_0809DC18: .4byte gSummaryScreenButtonTiles +_0809DC1C: .4byte 0x0600d140 +_0809DC20: .4byte 0x80000080 +_0809DC24: .4byte 0x02018000 +_0809DC28: .4byte 0x0000043c +_0809DC2C: + bl sub_809DF00 + lsls r0, 24 + cmp r0, 0 + bne _0809DC38 + b _0809DE38 +_0809DC38: + ldr r0, _0809DC44 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] + b _0809DDE8 + .align 2, 0 +_0809DC44: .4byte 0x02018000 +_0809DC48: + bl sub_80A18C4 + ldr r1, _0809DC54 + ldr r2, _0809DC58 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DC54: .4byte gMain +_0809DC58: .4byte 0x0000043c +_0809DC5C: + ldr r4, _0809DC78 + adds r0, r4, 0 + bl sub_809F678 + adds r0, r4, 0 + bl sub_80A1CD8 + lsls r0, 24 + cmp r0, 0 + bne _0809DC7C + movs r0, 0 + bl sub_80A12D0 + b _0809DC82 + .align 2, 0 +_0809DC78: .4byte 0x02018010 +_0809DC7C: + movs r0, 0xA + bl sub_80A12D0 +_0809DC82: + ldr r0, _0809DC8C + bl sub_80A0EA4 + b _0809DDE8 + .align 2, 0 +_0809DC8C: .4byte 0x02018010 +_0809DC90: + bl sub_80A1950 + ldr r0, _0809DCA4 + bl sub_80A1D84 + ldr r1, _0809DCA8 + ldr r2, _0809DCAC + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DCA4: .4byte 0x02018010 +_0809DCA8: .4byte gMain +_0809DCAC: .4byte 0x0000043c +_0809DCB0: + ldr r4, _0809DCC0 + adds r0, r4, 0 + bl sub_80A1DE8 + adds r4, 0x64 + movs r0, 0 + strb r0, [r4] + b _0809DDE8 + .align 2, 0 +_0809DCC0: .4byte 0x02018010 +_0809DCC4: + ldr r4, _0809DCEC + adds r5, r4, 0 + adds r5, 0x64 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809F6B4 + subs r4, 0x10 + strb r0, [r4, 0xC] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809DCE0 + b _0809DE38 +_0809DCE0: + movs r0, 0 + strb r0, [r5] + ldr r1, _0809DCF0 + ldr r2, _0809DCF4 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DCEC: .4byte 0x02018010 +_0809DCF0: .4byte gMain +_0809DCF4: .4byte 0x0000043c +_0809DCF8: + bl sub_809E044 + bl sub_80A0EE8 + b _0809DDE8 +_0809DD02: + ldr r1, _0809DD20 + ldrb r0, [r1, 0xB] + cmp r0, 0x1 + bhi _0809DD18 + ldr r0, _0809DD24 + ldrb r1, [r1, 0xB] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_0809DD18: + ldr r1, _0809DD28 + ldr r2, _0809DD2C + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DD20: .4byte 0x02018000 +_0809DD24: .4byte gUnknown_083C1580 +_0809DD28: .4byte gMain +_0809DD2C: .4byte 0x0000043c +_0809DD30: + ldr r0, _0809DD38 + bl sub_809FAC8 + b _0809DDE8 + .align 2, 0 +_0809DD38: .4byte 0x02018010 +_0809DD3C: + ldr r2, _0809DD58 + ldr r0, _0809DD5C + ldrb r1, [r0, 0xB] + lsls r1, 2 + adds r1, r2 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + ldr r1, _0809DD60 + ldr r2, _0809DD64 + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DD58: .4byte gUnknown_083C1598 +_0809DD5C: .4byte 0x02018000 +_0809DD60: .4byte gMain +_0809DD64: .4byte 0x0000043c +_0809DD68: + ldr r0, _0809DD84 + movs r1, 0x2D + bl GetMonData + adds r1, r0, 0 + cmp r1, 0 + beq _0809DD8C + ldr r1, _0809DD88 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + b _0809DDE8 + .align 2, 0 +_0809DD84: .4byte 0x02018010 +_0809DD88: .4byte gUnknown_030041B0 +_0809DD8C: + ldr r0, _0809DD94 + strh r1, [r0] + b _0809DDE8 + .align 2, 0 +_0809DD94: .4byte gUnknown_030041B0 +_0809DD98: + bl sub_809EBC4 + ldr r0, _0809DDB8 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0 + beq _0809DDBC + movs r0, 0 + movs r1, 0 + bl sub_80A1488 + movs r0, 0 + movs r1, 0 + bl sub_80A1654 + b _0809DDCC + .align 2, 0 +_0809DDB8: .4byte 0x02018000 +_0809DDBC: + movs r0, 0xA + movs r1, 0 + bl sub_80A1488 + movs r0, 0xA + movs r1, 0 + bl sub_80A1654 +_0809DDCC: + bl sub_80A0DD0 + ldr r1, _0809DDD8 + ldr r2, _0809DDDC + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DDD8: .4byte gMain +_0809DDDC: .4byte 0x0000043c +_0809DDE0: + bl sub_8055870 + cmp r0, 0x1 + beq _0809DE38 +_0809DDE8: + ldr r1, _0809DDF8 + ldr r0, _0809DDFC + adds r1, r0 +_0809DDEE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0809DE38 + .align 2, 0 +_0809DDF8: .4byte gMain +_0809DDFC: .4byte 0x0000043c +_0809DE00: + ldr r0, _0809DE2C + bl SetVBlankCallback + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r0, _0809DE30 + bl SetMainCallback2 + ldr r2, _0809DE34 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + movs r0, 0x1 + b _0809DE3A + .align 2, 0 +_0809DE2C: .4byte sub_809D85C +_0809DE30: .4byte sub_809D844 +_0809DE34: .4byte gPaletteFade +_0809DE38: + movs r0, 0 +_0809DE3A: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809DA84 + + thumb_func_start sub_809DE44 +sub_809DE44: @ 809DE44 + push {lr} +_0809DE46: + bl sub_809DA84 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0809DE5E + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809DE46 +_0809DE5E: + pop {r0} + bx r0 + thumb_func_end sub_809DE44 + + thumb_func_start sub_809DE64 +sub_809DE64: @ 809DE64 + ldr r1, _0809DED0 + ldr r2, _0809DED4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0809DED8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0809DEDC + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0809DEE0 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0809DEE4 + movs r0, 0 + strh r0, [r1] + ldr r1, _0809DEE8 + strh r0, [r1] + ldr r1, _0809DEEC + strh r0, [r1] + ldr r1, _0809DEF0 + strh r0, [r1] + ldr r1, _0809DEF4 + strh r0, [r1] + ldr r1, _0809DEF8 + strh r0, [r1] + ldr r1, _0809DEFC + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x32 + strh r0, [r1] + subs r1, 0x50 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_0809DED0: .4byte REG_BG0CNT +_0809DED4: .4byte 0x00001e08 +_0809DED8: .4byte 0x00004801 +_0809DEDC: .4byte 0x00004a02 +_0809DEE0: .4byte 0x00005c03 +_0809DEE4: .4byte gUnknown_030042C0 +_0809DEE8: .4byte gUnknown_030041B4 +_0809DEEC: .4byte gUnknown_03004288 +_0809DEF0: .4byte gUnknown_03004280 +_0809DEF4: .4byte gUnknown_030041B0 +_0809DEF8: .4byte gUnknown_030041B8 +_0809DEFC: .4byte REG_BG0HOFS + thumb_func_end sub_809DE64 + + thumb_func_start sub_809DF00 +sub_809DF00: @ 809DF00 + push {lr} + ldr r0, _0809DF18 + adds r0, 0x74 + ldrb r0, [r0] + cmp r0, 0xC + bls _0809DF0E + b _0809E030 +_0809DF0E: + lsls r0, 2 + ldr r1, _0809DF1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809DF18: .4byte 0x02018000 +_0809DF1C: .4byte _0809DF20 + .align 2, 0 +_0809DF20: + .4byte _0809DF54 + .4byte _0809DF64 + .4byte _0809DF74 + .4byte _0809DF88 + .4byte _0809DF9C + .4byte _0809DFAC + .4byte _0809DFC4 + .4byte _0809DFD4 + .4byte _0809DFE0 + .4byte _0809DFEC + .4byte _0809DFF8 + .4byte _0809E004 + .4byte _0809E010 +_0809DF54: + ldr r0, _0809DF60 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _0809E030 + .align 2, 0 +_0809DF60: .4byte gStatusScreen_Gfx +_0809DF64: + ldr r0, _0809DF6C + ldr r1, _0809DF70 + b _0809DFB0 + .align 2, 0 +_0809DF6C: .4byte gUnknown_08E73508 +_0809DF70: .4byte 0x0600e000 +_0809DF74: + ldr r0, _0809DF80 + ldr r1, _0809DF84 + bl LZDecompressVram + b _0809E030 + .align 2, 0 +_0809DF80: .4byte gUnknown_08E74E88 +_0809DF84: .4byte 0x0600e800 +_0809DF88: + ldr r0, _0809DF94 + ldr r1, _0809DF98 + bl LZDecompressVram + b _0809E030 + .align 2, 0 +_0809DF94: .4byte gStatusScreen_Tilemap +_0809DF98: .4byte 0x06004800 +_0809DF9C: + ldr r0, _0809DFA4 + ldr r1, _0809DFA8 + b _0809DFB0 + .align 2, 0 +_0809DFA4: .4byte gUnknown_08E73E88 +_0809DFA8: .4byte 0x06005800 +_0809DFAC: + ldr r0, _0809DFBC + ldr r1, _0809DFC0 +_0809DFB0: + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + b _0809E030 + .align 2, 0 +_0809DFBC: .4byte gUnknown_08E74688 +_0809DFC0: .4byte 0x06006800 +_0809DFC4: + ldr r0, _0809DFD0 + movs r1, 0 + movs r2, 0xA0 + bl LoadCompressedPalette + b _0809E030 + .align 2, 0 +_0809DFD0: .4byte gStatusScreen_Pal +_0809DFD4: + ldr r0, _0809DFDC + bl LoadCompressedObjectPic + b _0809E030 + .align 2, 0 +_0809DFDC: .4byte gUnknown_083C11B8 +_0809DFE0: + ldr r0, _0809DFE8 + bl LoadCompressedObjectPic + b _0809E030 + .align 2, 0 +_0809DFE8: .4byte gUnknown_083C1270 +_0809DFEC: + ldr r0, _0809DFF4 + bl LoadCompressedObjectPic + b _0809E030 + .align 2, 0 +_0809DFF4: .4byte gUnknown_083C12F4 +_0809DFF8: + ldr r0, _0809E000 + bl LoadCompressedObjectPalette + b _0809E030 + .align 2, 0 +_0809E000: .4byte gUnknown_083C12FC +_0809E004: + ldr r0, _0809E00C + bl LoadCompressedObjectPalette + b _0809E030 + .align 2, 0 +_0809E00C: .4byte gUnknown_083C1278 +_0809E010: + ldr r0, _0809E028 + movs r1, 0xE8 + lsls r1, 1 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r0, _0809E02C + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _0809E03C + .align 2, 0 +_0809E028: .4byte gMoveTypes_Pal +_0809E02C: .4byte 0x02018000 +_0809E030: + ldr r1, _0809E040 + adds r1, 0x74 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 +_0809E03C: + pop {r1} + bx r1 + .align 2, 0 +_0809E040: .4byte 0x02018000 + thumb_func_end sub_809DF00 + + thumb_func_start sub_809E044 +sub_809E044: @ 809E044 + push {r4,r5,lr} + ldr r4, _0809E0F4 + adds r0, r4, 0 + movs r1, 0x81 + movs r2, 0x2 + bl LoadPalette + adds r5, r4, 0x2 + adds r0, r5, 0 + movs r1, 0x88 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0x8F + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0x89 + movs r2, 0x2 + bl LoadPalette + subs r5, 0x12 + adds r0, r5, 0 + movs r1, 0xD1 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0x8 + movs r1, 0xD3 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xD5 + movs r2, 0x4 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xD7 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0x14 + movs r1, 0xD9 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0xC + movs r1, 0xDB + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0x18 + movs r1, 0xDD + movs r2, 0x2 + bl LoadPalette + subs r5, 0x6 + adds r0, r5, 0 + movs r1, 0xDE + movs r2, 0x2 + bl LoadPalette + subs r4, 0x1A + adds r0, r4, 0 + movs r1, 0xDF + movs r2, 0x2 + bl LoadPalette + ldr r0, _0809E0F8 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xF9 + movs r2, 0x2 + bl LoadPalette + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C +_0809E0F8: .4byte gFontDefaultPalette + thumb_func_end sub_809E044 + + thumb_func_start sub_809E0FC +sub_809E0FC: @ 809E0FC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0809E134 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E138 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809E134: .4byte gTasks +_0809E138: .4byte sub_809E13C + thumb_func_end sub_809E0FC + + thumb_func_start sub_809E13C +sub_809E13C: @ 809E13C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8055870 + cmp r0, 0x1 + beq _0809E182 + ldr r0, _0809E188 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0809E182 + ldr r1, _0809E18C + ldr r4, _0809E190 + ldrb r0, [r4, 0x9] + strb r0, [r1] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl StopCryAndClearCrySongs + ldr r0, _0809E194 + ldr r1, _0809E198 + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r0, [r4, 0x4] + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_0809E182: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E188: .4byte gPaletteFade +_0809E18C: .4byte gUnknown_020384F0 +_0809E190: .4byte 0x02018000 +_0809E194: .4byte gMPlay_BGM +_0809E198: .4byte 0x0000ffff + thumb_func_end sub_809E13C + + thumb_func_start sub_809E19C +sub_809E19C: @ 809E19C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809E1C8 + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0809E25A + ldr r5, _0809E1CC + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E1D0 + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl sub_809F1B8 + b _0809E25A + .align 2, 0 +_0809E1C8: .4byte gPaletteFade +_0809E1CC: .4byte gMain +_0809E1D0: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E1E2 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_809F1B8 + b _0809E25A +_0809E1E2: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0809E1F6 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809E202 +_0809E1F6: + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl sub_809F134 + b _0809E25A +_0809E202: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0809E218 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0809E222 +_0809E218: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_809F134 + b _0809E25A +_0809E222: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E24C + ldr r5, _0809E248 + ldrb r0, [r5, 0xB] + cmp r0, 0x1 + bls _0809E23A + adds r0, r4, 0 + bl sub_809EA50 +_0809E23A: + ldrb r0, [r5, 0xB] + cmp r0, 0 + bne _0809E25A + adds r0, r4, 0 + bl sub_809E0FC + b _0809E25A + .align 2, 0 +_0809E248: .4byte 0x02018000 +_0809E24C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E25A + adds r0, r4, 0 + bl sub_809E0FC +_0809E25A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_809E19C + + thumb_func_start sub_809E260 +sub_809E260: @ 809E260 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809E29C + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E276 + b _0809E3EE +_0809E276: + ldr r5, _0809E2A0 + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E2AC + ldr r1, _0809E2A4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + subs r1, 0x5 + ldr r2, _0809E2A8 + adds r0, r4, 0 + bl sub_809E8F0 + b _0809E3EE + .align 2, 0 +_0809E29C: .4byte gPaletteFade +_0809E2A0: .4byte gMain +_0809E2A4: .4byte gTasks +_0809E2A8: .4byte 0x02018079 +_0809E2AC: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E2D8 + ldr r1, _0809E2D0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + ldr r2, _0809E2D4 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809E3EE + .align 2, 0 +_0809E2D0: .4byte gTasks +_0809E2D4: .4byte 0x02018079 +_0809E2D8: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0809E2EC + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809E324 +_0809E2EC: + ldr r1, _0809E320 + ldrb r0, [r1, 0xB] + cmp r0, 0x3 + bne _0809E314 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809E308 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809E314 +_0809E308: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809E314: + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl sub_809F134 + b _0809E3EE + .align 2, 0 +_0809E320: .4byte 0x02018000 +_0809E324: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0809E33A + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0809E37C +_0809E33A: + ldr r1, _0809E378 + adds r2, r1, 0 + adds r2, 0x76 + ldrb r0, [r1, 0xB] + ldrb r2, [r2] + cmp r0, r2 + beq _0809E3EE + cmp r0, 0x2 + bne _0809E36C + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809E360 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809E36C +_0809E360: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809E36C: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_809F134 + b _0809E3EE + .align 2, 0 +_0809E378: .4byte 0x02018000 +_0809E37C: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E3D4 + adds r0, r4, 0 + bl sub_809F7D0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0809E3A0 + ldr r0, _0809E3BC + adds r5, r0, 0 + adds r5, 0x79 + ldrb r0, [r5] + cmp r0, 0x4 + bne _0809E3C4 +_0809E3A0: + ldr r0, _0809E3BC + adds r1, r0, 0 + adds r1, 0x79 + ldrb r1, [r1] + adds r0, 0x7A + strb r1, [r0] + ldr r1, _0809E3C0 + ldrb r0, [r0] + strh r0, [r1] + adds r0, r4, 0 + bl sub_809E0FC + b _0809E3EE + .align 2, 0 +_0809E3BC: .4byte 0x02018000 +_0809E3C0: .4byte gUnknown_0202E8CE +_0809E3C4: + movs r0, 0x20 + bl PlaySE + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_809F9D0 + b _0809E3EE +_0809E3D4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E3EE + ldr r0, _0809E3F4 + adds r0, 0x7A + movs r1, 0x4 + strb r1, [r0] + ldr r0, _0809E3F8 + strh r1, [r0] + adds r0, r4, 0 + bl sub_809E0FC +_0809E3EE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E3F4: .4byte 0x02018000 +_0809E3F8: .4byte gUnknown_0202E8CE + thumb_func_end sub_809E260 + + thumb_func_start sub_809E3FC +sub_809E3FC: @ 809E3FC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + ldr r0, _0809E438 + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0809E502 + ldr r0, _0809E43C + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E448 + ldr r1, _0809E440 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + subs r1, 0x5 + ldr r2, _0809E444 + adds r0, r5, 0 + bl sub_809E8F0 + b _0809E502 + .align 2, 0 +_0809E438: .4byte gPaletteFade +_0809E43C: .4byte gMain +_0809E440: .4byte gTasks +_0809E444: .4byte 0x02018079 +_0809E448: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E474 + ldr r1, _0809E46C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + ldr r2, _0809E470 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809E502 + .align 2, 0 +_0809E46C: .4byte gTasks +_0809E470: .4byte 0x02018079 +_0809E474: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E4EE + ldr r4, _0809E4A8 + adds r6, r4, 0 + adds r6, 0x79 + ldrb r0, [r6] + cmp r0, 0x4 + beq _0809E4E0 + adds r0, r4, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + bne _0809E4E0 + adds r0, r4, 0 + adds r0, 0x10 + bl sub_809E508 + lsls r0, 24 + cmp r0, 0 + bne _0809E4AC + movs r0, 0x20 + bl PlaySE + b _0809E502 + .align 2, 0 +_0809E4A8: .4byte 0x02018000 +_0809E4AC: + movs r0, 0x5 + bl PlaySE + ldrb r1, [r6] + adds r0, r4, 0 + adds r0, 0x7A + strb r1, [r0] + movs r0, 0x1 + bl sub_80A1B40 + movs r0, 0x13 + bl sub_80A1A30 + ldr r1, _0809E4D8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E4DC + str r1, [r0] + b _0809E502 + .align 2, 0 +_0809E4D8: .4byte gTasks +_0809E4DC: .4byte sub_809E534 +_0809E4E0: + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl sub_809EAC8 + b _0809E502 +_0809E4EE: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E502 + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl sub_809EAC8 +_0809E502: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_809E3FC + + thumb_func_start sub_809E508 +sub_809E508: @ 809E508 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0x1 +_0809E50E: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809F760 + lsls r0, 16 + cmp r0, 0 + beq _0809E520 + movs r0, 0x1 + b _0809E52C +_0809E520: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0809E50E + movs r0, 0 +_0809E52C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809E508 + + thumb_func_start sub_809E534 +sub_809E534: @ 809E534 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r2, r3, 0 + ldr r0, _0809E564 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E570 + ldr r1, _0809E568 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x8] + subs r1, 0x4 + ldr r2, _0809E56C + adds r0, r3, 0 + bl sub_809E8F0 + b _0809E5C0 + .align 2, 0 +_0809E564: .4byte gMain +_0809E568: .4byte gTasks +_0809E56C: .4byte 0x0201807a +_0809E570: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809E59C + ldr r1, _0809E594 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x8] + ldr r2, _0809E598 + adds r0, r3, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809E5C0 + .align 2, 0 +_0809E594: .4byte gTasks +_0809E598: .4byte 0x0201807a +_0809E59C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E5AE + adds r0, r3, 0 + movs r1, 0x1 + bl sub_809E83C + b _0809E5C0 +_0809E5AE: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E5C0 + movs r1, 0x1 + negs r1, r1 + adds r0, r2, 0 + bl sub_809E83C +_0809E5C0: + pop {r0} + bx r0 + thumb_func_end sub_809E534 + + thumb_func_start sub_809E5C4 +sub_809E5C4: @ 809E5C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r1, _0809E6D0 + ldr r5, [r1] + ldrb r2, [r1, 0x9] + movs r0, 0x64 + muls r0, r2 + adds r5, r0 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + mov r8, r0 + adds r1, 0x7A + ldrb r6, [r1] + adds r0, 0xD + str r0, [sp, 0x8] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl GetMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r2, r6, 0 + adds r2, 0xD + str r2, [sp, 0xC] + adds r0, r5, 0 + adds r1, r2, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + mov r3, r8 + adds r3, 0x11 + str r3, [sp, 0x10] + adds r0, r5, 0 + adds r1, r3, 0 + bl GetMonData + mov r7, sp + adds r7, 0x5 + str r7, [sp, 0x18] + strb r0, [r7] + adds r0, r6, 0 + adds r0, 0x11 + str r0, [sp, 0x1C] + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + bl GetMonData + add r1, sp, 0x4 + mov r10, r1 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x15 + bl GetMonData + mov r4, sp + adds r4, 0x6 + strb r0, [r4] + ldr r1, _0809E6D4 + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r4] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + mov r7, r8 + lsls r7, 1 + mov r8, r7 + asrs r2, r7 + lsls r2, 24 + lsrs r2, 24 + adds r1, r6, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r6, 1 + asrs r1, r6 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r4] + ldrb r0, [r4] + bics r0, r3 + strb r0, [r4] + lsls r2, r6 + mov r0, r8 + lsls r1, r0 + adds r2, r1 + ldrb r0, [r4] + orrs r0, r2 + strb r0, [r4] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetMonData + adds r0, r5, 0 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetMonData + adds r0, r5, 0 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetMonData + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r5, 0 + movs r1, 0x15 + adds r2, r4, 0 + bl SetMonData + 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 +_0809E6D0: .4byte 0x02018000 +_0809E6D4: .4byte gUnknown_08208238 + thumb_func_end sub_809E5C4 + + thumb_func_start sub_809E6D8 +sub_809E6D8: @ 809E6D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r2, _0809E7E8 + ldr r5, [r2] + ldrb r1, [r2, 0x9] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + adds r5, r0 + adds r0, r2, 0 + adds r0, 0x79 + ldrb r0, [r0] + mov r8, r0 + adds r2, 0x7A + ldrb r6, [r2] + adds r0, 0xD + str r0, [sp, 0x8] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl GetBoxMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r2, r6, 0 + adds r2, 0xD + str r2, [sp, 0xC] + adds r0, r5, 0 + adds r1, r2, 0 + bl GetBoxMonData + mov r1, sp + strh r0, [r1] + mov r3, r8 + adds r3, 0x11 + str r3, [sp, 0x10] + adds r0, r5, 0 + adds r1, r3, 0 + bl GetBoxMonData + mov r7, sp + adds r7, 0x5 + str r7, [sp, 0x18] + strb r0, [r7] + adds r0, r6, 0 + adds r0, 0x11 + str r0, [sp, 0x1C] + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + bl GetBoxMonData + add r1, sp, 0x4 + mov r10, r1 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x15 + bl GetBoxMonData + mov r4, sp + adds r4, 0x6 + strb r0, [r4] + ldr r1, _0809E7EC + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r4] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + mov r7, r8 + lsls r7, 1 + mov r8, r7 + asrs r2, r7 + lsls r2, 24 + lsrs r2, 24 + adds r1, r6, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r6, 1 + asrs r1, r6 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r4] + ldrb r0, [r4] + bics r0, r3 + strb r0, [r4] + lsls r2, r6 + mov r0, r8 + lsls r1, r0 + adds r2, r1 + ldrb r0, [r4] + orrs r0, r2 + strb r0, [r4] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetBoxMonData + adds r0, r5, 0 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetBoxMonData + adds r0, r5, 0 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetBoxMonData + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetBoxMonData + adds r0, r5, 0 + movs r1, 0x15 + adds r2, r4, 0 + bl SetBoxMonData + 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 +_0809E7E8: .4byte 0x02018000 +_0809E7EC: .4byte gUnknown_08208238 + thumb_func_end sub_809E6D8 + + thumb_func_start sub_809E7F0 +sub_809E7F0: @ 809E7F0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_809F5F8 + lsls r0, 24 + cmp r0, 0 + beq _0809E828 + ldr r1, _0809E830 + adds r2, r1, 0 + adds r2, 0x74 + movs r0, 0 + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0x10 + adds r1, 0x79 + bl sub_80A0428 + ldr r1, _0809E834 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E838 + str r1, [r0] + adds r0, r4, 0 + bl BgFrame_FillTileMap +_0809E828: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809E830: .4byte 0x02018000 +_0809E834: .4byte gTasks +_0809E838: .4byte sub_809E3FC + thumb_func_end sub_809E7F0 + + thumb_func_start sub_809E83C +sub_809E83C: @ 809E83C + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x13 + bl sub_80A1B1C + movs r0, 0 + bl sub_80A1B40 + cmp r4, 0x1 + bne _0809E8C0 + ldr r1, _0809E87C + adds r0, r1, 0 + adds r0, 0x79 + adds r2, r1, 0 + adds r2, 0x7A + ldrb r0, [r0] + ldrb r2, [r2] + cmp r0, r2 + beq _0809E8CA + ldrb r0, [r1, 0xE] + cmp r0, 0 + bne _0809E880 + bl sub_809E5C4 + b _0809E884 + .align 2, 0 +_0809E87C: .4byte 0x02018000 +_0809E880: + bl sub_809E6D8 +_0809E884: + ldr r4, _0809E8B4 + adds r0, r4, 0 + adds r0, 0x7A + ldrb r0, [r0] + adds r1, r4, 0 + adds r1, 0x79 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x10 + bl sub_809F678 + adds r1, r4, 0 + adds r1, 0x74 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0809E8B8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E8BC + str r1, [r0] + b _0809E8DE + .align 2, 0 +_0809E8B4: .4byte 0x02018000 +_0809E8B8: .4byte gTasks +_0809E8BC: .4byte sub_809E7F0 +_0809E8C0: + ldr r0, _0809E8E4 + adds r1, r0, 0 + adds r1, 0x69 + bl sub_80A0428 +_0809E8CA: + ldr r0, _0809E8E8 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _0809E8EC + str r0, [r1] + adds r0, r5, 0 + bl BgFrame_FillTileMap +_0809E8DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E8E4: .4byte 0x02018010 +_0809E8E8: .4byte gTasks +_0809E8EC: .4byte sub_809E3FC + thumb_func_end sub_809E83C + + thumb_func_start sub_809E8F0 +sub_809E8F0: @ 809E8F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r1, 0 + mov r9, r2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x5 + bl PlaySE + mov r1, r9 + ldrb r6, [r1] + ldr r1, _0809E944 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r2, 0 + lsls r4, 24 + asrs r4, 24 + mov r10, r4 + lsls r7, r0, 24 +_0809E930: + lsls r0, r6, 24 + asrs r0, 24 + add r0, r10 + lsls r0, 24 + lsrs r6, r0, 24 + asrs r1, r0, 24 + cmp r0, r7 + ble _0809E948 + movs r6, 0 + b _0809E94E + .align 2, 0 +_0809E944: .4byte gTasks +_0809E948: + cmp r1, 0 + bge _0809E94E + lsrs r6, r7, 24 +_0809E94E: + lsls r4, r6, 24 + lsrs r1, r4, 24 + ldr r0, _0809EA10 + str r2, [sp, 0x4] + bl sub_809F760 + lsls r0, 16 + adds r5, r4, 0 + ldr r2, [sp, 0x4] + cmp r0, 0 + bne _0809E97A + asrs r0, r5, 24 + cmp r0, 0x4 + beq _0809E97A + lsls r0, r2, 24 + movs r3, 0x80 + lsls r3, 17 + adds r0, r3 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _0809E930 +_0809E97A: + mov r1, r9 + ldrb r0, [r1] + cmp r0, 0x4 + bne _0809E996 + asrs r0, r5, 24 + cmp r0, 0x4 + beq _0809E996 + ldr r0, _0809EA14 + adds r0, 0x7C + ldrh r0, [r0] + mov r2, r8 + lsls r7, r2, 2 + cmp r0, 0 + beq _0809E9AC +_0809E996: + ldr r2, _0809EA18 + mov r3, r8 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r0, 3 + adds r0, r2 + movs r2, 0x22 + ldrsh r0, [r0, r2] + adds r7, r1, 0 + cmp r0, 0x1 + bne _0809E9D0 +_0809E9AC: + lsrs r4, r5, 24 + movs r0, 0x2 + adds r1, r4, 0 + bl sub_80A1488 + movs r0, 0x2 + adds r1, r4, 0 + bl sub_80A1654 + ldr r1, _0809EA18 + mov r3, r8 + adds r0, r7, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x22] + movs r0, 0 + str r0, [sp] +_0809E9D0: + mov r1, r9 + ldrb r0, [r1] + cmp r0, 0x4 + beq _0809E9FE + asrs r0, r5, 24 + cmp r0, 0x4 + bne _0809E9FE + ldr r0, _0809EA14 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + bne _0809E9FE + movs r4, 0x2 + negs r4, r4 + lsrs r5, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A1488 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A1654 +_0809E9FE: + mov r2, r9 + strb r6, [r2] + ldr r0, _0809EA1C + cmp r9, r0 + bne _0809EA20 + movs r0, 0 + bl sub_80A1C30 + b _0809EA26 + .align 2, 0 +_0809EA10: .4byte 0x02018010 +_0809EA14: .4byte 0x02018000 +_0809EA18: .4byte gTasks +_0809EA1C: .4byte 0x02018079 +_0809EA20: + movs r0, 0x1 + bl sub_80A1C30 +_0809EA26: + ldr r3, [sp] + cmp r3, 0 + beq _0809EA34 + ldr r0, _0809EA4C + mov r1, r9 + bl sub_80A0428 +_0809EA34: + mov r0, r8 + bl BgFrame_FillTileMap + 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 +_0809EA4C: .4byte 0x02018010 + thumb_func_end sub_809E8F0 + + thumb_func_start sub_809EA50 +sub_809EA50: @ 809EA50 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r4, _0809EABC + adds r1, r4, 0 + adds r1, 0x79 + movs r0, 0 + strb r0, [r1] + movs r0, 0x2 + movs r1, 0 + bl sub_80A1488 + movs r0, 0x2 + movs r1, 0 + bl sub_80A1654 + adds r0, r4, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + bne _0809EA8C + adds r1, r4, 0 + adds r1, 0x7F + movs r0, 0x5 + strb r0, [r1] + bl sub_80A0DD0 +_0809EA8C: + movs r0, 0 + bl sub_80A16CC + adds r0, r4, 0 + adds r0, 0x10 + bl sub_80A029C + movs r0, 0x9 + bl sub_80A1A30 + ldr r1, _0809EAC0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809EAC4 + str r1, [r0] + adds r0, r5, 0 + bl BgFrame_FillTileMap + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809EABC: .4byte 0x02018000 +_0809EAC0: .4byte gTasks +_0809EAC4: .4byte sub_809E3FC + thumb_func_end sub_809EA50 + + thumb_func_start sub_809EAC8 +sub_809EAC8: @ 809EAC8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0809EB34 + adds r0, r6, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + beq _0809EAEE + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + movs r1, 0 + bl sub_80A1488 + adds r0, r4, 0 + movs r1, 0 + bl sub_80A1654 +_0809EAEE: + movs r0, 0x9 + bl sub_80A1B1C + movs r0, 0x1 + bl sub_80A16CC + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + movs r0, 0xB + movs r1, 0xF + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r1, r6, 0 + adds r1, 0x7F + movs r0, 0x6 + strb r0, [r1] + bl sub_80A0DD0 + ldr r1, _0809EB38 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809EB3C + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809EB34: .4byte 0x02018000 +_0809EB38: .4byte gTasks +_0809EB3C: .4byte sub_809E19C + thumb_func_end sub_809EAC8 + + thumb_func_start sub_809EB40 +sub_809EB40: @ 809EB40 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0809EB6C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0809EB74 + cmp r0, 0x5 + bne _0809EBA4 + movs r0, 0x9 + bl sub_80A1A30 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _0809EB70 + str r0, [r4] + b _0809EBB4 + .align 2, 0 +_0809EB6C: .4byte gTasks +_0809EB70: .4byte sub_809E260 +_0809EB74: + ldr r4, _0809EBBC + adds r6, r4, 0 + adds r6, 0x79 + strb r0, [r6] + adds r0, r4, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809EB96 + movs r0, 0xA + movs r1, 0 + bl sub_80A1488 + ldrb r1, [r6] + movs r0, 0xA + bl sub_80A1654 +_0809EB96: + movs r0, 0 + bl sub_80A16CC + adds r0, r4, 0 + adds r0, 0x10 + bl sub_80A029C +_0809EBA4: + ldr r0, _0809EBC0 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0809EBB4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809EBBC: .4byte 0x02018000 +_0809EBC0: .4byte gTasks + thumb_func_end sub_809EB40 + + thumb_func_start sub_809EBC4 +sub_809EBC4: @ 809EBC4 + push {r4,lr} + ldr r4, _0809EC28 + ldrb r0, [r4, 0xB] + cmp r0, 0 + beq _0809EC22 + bl sub_80A0EE8 + ldr r0, _0809EC2C + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + strh r1, [r0] + ldrb r0, [r4, 0xB] + cmp r0, 0x1 + bne _0809EBF4 + ldr r2, _0809EC30 + ldrh r1, [r2] + ldr r0, _0809EC34 + ands r0, r1 + movs r3, 0x80 + lsls r3, 4 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EBF4: + ldrb r3, [r4, 0xB] + cmp r3, 0x2 + bne _0809EC0C + ldr r2, _0809EC30 + ldrh r1, [r2] + ldr r0, _0809EC34 + ands r0, r1 + movs r4, 0xA0 + lsls r4, 4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EC0C: + cmp r3, 0x3 + bne _0809EC22 + ldr r2, _0809EC30 + ldrh r1, [r2] + ldr r0, _0809EC34 + ands r0, r1 + movs r3, 0xC0 + lsls r3, 4 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EC22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809EC28: .4byte 0x02018000 +_0809EC2C: .4byte gUnknown_030042C0 +_0809EC30: .4byte REG_BG1CNT +_0809EC34: .4byte 0x0000e0ff + thumb_func_end sub_809EBC4 + + thumb_func_start sub_809EC38 +sub_809EC38: @ 809EC38 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0809EC5C + adds r6, r0, r1 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x5 + bls _0809EC52 + b _0809EE64 +_0809EC52: + lsls r0, 2 + ldr r1, _0809EC60 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EC5C: .4byte gUnknown_03004B28 +_0809EC60: .4byte _0809EC64 + .align 2, 0 +_0809EC64: + .4byte _0809EC7C + .4byte _0809ED14 + .4byte _0809ED98 + .4byte _0809EE12 + .4byte _0809EE1C + .4byte _0809EE4C +_0809EC7C: + ldr r1, _0809ECB8 + adds r0, r1, 0 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809ECC8 + ldrb r3, [r1, 0xB] + cmp r3, 0 + beq _0809EC98 + ldr r1, _0809ECBC + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] +_0809EC98: + cmp r3, 0x1 + bne _0809ECAE + ldr r2, _0809ECC0 + ldrh r1, [r2] + ldr r0, _0809ECC4 + ands r0, r1 + movs r4, 0x80 + lsls r4, 4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809ECAE: + cmp r3, 0x2 + beq _0809ECB4 + b _0809EE3A +_0809ECB4: + ldr r2, _0809ECC0 + b _0809ECF6 + .align 2, 0 +_0809ECB8: .4byte 0x02018000 +_0809ECBC: .4byte gUnknown_03004288 +_0809ECC0: .4byte REG_BG2CNT +_0809ECC4: .4byte 0x0000e0ff +_0809ECC8: + ldrb r3, [r1, 0xB] + cmp r3, 0 + beq _0809ECD8 + ldr r1, _0809ED08 + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + strh r0, [r1] +_0809ECD8: + cmp r3, 0x1 + bne _0809ECEE + ldr r2, _0809ED0C + ldrh r1, [r2] + ldr r0, _0809ED10 + ands r0, r1 + movs r4, 0x80 + lsls r4, 4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809ECEE: + cmp r3, 0x2 + beq _0809ECF4 + b _0809EE3A +_0809ECF4: + ldr r2, _0809ED0C +_0809ECF6: + ldrh r1, [r2] + ldr r0, _0809ED10 + ands r0, r1 + movs r3, 0xA0 + lsls r3, 4 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] + b _0809EE3A + .align 2, 0 +_0809ED08: .4byte gUnknown_030042C0 +_0809ED0C: .4byte REG_BG1CNT +_0809ED10: .4byte 0x0000e0ff +_0809ED14: + ldr r0, _0809ED48 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809ED5C + ldr r1, _0809ED4C + ldrh r0, [r1] + subs r0, 0x20 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809ED2E + b _0809EE64 +_0809ED2E: + ldr r3, _0809ED50 + ldrh r2, [r3] + ldr r1, _0809ED54 + adds r0, r1, 0 + ands r0, r2 + adds r0, 0x2 + strh r0, [r3] + ldr r2, _0809ED58 + ldrh r0, [r2] + ands r1, r0 + adds r1, 0x1 + strh r1, [r2] + b _0809EE3A + .align 2, 0 +_0809ED48: .4byte 0x02018000 +_0809ED4C: .4byte gUnknown_030042C0 +_0809ED50: .4byte REG_BG1CNT +_0809ED54: .4byte 0x0000fffc +_0809ED58: .4byte REG_BG2CNT +_0809ED5C: + ldr r1, _0809ED88 + ldrh r0, [r1] + subs r0, 0x20 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809ED6C + b _0809EE64 +_0809ED6C: + ldr r3, _0809ED8C + ldrh r2, [r3] + ldr r1, _0809ED90 + adds r0, r1, 0 + ands r0, r2 + adds r0, 0x1 + strh r0, [r3] + ldr r2, _0809ED94 + ldrh r0, [r2] + ands r1, r0 + adds r1, 0x2 + strh r1, [r2] + b _0809EE3A + .align 2, 0 +_0809ED88: .4byte gUnknown_03004288 +_0809ED8C: .4byte REG_BG1CNT +_0809ED90: .4byte 0x0000fffc +_0809ED94: .4byte REG_BG2CNT +_0809ED98: + ldr r1, _0809EDD4 + ldrb r3, [r1, 0xB] + adds r0, r3, 0x1 + adds r2, r1, 0 + adds r2, 0x7E + strb r0, [r2] + ldrb r2, [r1, 0x8] + subs r0, r2, 0x2 + lsls r0, 24 + lsrs r0, 24 + adds r5, r1, 0 + cmp r0, 0x1 + bhi _0809EDD8 + adds r1, 0x7F + movs r0, 0 + strb r0, [r1] + adds r4, r5, 0 + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A029C + adds r5, 0x79 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A0428 + ldrb r0, [r5] + bl sub_80A00F4 + b _0809EE3A + .align 2, 0 +_0809EDD4: .4byte 0x02018000 +_0809EDD8: + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0809EDFA + adds r0, r5, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + beq _0809EDF2 + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _0809EDFA +_0809EDF2: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x6 + b _0809EE0E +_0809EDFA: + ldrb r0, [r5, 0xB] + cmp r0, 0 + bne _0809EE08 + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x7 + b _0809EE0E +_0809EE08: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0 +_0809EE0E: + strb r0, [r1] + b _0809EE3A +_0809EE12: + bl sub_80A0EE8 + bl sub_80A0DD0 + b _0809EE3A +_0809EE1C: + ldr r0, _0809EE44 + ldr r4, _0809EE48 + ldrb r1, [r4, 0xB] + lsls r1, 2 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + adds r4, 0x80 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] +_0809EE3A: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _0809EE64 + .align 2, 0 +_0809EE44: .4byte gUnknown_083C1598 +_0809EE48: .4byte 0x02018000 +_0809EE4C: + bl sub_8055870 + cmp r0, 0x1 + beq _0809EE64 + ldr r1, _0809EE6C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809EE70 + ldr r1, [r1] + str r1, [r0] +_0809EE64: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809EE6C: .4byte gTasks +_0809EE70: .4byte gUnknown_03005CF0 + thumb_func_end sub_809EC38 + + thumb_func_start sub_809EE74 +sub_809EE74: @ 809EE74 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0809EE98 + adds r6, r0, r1 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x6 + bls _0809EE8E + b _0809F0C0 +_0809EE8E: + lsls r0, 2 + ldr r1, _0809EE9C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EE98: .4byte gUnknown_03004B28 +_0809EE9C: .4byte _0809EEA0 + .align 2, 0 +_0809EEA0: + .4byte _0809EEBC + .4byte _0809EEE0 + .4byte _0809EFB4 + .4byte _0809EFF4 + .4byte _0809F06E + .4byte _0809F078 + .4byte _0809F0A8 +_0809EEBC: + ldr r0, _0809EECC + adds r0, 0x80 + ldrb r1, [r0] + cmp r1, 0 + bne _0809EED4 + ldr r0, _0809EED0 + strh r1, [r0] + b _0809F096 + .align 2, 0 +_0809EECC: .4byte 0x02018000 +_0809EED0: .4byte gUnknown_03004288 +_0809EED4: + ldr r1, _0809EEDC + movs r0, 0 + strh r0, [r1] + b _0809F096 + .align 2, 0 +_0809EEDC: .4byte gUnknown_030042C0 +_0809EEE0: + ldr r1, _0809EF30 + adds r0, r1, 0 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809EF4C + ldrb r3, [r1, 0xB] + cmp r3, 0x1 + bne _0809EF02 + ldr r2, _0809EF34 + ldrh r1, [r2] + ldr r0, _0809EF38 + ands r0, r1 + ldr r4, _0809EF3C + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF02: + cmp r3, 0x2 + bne _0809EF16 + ldr r2, _0809EF34 + ldrh r1, [r2] + ldr r0, _0809EF38 + ands r0, r1 + ldr r4, _0809EF40 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF16: + cmp r3, 0x3 + bne _0809EF2A + ldr r2, _0809EF34 + ldrh r1, [r2] + ldr r0, _0809EF38 + ands r0, r1 + ldr r3, _0809EF44 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EF2A: + ldr r2, _0809EF48 + b _0809EF8C + .align 2, 0 +_0809EF30: .4byte 0x02018000 +_0809EF34: .4byte REG_BG2CNT +_0809EF38: .4byte 0x0000e0fc +_0809EF3C: .4byte 0x00000801 +_0809EF40: .4byte 0x00000a01 +_0809EF44: .4byte 0x00000c01 +_0809EF48: .4byte REG_BG1CNT +_0809EF4C: + ldrb r3, [r1, 0xB] + cmp r3, 0x1 + bne _0809EF62 + ldr r2, _0809EF98 + ldrh r1, [r2] + ldr r0, _0809EF9C + ands r0, r1 + ldr r4, _0809EFA0 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF62: + cmp r3, 0x2 + bne _0809EF76 + ldr r2, _0809EF98 + ldrh r1, [r2] + ldr r0, _0809EF9C + ands r0, r1 + ldr r4, _0809EFA4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF76: + cmp r3, 0x3 + bne _0809EF8A + ldr r2, _0809EF98 + ldrh r1, [r2] + ldr r0, _0809EF9C + ands r0, r1 + ldr r3, _0809EFA8 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EF8A: + ldr r2, _0809EFAC +_0809EF8C: + ldrh r1, [r2] + ldr r0, _0809EFB0 + ands r0, r1 + adds r0, 0x2 + strh r0, [r2] + b _0809F096 + .align 2, 0 +_0809EF98: .4byte REG_BG1CNT +_0809EF9C: .4byte 0x0000e0fc +_0809EFA0: .4byte 0x00000801 +_0809EFA4: .4byte 0x00000a01 +_0809EFA8: .4byte 0x00000c01 +_0809EFAC: .4byte REG_BG2CNT +_0809EFB0: .4byte 0x0000fffc +_0809EFB4: + ldr r0, _0809EFD4 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809EFDC + ldr r0, _0809EFD8 + ldrh r1, [r0] + adds r1, 0x20 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + cmp r1, r0 + bne _0809F0C0 + b _0809F096 + .align 2, 0 +_0809EFD4: .4byte 0x02018000 +_0809EFD8: .4byte gUnknown_03004288 +_0809EFDC: + ldr r0, _0809EFF0 + ldrh r1, [r0] + adds r1, 0x20 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + cmp r1, r0 + bne _0809F0C0 + b _0809F096 + .align 2, 0 +_0809EFF0: .4byte gUnknown_030042C0 +_0809EFF4: + ldr r1, _0809F030 + ldrb r3, [r1, 0xB] + adds r0, r3, 0x1 + adds r2, r1, 0 + adds r2, 0x7E + strb r0, [r2] + ldrb r2, [r1, 0x8] + subs r0, r2, 0x2 + lsls r0, 24 + lsrs r0, 24 + adds r5, r1, 0 + cmp r0, 0x1 + bhi _0809F034 + adds r1, 0x7F + movs r0, 0 + strb r0, [r1] + adds r4, r5, 0 + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A029C + adds r5, 0x79 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A0428 + ldrb r0, [r5] + bl sub_80A00F4 + b _0809F096 + .align 2, 0 +_0809F030: .4byte 0x02018000 +_0809F034: + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0809F056 + adds r0, r5, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + beq _0809F04E + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _0809F056 +_0809F04E: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x6 + b _0809F06A +_0809F056: + ldrb r0, [r5, 0xB] + cmp r0, 0 + bne _0809F064 + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x7 + b _0809F06A +_0809F064: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0 +_0809F06A: + strb r0, [r1] + b _0809F096 +_0809F06E: + bl sub_80A0EE8 + bl sub_80A0DD0 + b _0809F096 +_0809F078: + ldr r0, _0809F0A0 + ldr r4, _0809F0A4 + ldrb r1, [r4, 0xB] + lsls r1, 2 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + adds r4, 0x80 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] +_0809F096: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _0809F0C0 + .align 2, 0 +_0809F0A0: .4byte gUnknown_083C1598 +_0809F0A4: .4byte 0x02018000 +_0809F0A8: + bl sub_8055870 + cmp r0, 0x1 + beq _0809F0C0 + ldr r1, _0809F0C8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809F0CC + ldr r1, [r1] + str r1, [r0] +_0809F0C0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809F0C8: .4byte gTasks +_0809F0CC: .4byte gUnknown_03005CF0 + thumb_func_end sub_809EE74 + + thumb_func_start sub_809F0D0 +sub_809F0D0: @ 809F0D0 + push {r4-r7,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0809F110 + ldrb r0, [r1, 0xB] + adds r0, r4 + movs r5, 0 + strb r0, [r1, 0xB] + ldr r2, _0809F114 + ldr r1, _0809F118 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + ldr r0, [r6] + str r0, [r2] + bl sub_809FBE4 + strh r5, [r6, 0x8] + lsls r4, 24 + asrs r4, 24 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _0809F120 + ldr r0, _0809F11C + str r0, [r6] + b _0809F12A + .align 2, 0 +_0809F110: .4byte 0x02018000 +_0809F114: .4byte gUnknown_03005CF0 +_0809F118: .4byte gTasks +_0809F11C: .4byte sub_809EC38 +_0809F120: + ldr r1, _0809F130 + str r1, [r6] + adds r0, r7, 0 + bl _call_via_r1 +_0809F12A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809F130: .4byte sub_809EE74 + thumb_func_end sub_809F0D0 + + thumb_func_start sub_809F134 +sub_809F134: @ 809F134 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r4, _0809F1AC + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809F1A6 + lsls r0, r5, 24 + asrs r5, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r5, r0 + bne _0809F168 + adds r0, r4, 0 + subs r0, 0x10 + adds r1, r4, 0 + adds r1, 0x65 + ldrb r0, [r0, 0xB] + ldrb r1, [r1] + cmp r0, r1 + beq _0809F1A6 +_0809F168: + cmp r5, 0x1 + bne _0809F17C + adds r0, r4, 0 + subs r0, 0x10 + adds r1, r4, 0 + adds r1, 0x66 + ldrb r0, [r0, 0xB] + ldrb r1, [r1] + cmp r0, r1 + beq _0809F1A6 +_0809F17C: + ldr r0, _0809F1B0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809F1A6 + ldr r0, _0809F1B4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809F1A6 + movs r0, 0x5 + bl PlaySE + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_809F0D0 +_0809F1A6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809F1AC: .4byte 0x02018010 +_0809F1B0: .4byte sub_80A1334 +_0809F1B4: .4byte sub_80A1500 + thumb_func_end sub_809F134 + + thumb_func_start sub_809F1B8 +sub_809F1B8: @ 809F1B8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, _0809F1E4 + ldrb r1, [r0, 0xE] + adds r2, r0, 0 + cmp r1, 0x1 + bne _0809F202 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0809F1E8 + lsls r1, r4, 24 + asrs r1, 24 + movs r4, 0x1 + eors r1, r4 + negs r0, r1 + orrs r0, r1 + lsrs r4, r0, 31 + b _0809F1F4 + .align 2, 0 +_0809F1E4: .4byte 0x02018000 +_0809F1E8: + lsls r0, r4, 24 + asrs r0, 24 + movs r4, 0x3 + cmp r0, 0x1 + bne _0809F1F4 + movs r4, 0x2 +_0809F1F4: + ldr r0, [r2] + ldrb r1, [r2, 0x9] + ldrb r2, [r2, 0xA] + adds r3, r4, 0 + bl sub_8095DCC + b _0809F22C +_0809F202: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F224 + bl sub_806B528 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F224 + lsls r0, r4, 24 + asrs r0, 24 + bl sub_809F3CC + b _0809F22C +_0809F224: + lsls r0, r4, 24 + asrs r0, 24 + bl sub_809F284 +_0809F22C: + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _0809F270 + movs r0, 0x5 + bl PlaySE + ldr r5, _0809F278 + adds r0, r5, 0 + bl sub_80A1CD8 + lsls r0, 24 + cmp r0, 0 + beq _0809F258 + movs r0, 0x2 + negs r0, r0 + bl sub_80A12D0 +_0809F258: + adds r0, r5, 0 + subs r0, 0x10 + strb r4, [r0, 0x9] + ldr r1, _0809F27C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, [r0] + str r1, [r5, 0x74] + ldr r1, _0809F280 + str r1, [r0] +_0809F270: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809F278: .4byte 0x02018010 +_0809F27C: .4byte gTasks +_0809F280: .4byte sub_809F43C + thumb_func_end sub_809F1B8 + + thumb_func_start sub_809F284 +sub_809F284: @ 809F284 + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0809F2C0 + ldr r7, [r0] + movs r6, 0 + ldrb r1, [r0, 0xB] + adds r4, r0, 0 + cmp r1, 0 + bne _0809F2C4 + lsls r0, r3, 24 + asrs r2, r0, 24 + movs r1, 0x1 + negs r1, r1 + adds r5, r0, 0 + cmp r2, r1 + bne _0809F2AC + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0809F2E4 +_0809F2AC: + asrs r0, r5, 24 + cmp r0, 0x1 + bne _0809F2BA + ldrb r0, [r4, 0x9] + ldrb r1, [r4, 0xA] + cmp r0, r1 + bcs _0809F2E4 +_0809F2BA: + ldrb r0, [r4, 0x9] + adds r0, r3 + b _0809F304 + .align 2, 0 +_0809F2C0: .4byte 0x02018000 +_0809F2C4: + lsls r5, r3, 24 +_0809F2C6: + lsls r0, r6, 24 + asrs r0, 24 + asrs r1, r5, 24 + adds r0, r1 + lsls r0, 24 + ldr r4, _0809F2EC + lsrs r6, r0, 24 + asrs r0, 24 + ldrb r2, [r4, 0x9] + adds r1, r0, r2 + cmp r1, 0 + blt _0809F2E4 + ldrb r0, [r4, 0xA] + cmp r1, r0 + ble _0809F2F0 +_0809F2E4: + movs r0, 0x1 + negs r0, r0 + b _0809F308 + .align 2, 0 +_0809F2EC: .4byte 0x02018000 +_0809F2F0: + movs r0, 0x64 + muls r0, r1 + adds r0, r7, r0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809F2C6 + ldrb r0, [r4, 0x9] + adds r0, r6 +_0809F304: + lsls r0, 24 + asrs r0, 24 +_0809F308: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809F284 + + thumb_func_start sub_809F310 +sub_809F310: @ 809F310 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0809F33C + ldr r0, _0809F338 + ldrb r0, [r0, 0xB] + cmp r0, 0 + bne _0809F332 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809F33C +_0809F332: + movs r0, 0x1 + b _0809F33E + .align 2, 0 +_0809F338: .4byte 0x02018000 +_0809F33C: + movs r0, 0 +_0809F33E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809F310 + + thumb_func_start sub_809F344 +sub_809F344: @ 809F344 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 +_0809F34A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + beq _0809F37C + ldr r0, _0809F374 + adds r5, r4, r0 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809F378 + adds r0, r1 + bl sub_809F310 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F34A + movs r0, 0 + ldrsb r0, [r5, r0] + b _0809F380 + .align 2, 0 +_0809F374: .4byte gUnknown_083C15A8 +_0809F378: .4byte gPlayerParty +_0809F37C: + movs r0, 0x1 + negs r0, r0 +_0809F380: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809F344 + + thumb_func_start sub_809F388 +sub_809F388: @ 809F388 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 +_0809F38E: + cmp r4, 0 + beq _0809F3C0 + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809F3B8 + adds r5, r4, r0 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809F3BC + adds r0, r1 + bl sub_809F310 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F38E + movs r0, 0 + ldrsb r0, [r5, r0] + b _0809F3C4 + .align 2, 0 +_0809F3B8: .4byte gUnknown_083C15A8 +_0809F3BC: .4byte gPlayerParty +_0809F3C0: + movs r0, 0x1 + negs r0, r0 +_0809F3C4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809F388 + + thumb_func_start sub_809F3CC +sub_809F3CC: @ 809F3CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0 + movs r1, 0 + ldr r3, _0809F41C + ldr r4, _0809F420 + ldrb r0, [r3] + ldrb r5, [r4, 0x9] + cmp r0, r5 + beq _0809F3FC + adds r5, r3, 0 + adds r3, r4, 0 +_0809F3E6: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x5 + bhi _0809F3FC + adds r0, r1, r5 + ldrb r0, [r0] + ldrb r4, [r3, 0x9] + cmp r0, r4 + bne _0809F3E6 + adds r2, r1, 0 +_0809F3FC: + lsls r0, r6, 24 + asrs r1, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0809F40C + cmp r2, 0 + beq _0809F414 +_0809F40C: + cmp r1, 0x1 + bne _0809F424 + cmp r2, 0x5 + bne _0809F42C +_0809F414: + movs r0, 0x1 + negs r0, r0 + b _0809F436 + .align 2, 0 +_0809F41C: .4byte gUnknown_083C15A8 +_0809F420: .4byte 0x02018000 +_0809F424: + adds r0, r2, 0 + bl sub_809F388 + b _0809F432 +_0809F42C: + adds r0, r2, 0 + bl sub_809F344 +_0809F432: + lsls r0, 24 + asrs r0, 24 +_0809F436: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_809F3CC + + thumb_func_start sub_809F43C +sub_809F43C: @ 809F43C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809F45C + ldr r1, _0809F460 + adds r5, r0, r1 + ldrb r2, [r5] + adds r3, r0, 0 + cmp r2, 0x8 + bls _0809F452 + b _0809F5CC +_0809F452: + lsls r0, r2, 2 + ldr r1, _0809F464 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809F45C: .4byte gMain +_0809F460: .4byte 0x0000043c +_0809F464: .4byte _0809F468 + .align 2, 0 +_0809F468: + .4byte _0809F48C + .4byte _0809F492 + .4byte _0809F4BC + .4byte _0809F4D8 + .4byte _0809F4F4 + .4byte _0809F51C + .4byte _0809F578 + .4byte _0809F584 + .4byte _0809F5A0 +_0809F48C: + bl StopCryAndClearCrySongs + b _0809F5B2 +_0809F492: + ldr r0, _0809F4AC + ldrb r1, [r0, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809F4B0 + adds r0, r1 + bl DestroySpriteAndFreeResources + ldr r1, _0809F4B4 + ldr r0, _0809F4B8 + adds r1, r0 + b _0809F5B8 + .align 2, 0 +_0809F4AC: .4byte 0x02018000 +_0809F4B0: .4byte gSprites +_0809F4B4: .4byte gMain +_0809F4B8: .4byte 0x0000043c +_0809F4BC: + ldr r0, _0809F4D0 + ldrb r1, [r0, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809F4D4 + adds r0, r1 + bl DestroySpriteAndFreeResources + b _0809F5B2 + .align 2, 0 +_0809F4D0: .4byte 0x02018000 +_0809F4D4: .4byte gSprites +_0809F4D8: + ldr r0, _0809F4EC + adds r1, r0, 0 + adds r1, 0x74 + movs r2, 0 + strb r2, [r1] + adds r0, 0x79 + strb r2, [r0] + ldr r0, _0809F4F0 + adds r1, r3, r0 + b _0809F5B8 + .align 2, 0 +_0809F4EC: .4byte 0x02018000 +_0809F4F0: .4byte 0x0000043c +_0809F4F4: + ldr r4, _0809F518 + adds r0, r4, 0 + bl sub_809F678 + adds r0, r4, 0 + bl sub_80A1CD8 + lsls r0, 24 + cmp r0, 0 + beq _0809F50E + movs r0, 0x2 + bl sub_80A12D0 +_0809F50E: + adds r0, r4, 0 + bl sub_80A0EA4 + b _0809F5B2 + .align 2, 0 +_0809F518: .4byte 0x02018010 +_0809F51C: + ldr r4, _0809F558 + adds r5, r4, 0 + adds r5, 0x64 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809F6B4 + adds r1, r4, 0 + subs r1, 0x10 + strb r0, [r1, 0xC] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0809F5EA + movs r0, 0 + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + adds r1, r0, 0 + cmp r1, 0 + beq _0809F560 + ldr r1, _0809F55C + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + b _0809F564 + .align 2, 0 +_0809F558: .4byte 0x02018010 +_0809F55C: .4byte gUnknown_030041B0 +_0809F560: + ldr r0, _0809F56C + strh r1, [r0] +_0809F564: + ldr r1, _0809F570 + ldr r0, _0809F574 + adds r1, r0 + b _0809F5B8 + .align 2, 0 +_0809F56C: .4byte gUnknown_030041B0 +_0809F570: .4byte gMain +_0809F574: .4byte 0x0000043c +_0809F578: + ldr r0, _0809F580 + bl sub_80A1DCC + b _0809F5B2 + .align 2, 0 +_0809F580: .4byte 0x02018010 +_0809F584: + ldr r0, _0809F594 + bl sub_80A1DE8 + ldr r1, _0809F598 + ldr r0, _0809F59C + adds r1, r0 + b _0809F5B8 + .align 2, 0 +_0809F594: .4byte 0x02018010 +_0809F598: .4byte gMain +_0809F59C: .4byte 0x0000043c +_0809F5A0: + bl sub_809F5F8 + lsls r0, 24 + cmp r0, 0 + beq _0809F5EA + ldr r0, _0809F5C0 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] +_0809F5B2: + ldr r1, _0809F5C4 + ldr r2, _0809F5C8 + adds r1, r2 +_0809F5B8: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0809F5EA + .align 2, 0 +_0809F5C0: .4byte 0x02018000 +_0809F5C4: .4byte gMain +_0809F5C8: .4byte 0x0000043c +_0809F5CC: + bl sub_8055870 + cmp r0, 0x1 + beq _0809F5EA + movs r0, 0 + strb r0, [r5] + ldr r0, _0809F5F0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0809F5F4 + adds r0, 0x84 + ldr r0, [r0] + str r0, [r1] +_0809F5EA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809F5F0: .4byte gTasks +_0809F5F4: .4byte 0x02018000 + thumb_func_end sub_809F43C + + thumb_func_start sub_809F5F8 +sub_809F5F8: @ 809F5F8 + push {r4,lr} + ldr r2, _0809F61C + adds r4, r2, 0 + adds r4, 0x74 + ldrb r0, [r4] + cmp r0, 0 + beq _0809F624 + ldr r0, _0809F620 + ldrb r1, [r2, 0xB] + lsls r1, 2 + adds r1, r0 + adds r0, r2, 0 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + movs r0, 0x1 + b _0809F634 + .align 2, 0 +_0809F61C: .4byte 0x02018000 +_0809F620: .4byte gUnknown_083C1588 +_0809F624: + adds r0, r2, 0 + adds r0, 0x10 + bl sub_809FAC8 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 +_0809F634: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809F5F8 + + thumb_func_start sub_809F63C +sub_809F63C: @ 809F63C + push {r4,lr} + adds r4, r0, 0 + bl sub_809FE80 + adds r0, r4, 0 + bl sub_809FC34 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809F63C + + thumb_func_start sub_809F650 +sub_809F650: @ 809F650 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A00A4 + adds r0, r4, 0 + bl sub_809FF64 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809F650 + + thumb_func_start sub_809F664 +sub_809F664: @ 809F664 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A0390 + adds r0, r4, 0 + bl sub_80A015C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809F664 + + thumb_func_start sub_809F678 +sub_809F678: @ 809F678 + push {lr} + adds r3, r0, 0 + ldr r1, _0809F698 + ldrb r0, [r1, 0xE] + cmp r0, 0 + bne _0809F69C + ldr r2, [r1] + ldrb r1, [r1, 0x9] + movs r0, 0x64 + muls r1, r0 + adds r1, r2 + adds r0, r3, 0 + movs r2, 0x64 + bl memcpy + b _0809F6AE + .align 2, 0 +_0809F698: .4byte 0x02018000 +_0809F69C: + ldr r0, [r1] + ldrb r2, [r1, 0x9] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r0, r1 + adds r1, r3, 0 + bl sub_803B4B4 +_0809F6AE: + pop {r0} + bx r0 + thumb_func_end sub_809F678 + + thumb_func_start sub_809F6B4 +sub_809F6B4: @ 809F6B4 + push {r4-r7,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r7, r1, 0 + ldrb r0, [r7] + cmp r0, 0 + beq _0809F6D2 + cmp r0, 0x1 + beq _0809F718 + adds r0, r4, 0 + bl sub_80A1808 + lsls r0, 24 + lsrs r0, 24 + b _0809F756 +_0809F6D2: + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + lsls r0, r5, 3 + ldr r1, _0809F70C + adds r0, r1 + ldr r1, _0809F710 + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _0809F714 + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + bl sub_800D334 + b _0809F74E + .align 2, 0 +_0809F70C: .4byte gMonFrontPicTable +_0809F710: .4byte gMonFrontPicCoords +_0809F714: .4byte gUnknown_081FAF4C +_0809F718: + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r1, r0, 0 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + ldrh r0, [r4, 0x4] + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C +_0809F74E: + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + movs r0, 0xFF +_0809F756: + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809F6B4 + + thumb_func_start sub_809F760 +sub_809F760: @ 809F760 + push {lr} + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + beq _0809F780 + cmp r1, 0x1 + bgt _0809F776 + cmp r1, 0 + beq _0809F77C + b _0809F788 +_0809F776: + cmp r2, 0x2 + beq _0809F784 + b _0809F788 +_0809F77C: + movs r1, 0xD + b _0809F78A +_0809F780: + movs r1, 0xE + b _0809F78A +_0809F784: + movs r1, 0xF + b _0809F78A +_0809F788: + movs r1, 0x10 +_0809F78A: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_809F760 + + thumb_func_start sub_809F798 +sub_809F798: @ 809F798 + push {lr} + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + beq _0809F7B8 + cmp r1, 0x1 + bgt _0809F7AE + cmp r1, 0 + beq _0809F7B4 + b _0809F7C0 +_0809F7AE: + cmp r2, 0x2 + beq _0809F7BC + b _0809F7C0 +_0809F7B4: + movs r1, 0x11 + b _0809F7C2 +_0809F7B8: + movs r1, 0x12 + b _0809F7C2 +_0809F7BC: + movs r1, 0x13 + b _0809F7C2 +_0809F7C0: + movs r1, 0x14 +_0809F7C2: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_809F798 + + thumb_func_start sub_809F7D0 +sub_809F7D0: @ 809F7D0 + push {r4,lr} + sub sp, 0x64 + mov r0, sp + bl sub_809F678 + ldr r4, _0809F804 + adds r0, r4, 0 + adds r0, 0x79 + ldrb r1, [r0] + mov r0, sp + bl sub_809F760 + lsls r0, 16 + lsrs r0, 16 + bl sub_806F7B8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F808 + ldrb r0, [r4, 0x8] + cmp r0, 0x3 + beq _0809F808 + movs r0, 0 + b _0809F80A + .align 2, 0 +_0809F804: .4byte 0x02018000 +_0809F808: + movs r0, 0x1 +_0809F80A: + add sp, 0x64 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809F7D0 + + thumb_func_start sub_809F814 +sub_809F814: @ 809F814 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r0, _0809F83C + mov r8, r0 + adds r4, r6, r0 + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0x3 + bgt _0809F840 + adds r0, r1, 0x1 + strh r0, [r4, 0x1C] + b _0809F9C0 + .align 2, 0 +_0809F83C: .4byte gUnknown_03004B28 +_0809F840: + ldr r7, _0809F874 + ldrh r1, [r7, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809F880 + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0809F878 + str r1, [r0] + movs r0, 0x4 + strh r0, [r4] + movs r0, 0x1 + strh r0, [r4, 0x1A] + ldr r2, _0809F87C + ldrh r0, [r4, 0x1E] + adds r2, 0x79 + strb r0, [r2] + movs r1, 0x1 + negs r1, r1 + adds r0, r5, 0 + bl sub_809E8F0 + b _0809F9C0 + .align 2, 0 +_0809F874: .4byte gMain +_0809F878: .4byte sub_809E260 +_0809F87C: .4byte 0x02018000 +_0809F880: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809F8B4 + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0809F8AC + str r1, [r0] + movs r0, 0x4 + strh r0, [r4] + movs r0, 0x1 + strh r0, [r4, 0x1A] + ldr r2, _0809F8B0 + ldrh r0, [r4, 0x1E] + adds r2, 0x79 + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809F9C0 + .align 2, 0 +_0809F8AC: .4byte sub_809E260 +_0809F8B0: .4byte 0x02018000 +_0809F8B4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0809F8C8 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F918 +_0809F8C8: + ldr r1, _0809F90C + ldrb r0, [r1, 0xB] + cmp r0, 0x2 + beq _0809F9C0 + cmp r0, 0x3 + bne _0809F8F4 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809F8E8 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809F8F4 +_0809F8E8: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809F8F4: + ldr r1, _0809F910 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809F914 + str r1, [r0] + movs r1, 0x1 + negs r1, r1 + adds r0, r5, 0 + b _0809F972 + .align 2, 0 +_0809F90C: .4byte 0x02018000 +_0809F910: .4byte gTasks +_0809F914: .4byte sub_809E260 +_0809F918: + ldrh r1, [r7, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0809F92E + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0809F994 +_0809F92E: + ldr r1, _0809F988 + adds r2, r1, 0 + adds r2, 0x76 + ldrb r0, [r1, 0xB] + ldrb r2, [r2] + cmp r0, r2 + beq _0809F9C0 + cmp r0, 0x2 + bne _0809F960 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809F954 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809F960 +_0809F954: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809F960: + ldr r1, _0809F98C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809F990 + str r1, [r0] + adds r0, r5, 0 + movs r1, 0x1 +_0809F972: + bl sub_809F134 + ldrb r1, [r4, 0x1E] + movs r0, 0x1 + bl sub_80A1488 + ldrb r1, [r4, 0x1E] + movs r0, 0x1 + bl sub_80A1654 + b _0809F9C0 + .align 2, 0 +_0809F988: .4byte 0x02018000 +_0809F98C: .4byte gTasks +_0809F990: .4byte sub_809E260 +_0809F994: + ldrh r1, [r7, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0809F9A6 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809F9C0 +_0809F9A6: + ldrb r1, [r4, 0x1E] + movs r0, 0x2 + bl sub_80A1488 + ldrb r1, [r4, 0x1E] + movs r0, 0x2 + bl sub_80A1654 + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0809F9CC + str r1, [r0] +_0809F9C0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809F9CC: .4byte sub_809E260 + thumb_func_end sub_809F814 + + thumb_func_start sub_809F9D0 +sub_809F9D0: @ 809F9D0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r6, _0809FA24 + adds r2, r4, r6 + movs r0, 0 + strh r0, [r2, 0x1C] + strh r1, [r2, 0x1E] + movs r5, 0x2 + negs r5, r5 + adds r0, r5, 0 + movs r1, 0x4 + bl sub_80A1488 + adds r0, r5, 0 + movs r1, 0x4 + bl sub_80A1654 + movs r0, 0xB + movs r1, 0xF + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + ldr r0, _0809FA28 + movs r1, 0xB + movs r2, 0xF + bl MenuPrint + subs r6, 0x8 + adds r4, r6 + ldr r0, _0809FA2C + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FA24: .4byte gUnknown_03004B28 +_0809FA28: .4byte gOtherText_CantForgetHMs +_0809FA2C: .4byte sub_809F814 + thumb_func_end sub_809F9D0 + + thumb_func_start sub_809FA30 +sub_809FA30: @ 809FA30 + ldr r0, _0809FA38 + adds r0, 0x7A + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809FA38: .4byte 0x02018000 + thumb_func_end sub_809FA30 + + thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing +GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C + push {r4,lr} + lsls r0, 24 + lsls r1, 24 + lsls r2, 24 + lsls r3, 24 + lsrs r2, 23 + lsrs r3, 18 + ldr r4, _0809FA70 + adds r3, r4 + adds r2, r3 + lsrs r1, 12 + lsrs r0, 23 + movs r4, 0x80 + lsls r4, 2 + adds r3, r4, 0 + adds r0, r3 + adds r1, r0 + adds r0, r1, 0 + adds r0, 0x80 + strh r0, [r2] + adds r2, 0x40 + adds r1, 0x81 + strh r1, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809FA70: .4byte 0x0600f000 + thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing + + thumb_func_start GetStringCenterAlignXOffset +GetStringCenterAlignXOffset: @ 809FA74 + push {r4,lr} + adds r4, r1, 0 + adds r3, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0xF + adds r2, r4, 0 + bl GetStringCenterAlignXOffsetWithLetterSpacing + pop {r4} + pop {r0} + bx r0 + thumb_func_end GetStringCenterAlignXOffset + + thumb_func_start sub_809FA94 +sub_809FA94: @ 809FA94 + push {lr} + bl sub_8040CB4 + lsls r0, 24 + cmp r0, 0 + beq _0809FAB4 + ldr r0, _0809FAB0 + movs r1, 0x4 + movs r2, 0x2 + bl LoadPalette + movs r0, 0x1 + b _0809FAC0 + .align 2, 0 +_0809FAB0: .4byte gUnknown_083C157E +_0809FAB4: + ldr r0, _0809FAC4 + movs r1, 0x4 + movs r2, 0x2 + bl LoadPalette + movs r0, 0 +_0809FAC0: + pop {r1} + bx r1 + .align 2, 0 +_0809FAC4: .4byte gUnknown_083C157C + thumb_func_end sub_809FA94 + + thumb_func_start sub_809FAC8 +sub_809FAC8: @ 809FAC8 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _0809FB28 + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x4 + movs r3, 0x3 + bl MenuZeroFillWindowRect + movs r0, 0x3 + movs r1, 0x10 + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xC + movs r2, 0xB + movs r3, 0xF + bl MenuZeroFillWindowRect + ldr r4, _0809FB20 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMonNickname + adds r0, r4, 0 + movs r1, 0xD + movs r2, 0x3 + movs r3, 0x10 + bl sub_80A1FF8 + ldr r0, _0809FB24 + movs r1, 0x4 + movs r2, 0x2 + bl LoadPalette + b _0809FBD6 + .align 2, 0 +_0809FB20: .4byte gStringVar1 +_0809FB24: .4byte gUnknown_083C157C +_0809FB28: + adds r0, r5, 0 + bl sub_809FA94 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl sub_80406D8 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _0809FB6C + cmp r4, r0 + beq _0809FB96 + cmp r6, 0 + bne _0809FB70 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x2 + bl GetStringCenterAlignXOffset + movs r0, 0x11 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0xD + b _0809FB8C + .align 2, 0 +_0809FB6C: .4byte 0x0000ffff +_0809FB70: + movs r0, 0x2 + movs r1, 0x8 + movs r2, 0x1 + movs r3, 0x2 + bl GetStringCenterAlignXOffsetWithLetterSpacing + movs r0, 0x11 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x8 +_0809FB8C: + movs r2, 0x3 + movs r3, 0x2 + bl sub_80A1F98 + b _0809FBA2 +_0809FB96: + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x4 + movs r3, 0x3 + bl MenuZeroFillWindowRect +_0809FBA2: + ldr r1, _0809FBE0 + adds r0, r1, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r1, r0, 0 + adds r0, r5, 0 + bl GetMonNickname + adds r1, r0, 0 + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x13 + strb r0, [r1, 0x1] + movs r0, 0x3C + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0809FBE0 + movs r1, 0x1 + movs r2, 0xC + bl MenuPrint + adds r0, r5, 0 + bl sub_80A0958 +_0809FBD6: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FBE0: .4byte gStringVar1 + thumb_func_end sub_809FAC8 + + thumb_func_start sub_809FBE4 +sub_809FBE4: @ 809FBE4 + push {r4,lr} + movs r4, 0 +_0809FBE8: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1B + bls _0809FBE8 + movs r0, 0xB + movs r1, 0x4 + movs r2, 0x1D + movs r3, 0x12 + bl MenuZeroFillWindowRect + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809FBE4 + + thumb_func_start sub_809FC0C +sub_809FC0C: @ 809FC0C + push {lr} + ldr r0, _0809FC30 + movs r1, 0xB + movs r2, 0x6 + bl MenuPrint + movs r0, 0 + movs r1, 0x16 + movs r2, 0x4 + bl GetStringCenterAlignXOffset + movs r0, 0x2 + movs r1, 0x17 + movs r2, 0x4 + bl GetStringCenterAlignXOffset + pop {r0} + bx r0 + .align 2, 0 +_0809FC30: .4byte gOtherText_Type2 + thumb_func_end sub_809FC0C + + thumb_func_start sub_809FC34 +sub_809FC34: @ 809FC34 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + movs r4, 0 +_0809FC3C: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0809FC3C + movs r0, 0xB + movs r1, 0x9 + movs r2, 0x1C + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _0809FD1C + ldr r5, _0809FCD0 + adds r0, r5, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r5, r0, 0 + ldr r1, _0809FCD4 + bl StringCopy + adds r5, r0, 0 + ldr r4, _0809FCD8 + adds r1, r4, 0 + bl StringCopy + adds r5, r0, 0 + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x4E + strb r0, [r5, 0x2] + movs r0, 0xFF + strb r0, [r5, 0x3] + ldr r0, _0809FCD0 + movs r1, 0xB + movs r2, 0x4 + bl MenuPrint + movs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0xD + movs r2, 0xC1 + movs r3, 0x20 + bl sub_80A1EF8 + movs r0, 0x9 + movs r1, 0x78 + movs r2, 0x30 + movs r3, 0 + bl sub_80A198C + adds r0, r6, 0 + movs r1, 0x20 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, 0x5 + bhi _0809FCE0 + ldr r0, _0809FCDC + b _0809FCF2 + .align 2, 0 +_0809FCD0: .4byte gStringVar1 +_0809FCD4: .4byte gOtherText_OriginalTrainer +_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash +_0809FCDC: .4byte gOtherText_EggAbout +_0809FCE0: + cmp r0, 0xA + bhi _0809FCEC + ldr r0, _0809FCE8 + b _0809FCF2 + .align 2, 0 +_0809FCE8: .4byte gOtherText_EggSoon +_0809FCEC: + cmp r1, 0x28 + bhi _0809FD00 + ldr r0, _0809FCFC +_0809FCF2: + movs r1, 0xB + movs r2, 0x9 + bl MenuPrint + b _0809FD0A + .align 2, 0 +_0809FCFC: .4byte gOtherText_EggSomeTime +_0809FD00: + ldr r0, _0809FD18 + movs r1, 0xB + movs r2, 0x9 + bl MenuPrint +_0809FD0A: + adds r0, r6, 0 + movs r1, 0xB + movs r2, 0xE + bl sub_80A0708 + b _0809FE4C + .align 2, 0 +_0809FD18: .4byte gOtherText_EggLongTime +_0809FD1C: + ldr r4, _0809FD64 + adds r0, r6, 0 + movs r1, 0x7 + adds r2, r4, 0 + bl GetMonData + adds r0, r6, 0 + movs r1, 0x3 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + ldr r5, _0809FD68 + adds r0, r5, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r5, r0, 0 + ldr r1, _0809FD6C + bl StringCopy + adds r5, r0, 0 + adds r0, r6, 0 + movs r1, 0x31 + bl GetMonData + cmp r0, 0 + bne _0809FD70 + adds r0, r5, 0 + movs r1, 0x9 + b _0809FD74 + .align 2, 0 +_0809FD64: .4byte gStringVar2 +_0809FD68: .4byte gStringVar1 +_0809FD6C: .4byte gOtherText_OriginalTrainer +_0809FD70: + adds r0, r5, 0 + movs r1, 0xA +_0809FD74: + bl sub_80A1E58 + adds r5, r0, 0 + ldr r1, _0809FE54 + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x4E + strb r0, [r5, 0x2] + movs r0, 0xFF + strb r0, [r5, 0x3] + ldr r0, _0809FE58 + movs r1, 0xB + movs r2, 0x4 + bl MenuPrint + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonData + ldr r1, _0809FE5C + ands r1, r0 + movs r0, 0xC1 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + adds r0, r1, 0 + movs r1, 0xD + movs r2, 0x5 + movs r3, 0x2 + bl sub_80A1F98 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r2, _0809FE60 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r5, r1, r2 + ldrb r4, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x78 + movs r2, 0x30 + movs r3, 0 + bl sub_80A198C + ldrb r0, [r5, 0x7] + cmp r4, r0 + beq _0809FDF8 + ldrb r0, [r5, 0x7] + movs r1, 0xA0 + movs r2, 0x30 + movs r3, 0x1 + bl sub_80A198C +_0809FDF8: + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0x2E + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl GetAbilityBySpecies + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xD + muls r0, r4 + ldr r1, _0809FE64 + adds r0, r1 + movs r1, 0xD + movs r2, 0xB + movs r3, 0x9 + bl sub_80A1FF8 + ldr r0, _0809FE68 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0xB + movs r2, 0xB + bl MenuPrint + adds r0, r6, 0 + movs r1, 0xB + movs r2, 0xE + bl sub_80A0798 +_0809FE4C: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FE54: .4byte gStringVar2 +_0809FE58: .4byte gStringVar1 +_0809FE5C: .4byte 0x0000ffff +_0809FE60: .4byte gBaseStats +_0809FE64: .4byte gAbilityNames +_0809FE68: .4byte gAbilityDescriptions + thumb_func_end sub_809FC34 + + thumb_func_start sub_809FE6C +sub_809FE6C: @ 809FE6C + push {r4,lr} + adds r4, r0, 0 + bl sub_809FC0C + adds r0, r4, 0 + bl sub_809FC34 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809FE6C + + thumb_func_start sub_809FE80 +sub_809FE80: @ 809FE80 + push {lr} + movs r0, 0xE + movs r1, 0x4 + movs r2, 0x12 + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0x19 + movs r1, 0x4 + movs r2, 0x1E + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0xB + movs r1, 0x9 + movs r2, 0x1C + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0xB + movs r1, 0xE + movs r2, 0x1C + movs r3, 0x11 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_809FE80 + + thumb_func_start sub_809FEB8 +sub_809FEB8: @ 809FEB8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0809FF40 + movs r1, 0xD + movs r2, 0xB + movs r3, 0xE + bl sub_80A1FF8 + ldr r0, _0809FF44 + movs r1, 0xD + movs r2, 0xB + movs r3, 0x10 + bl sub_80A1FF8 + ldr r0, _0809FF48 + movs r1, 0x15 + movs r2, 0x10 + bl MenuPrint + ldr r0, _0809FF4C + movs r4, 0x2A + str r4, [sp] + movs r1, 0xD + movs r2, 0xB + movs r3, 0x7 + bl sub_80A1F48 + ldr r0, _0809FF50 + str r4, [sp] + movs r1, 0xD + movs r2, 0xB + movs r3, 0x9 + bl sub_80A1F48 + ldr r0, _0809FF54 + str r4, [sp] + movs r1, 0xD + movs r2, 0xB + movs r3, 0xB + bl sub_80A1F48 + ldr r0, _0809FF58 + movs r4, 0x24 + str r4, [sp] + movs r1, 0xD + movs r2, 0x16 + movs r3, 0x7 + bl sub_80A1F48 + ldr r0, _0809FF5C + str r4, [sp] + movs r1, 0xD + movs r2, 0x16 + movs r3, 0x9 + bl sub_80A1F48 + ldr r0, _0809FF60 + str r4, [sp] + movs r1, 0xD + movs r2, 0x16 + movs r3, 0xB + bl sub_80A1F48 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809FF40: .4byte gOtherText_ExpPoints +_0809FF44: .4byte gOtherText_NextLv +_0809FF48: .4byte gOtherText_Terminator18 +_0809FF4C: .4byte gOtherText_HP +_0809FF50: .4byte gOtherText_Attack +_0809FF54: .4byte gOtherText_Defense +_0809FF58: .4byte gOtherText_SpAtk +_0809FF5C: .4byte gOtherText_SpDef +_0809FF60: .4byte gOtherText_Speed + thumb_func_end sub_809FEB8 + + thumb_func_start sub_809FF64 +sub_809FF64: @ 809FF64 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_0809FF6A: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0809FF6A + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + movs r2, 0x4 + bl sub_80A0BF4 + adds r0, r5, 0 + bl sub_80A0B88 + ldr r4, _080A008C + adds r0, r5, 0 + movs r1, 0x19 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1D + movs r2, 0xE + bl sub_8072B4C + adds r0, r5, 0 + movs r1, 0x17 + movs r2, 0x10 + bl sub_80A0C80 + adds r0, r5, 0 + movs r1, 0x3B + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x9 + movs r3, 0x32 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3C + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0xB + movs r3, 0x32 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3E + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1B + movs r2, 0x7 + movs r3, 0x12 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3F + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1B + movs r2, 0x9 + movs r3, 0x12 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3D + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1B + movs r2, 0xB + movs r3, 0x12 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x18 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + movs r0, 0xBA + strb r0, [r4] + adds r4, 0x1 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x30 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A008C + movs r1, 0x7E + movs r2, 0x38 + movs r3, 0x1 + bl sub_80729D8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A008C: .4byte gStringVar1 + thumb_func_end sub_809FF64 + + thumb_func_start sub_80A0090 +sub_80A0090: @ 80A0090 + push {r4,lr} + adds r4, r0, 0 + bl sub_809FEB8 + adds r0, r4, 0 + bl sub_809FF64 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A0090 + + thumb_func_start sub_80A00A4 +sub_80A00A4: @ 80A00A4 + push {lr} + movs r0, 0xB + movs r1, 0x4 + movs r2, 0x13 + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0x10 + movs r1, 0x7 + movs r2, 0x15 + movs r3, 0x8 + bl MenuZeroFillWindowRect + movs r0, 0x11 + movs r1, 0x9 + movs r2, 0x15 + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0x1B + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0x16 + movs r1, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuZeroFillWindowRect + movs r0, 0x17 + movs r1, 0x10 + movs r2, 0x1C + movs r3, 0x11 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80A00A4 + + thumb_func_start sub_80A00F4 +sub_80A00F4: @ 80A00F4 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, _080A012C + adds r0, r2, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + bne _080A010A + cmp r1, 0x4 + beq _080A0150 +_080A010A: + ldrb r0, [r2, 0xB] + cmp r0, 0x2 + bne _080A0138 + ldr r0, _080A0130 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0xF + bl sub_80A1FF8 + ldr r0, _080A0134 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x11 + bl sub_80A1FF8 + b _080A0150 + .align 2, 0 +_080A012C: .4byte 0x02018000 +_080A0130: .4byte gOtherText_Power2 +_080A0134: .4byte gOtherText_Accuracy2 +_080A0138: + ldr r0, _080A0154 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0xF + bl sub_80A1FF8 + ldr r0, _080A0158 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x11 + bl sub_80A1FF8 +_080A0150: + pop {r0} + bx r0 + .align 2, 0 +_080A0154: .4byte gOtherText_Appeal2 +_080A0158: .4byte gOtherText_Jam2 + thumb_func_end sub_80A00F4 + + thumb_func_start sub_80A015C +sub_80A015C: @ 80A015C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + movs r7, 0 +_080A0168: + mov r0, r8 + adds r1, r7, 0 + bl sub_809F760 + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r8 + adds r1, r7, 0 + bl sub_809F798 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r6, 0 + bne _080A01B8 + adds r0, r7, 0 + movs r1, 0x1 + bl sub_80A1918 + lsls r4, r7, 25 + movs r0, 0x80 + lsls r0, 19 + adds r4, r0 + lsrs r4, 24 + ldr r0, _080A01B0 + movs r1, 0xD + movs r2, 0xF + adds r3, r4, 0 + bl sub_80A1FF8 + ldr r0, _080A01B4 + movs r1, 0x1A + adds r2, r4, 0 + bl MenuPrint + b _080A0276 + .align 2, 0 +_080A01B0: .4byte gOtherText_OneDash +_080A01B4: .4byte gOtherText_TwoDashes +_080A01B8: + ldr r0, _080A01E0 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A01E8 + ldr r1, _080A01E4 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r4, r7, 1 + adds r2, r4, 0x4 + lsls r2, 27 + lsrs r2, 24 + movs r1, 0x57 + adds r3, r7, 0 + bl sub_80A198C + b _080A020C + .align 2, 0 +_080A01E0: .4byte 0x02018000 +_080A01E4: .4byte gBattleMoves +_080A01E8: + ldr r1, _080A0290 + lsls r0, r6, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 5 + movs r1, 0x90 + lsls r1, 21 + adds r0, r1 + lsrs r0, 24 + lsls r4, r7, 1 + adds r2, r4, 0x4 + lsls r2, 27 + lsrs r2, 24 + movs r1, 0x57 + adds r3, r7, 0 + bl sub_80A198C +_080A020C: + movs r0, 0xD + muls r0, r6 + ldr r1, _080A0294 + adds r0, r1 + adds r5, r4, 0x4 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0xD + movs r2, 0xF + adds r3, r5, 0 + bl sub_80A1FF8 + movs r0, 0x1 + movs r1, 0x18 + adds r2, r5, 0 + bl GetStringCenterAlignXOffset + mov r0, r8 + movs r1, 0x15 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + adds r2, r7, 0 + bl CalculatePPWithBonus + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A0298 + adds r0, r1, 0 + mov r1, r9 + movs r2, 0xE + movs r3, 0x1 + bl sub_8072C14 + adds r1, r0, 0 + movs r0, 0xBA + strb r0, [r1] + adds r1, 0x1 + adds r0, r1, 0 + adds r1, r4, 0 + movs r2, 0x20 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0298 + movs r1, 0x19 + adds r2, r5, 0 + bl MenuPrint +_080A0276: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bhi _080A0282 + b _080A0168 +_080A0282: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0290: .4byte gContestMoves +_080A0294: .4byte gMoveNames +_080A0298: .4byte gStringVar1 + thumb_func_end sub_80A015C + + thumb_func_start sub_80A029C +sub_80A029C: @ 80A029C + push {r4,r5,lr} + ldr r1, _080A02B8 + adds r4, r1, 0 + adds r4, 0x7C + ldrh r0, [r4] + cmp r0, 0 + bne _080A02C0 + ldr r0, _080A02BC + movs r1, 0xD + movs r2, 0xF + movs r3, 0xC + bl sub_80A1FF8 + b _080A037E + .align 2, 0 +_080A02B8: .4byte 0x02018000 +_080A02BC: .4byte gOtherText_CancelNoTerminator +_080A02C0: + ldrh r5, [r4] + ldrb r0, [r1, 0xB] + cmp r0, 0x2 + bne _080A02E4 + ldr r1, _080A02E0 + lsls r4, r5, 1 + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + movs r1, 0x57 + movs r2, 0x60 + movs r3, 0x4 + bl sub_80A198C + b _080A0304 + .align 2, 0 +_080A02E0: .4byte gBattleMoves +_080A02E4: + ldr r1, _080A0320 + lsls r0, r5, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 5 + movs r1, 0x90 + lsls r1, 21 + adds r0, r1 + lsrs r0, 24 + movs r1, 0x57 + movs r2, 0x60 + movs r3, 0x4 + bl sub_80A198C + lsls r4, r5, 1 +_080A0304: + ldr r0, _080A0324 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A032C + movs r0, 0xD + muls r0, r5 + ldr r1, _080A0328 + adds r0, r1 + movs r1, 0xA + movs r2, 0xF + movs r3, 0xC + bl sub_80A1FF8 + b _080A033E + .align 2, 0 +_080A0320: .4byte gContestMoves +_080A0324: .4byte 0x02018000 +_080A0328: .4byte gMoveNames +_080A032C: + movs r0, 0xD + muls r0, r5 + ldr r1, _080A0384 + adds r0, r1 + movs r1, 0x9 + movs r2, 0xF + movs r3, 0xC + bl sub_80A1FF8 +_080A033E: + movs r0, 0x1 + movs r1, 0x18 + movs r2, 0xC + bl GetStringCenterAlignXOffset + ldr r2, _080A0388 + ldr r1, _080A038C + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x4] + adds r0, r2, 0 + adds r1, r4, 0 + movs r2, 0xE + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + adds r2, 0x1 + adds r0, r2, 0 + adds r1, r4, 0 + movs r2, 0x20 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0388 + movs r1, 0x19 + movs r2, 0xC + bl MenuPrint +_080A037E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0384: .4byte gMoveNames +_080A0388: .4byte gStringVar1 +_080A038C: .4byte gBattleMoves + thumb_func_end sub_80A029C + + thumb_func_start sub_80A0390 +sub_80A0390: @ 80A0390 + push {r4,lr} + movs r4, 0 +_080A0394: + lsls r3, r4, 1 + adds r1, r3, 0x4 + lsls r1, 24 + lsrs r1, 24 + adds r3, 0x5 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0xF + movs r2, 0x1C + bl MenuZeroFillWindowRect + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080A0394 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A0390 + + thumb_func_start sub_80A03BC +sub_80A03BC: @ 80A03BC + push {lr} + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x4 + beq _080A03D0 + bl sub_809F760 + lsls r0, 16 + lsrs r1, r0, 16 + b _080A03E0 +_080A03D0: + ldr r0, _080A03E8 + adds r2, r0, 0 + adds r2, 0x7C + ldrh r0, [r2] + ldr r1, _080A03EC + cmp r0, 0 + beq _080A03E0 + adds r1, r0, 0 +_080A03E0: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A03E8: .4byte 0x02018000 +_080A03EC: .4byte 0x0000ffff + thumb_func_end sub_80A03BC + + thumb_func_start sub_80A03F0 +sub_80A03F0: @ 80A03F0 + push {lr} + ldrb r1, [r1] + bl sub_80A03BC + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080A0414 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A041C + adds r0, r1, 0 + bl sub_80A04CC + ldr r0, _080A0418 + bl sub_80A057C + b _080A0422 + .align 2, 0 +_080A0414: .4byte 0x02018000 +_080A0418: .4byte 0x0000ffff +_080A041C: + adds r0, r1, 0 + bl sub_80A057C +_080A0422: + pop {r0} + bx r0 + thumb_func_end sub_80A03F0 + + thumb_func_start sub_80A0428 +sub_80A0428: @ 80A0428 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldrb r1, [r6] + bl sub_80A03BC + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xB + movs r1, 0xF + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + ldr r0, _080A0454 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A0458 + adds r0, r4, 0 + bl sub_80A046C + b _080A045E + .align 2, 0 +_080A0454: .4byte 0x02018000 +_080A0458: + adds r0, r4, 0 + bl sub_80A0498 +_080A045E: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80A03F0 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A0428 + + thumb_func_start sub_80A046C +sub_80A046C: @ 80A046C + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080A0490 + cmp r1, r0 + beq _080A048A + ldr r0, _080A0494 + subs r1, 0x1 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r1, 0xB + movs r2, 0xF + bl MenuPrint +_080A048A: + pop {r0} + bx r0 + .align 2, 0 +_080A0490: .4byte 0x0000ffff +_080A0494: .4byte gMoveDescriptions + thumb_func_end sub_80A046C + + thumb_func_start sub_80A0498 +sub_80A0498: @ 80A0498 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _080A04C0 + cmp r3, r0 + beq _080A04BC + ldr r2, _080A04C4 + ldr r1, _080A04C8 + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0xB + movs r2, 0xF + bl MenuPrint +_080A04BC: + pop {r0} + bx r0 + .align 2, 0 +_080A04C0: .4byte 0x0000ffff +_080A04C4: .4byte gUnknown_083CADD4 +_080A04C8: .4byte gContestMoves + thumb_func_end sub_80A0498 + + thumb_func_start sub_80A04CC +sub_80A04CC: @ 80A04CC + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080A0504 + cmp r4, r0 + beq _080A0572 + ldr r2, _080A0508 + lsls r1, r4, 1 + adds r0, r1, r4 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x1] + adds r5, r1, 0 + cmp r0, 0x1 + bhi _080A0514 + ldr r0, _080A050C + ldr r1, _080A0510 + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C74 + ldr r0, _080A050C + movs r1, 0x7 + movs r2, 0xF + bl MenuPrint + b _080A052A + .align 2, 0 +_080A0504: .4byte 0x0000ffff +_080A0508: .4byte gBattleMoves +_080A050C: .4byte gStringVar1 +_080A0510: .4byte gOtherText_ThreeDashes2 +_080A0514: + ldr r0, _080A0550 + ldrb r1, [r2, 0x1] + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0550 + movs r1, 0x7 + movs r2, 0xF + bl MenuPrint +_080A052A: + ldr r0, _080A0554 + adds r1, r5, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x3] + cmp r0, 0 + bne _080A055C + ldr r0, _080A0550 + ldr r1, _080A0558 + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C74 + ldr r0, _080A0550 + movs r1, 0x7 + movs r2, 0x11 + bl MenuPrint + b _080A0572 + .align 2, 0 +_080A0550: .4byte gStringVar1 +_080A0554: .4byte gBattleMoves +_080A0558: .4byte gOtherText_ThreeDashes2 +_080A055C: + ldr r0, _080A0578 + ldrb r1, [r1, 0x3] + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0578 + movs r1, 0x7 + movs r2, 0x11 + bl MenuPrint +_080A0572: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0578: .4byte gStringVar1 + thumb_func_end sub_80A04CC + + thumb_func_start sub_80A057C +sub_80A057C: @ 80A057C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080A0648 + mov r8, r0 + ldr r0, _080A064C + cmp r5, r0 + beq _080A063A + ldr r1, _080A0650 + ldr r2, _080A0654 + lsls r3, r5, 3 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + mov r10, r2 + mov r9, r3 + cmp r4, 0xFF + beq _080A05B8 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 +_080A05B8: + movs r2, 0 + movs r7, 0x3 + movs r6, 0xF3 + lsls r6, 2 +_080A05C0: + ldr r3, _080A0658 + cmp r4, 0xFF + beq _080A05CC + cmp r2, r4 + bcs _080A05CC + adds r3, 0x1 +_080A05CC: + lsrs r0, r2, 2 + lsls r0, 5 + adds r1, r2, 0 + ands r1, r7 + adds r1, r0 + lsls r1, 1 + add r1, r8 + adds r1, r6 + strh r3, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080A05C0 + ldr r0, _080A064C + cmp r5, r0 + beq _080A063A + mov r0, r9 + add r0, r10 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _080A0650 + adds r0, r1 + ldrb r4, [r0, 0x2] + cmp r4, 0xFF + beq _080A060C + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 +_080A060C: + movs r2, 0 + movs r6, 0x3 + ldr r5, _080A065C +_080A0612: + ldr r3, _080A0660 + cmp r4, 0xFF + beq _080A061E + cmp r2, r4 + bcs _080A061E + subs r3, 0x1 +_080A061E: + lsrs r0, r2, 2 + lsls r0, 5 + adds r1, r2, 0 + ands r1, r6 + adds r1, r0 + lsls r1, 1 + add r1, r8 + adds r1, r5 + strh r3, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080A0612 +_080A063A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0648: .4byte 0x06006800 +_080A064C: .4byte 0x0000ffff +_080A0650: .4byte gContestEffects +_080A0654: .4byte gContestMoves +_080A0658: .4byte 0x00001039 +_080A065C: .4byte 0x0000044c +_080A0660: .4byte 0x0000103d + thumb_func_end sub_80A057C + + thumb_func_start sub_80A0664 +sub_80A0664: @ 80A0664 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080A06A0 + ldr r1, [r0] + ldr r0, _080A06A4 + cmp r1, r0 + bne _080A06B0 + bl GetMultiplayerId + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A06A8 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldrh r5, [r0] + ldr r4, _080A06AC + adds r2, 0x8 + adds r1, r2 + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + bl SkipExtCtrlCodes + b _080A06C2 + .align 2, 0 +_080A06A0: .4byte 0x02018000 +_080A06A4: .4byte gEnemyParty +_080A06A8: .4byte gLinkPlayers +_080A06AC: .4byte gStringVar1 +_080A06B0: + bl sub_80BFB94 + adds r5, r0, 0 + ldr r0, _080A06F0 + ands r5, r0 + ldr r0, _080A06F4 + ldr r1, _080A06F8 + bl StringCopy +_080A06C2: + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonData + ldr r1, _080A06F0 + ands r1, r0 + cmp r5, r1 + bne _080A06EA + ldr r4, _080A06FC + adds r0, r6, 0 + movs r1, 0x7 + adds r2, r4, 0 + bl GetMonData + ldr r0, _080A06F4 + adds r1, r4, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _080A0700 +_080A06EA: + movs r0, 0 + b _080A0702 + .align 2, 0 +_080A06F0: .4byte 0x0000ffff +_080A06F4: .4byte gStringVar1 +_080A06F8: .4byte gSaveBlock2 +_080A06FC: .4byte gStringVar2 +_080A0700: + movs r0, 0x1 +_080A0702: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A0664 + + thumb_func_start sub_80A0708 +sub_80A0708: @ 80A0708 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + mov r9, r5 + lsls r2, 24 + lsrs r6, r2, 24 + mov r8, r6 + movs r1, 0x25 + bl GetMonData + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x2 + bls _080A073C + ldr r0, _080A0738 + b _080A076E + .align 2, 0 +_080A0738: .4byte gOtherText_EggObtainedInTrade +_080A073C: + adds r0, r4, 0 + movs r1, 0x23 + bl GetMonData + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0xFF + bne _080A0754 + ldr r0, _080A0750 + b _080A076E + .align 2, 0 +_080A0750: .4byte gOtherText_EggNicePlace +_080A0754: + adds r0, r4, 0 + bl sub_80A0664 + lsls r0, 24 + cmp r0, 0 + bne _080A0768 + ldr r0, _080A0764 + b _080A076E + .align 2, 0 +_080A0764: .4byte gOtherText_EggObtainedInTrade +_080A0768: + cmp r7, 0xFD + bne _080A077C + ldr r0, _080A0778 +_080A076E: + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + b _080A0786 + .align 2, 0 +_080A0778: .4byte gOtherText_EggHotSprings +_080A077C: + ldr r0, _080A0794 + mov r1, r9 + mov r2, r8 + bl MenuPrint +_080A0786: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0794: .4byte gOtherText_EggDayCare + thumb_func_end sub_80A0708 + + thumb_func_start sub_80A0798 +sub_80A0798: @ 80A0798 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldr r5, _080A0838 + bl GetNature + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A083C + lsls r0, r4, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r5, 0 + movs r2, 0xE + bl sub_80A1E9C + adds r5, r0, 0 + cmp r4, 0x5 + beq _080A07DA + cmp r4, 0x15 + beq _080A07DA + ldr r1, _080A0840 + bl StringCopy + adds r5, r0, 0 +_080A07DA: + ldr r1, _080A0844 + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + adds r0, r7, 0 + bl sub_80A0664 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A0898 + adds r0, r7, 0 + movs r1, 0x23 + bl GetMonData + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + movs r1, 0x24 + bl GetMonData + cmp r0, 0 + bne _080A0850 + adds r0, r5, 0 + movs r1, 0x5 + bl sub_80A203C + adds r5, r0, 0 + movs r0, 0xFE + strb r0, [r5] + adds r5, 0x1 + ldr r4, _080A0848 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80FC02C + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0xE + bl sub_80A1E9C + adds r5, r0, 0 + ldr r1, _080A084C + bl StringCopy + b _080A0934 + .align 2, 0 +_080A0838: .4byte gStringVar4 +_080A083C: .4byte gNatureNames +_080A0840: .4byte gOtherText_Terminator4 +_080A0844: .4byte gOtherText_Nature +_080A0848: .4byte gStringVar1 +_080A084C: .4byte gOtherText_Egg2 +_080A0850: + cmp r6, 0x57 + bhi _080A08E8 + adds r0, r7, 0 + movs r1, 0x24 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_80A203C + adds r5, r0, 0 + movs r0, 0xFE + strb r0, [r5] + adds r5, 0x1 + ldr r4, _080A0890 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80FC02C + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0xE + bl sub_80A1E9C + adds r5, r0, 0 + ldr r1, _080A0894 + bl StringCopy + b _080A0934 + .align 2, 0 +_080A0890: .4byte gStringVar1 +_080A0894: .4byte gOtherText_Met +_080A0898: + adds r0, r7, 0 + movs r1, 0x25 + bl GetMonData + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x2 + bhi _080A08E8 + adds r0, r7, 0 + movs r1, 0x23 + bl GetMonData + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xFF + bne _080A08E4 + adds r0, r7, 0 + movs r1, 0x24 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_80A203C + adds r5, r0, 0 + movs r0, 0xFE + strb r0, [r5] + adds r5, 0x1 + ldr r1, _080A08E0 + b _080A08F0 + .align 2, 0 +_080A08E0: .4byte gOtherText_FatefulEncounter +_080A08E4: + cmp r6, 0x57 + bls _080A08FC +_080A08E8: + movs r0, 0xFE + strb r0, [r5] + adds r5, 0x1 + ldr r1, _080A08F8 +_080A08F0: + adds r0, r5, 0 + bl StringCopy + b _080A0934 + .align 2, 0 +_080A08F8: .4byte gOtherText_ObtainedInTrade +_080A08FC: + adds r0, r7, 0 + movs r1, 0x24 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_80A203C + adds r5, r0, 0 + movs r0, 0xFE + strb r0, [r5] + adds r5, 0x1 + ldr r4, _080A094C + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80FC02C + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0xE + bl sub_80A1E9C + adds r5, r0, 0 + ldr r1, _080A0950 + bl StringCopy +_080A0934: + ldr r0, _080A0954 + mov r1, r9 + mov r2, r8 + bl MenuPrint + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A094C: .4byte gStringVar1 +_080A0950: .4byte gOtherText_Met2 +_080A0954: .4byte gStringVar4 + thumb_func_end sub_80A0798 + + thumb_func_start sub_80A0958 +sub_80A0958: @ 80A0958 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r8, r0 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r2, _080A0A24 + adds r0, r2, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + movs r6, 0xFC + strb r6, [r2] + movs r0, 0x11 + strb r0, [r2, 0x1] + movs r0, 0x7 + strb r0, [r2, 0x2] + movs r0, 0xBA + strb r0, [r2, 0x3] + adds r2, 0x4 + movs r0, 0xB + adds r1, r4, 0 + muls r1, r0 + ldr r0, _080A0A28 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r6, [r2] + movs r0, 0x13 + mov r10, r0 + strb r0, [r2, 0x1] + movs r0, 0x50 + strb r0, [r2, 0x2] + movs r0, 0xFF + mov r9, r0 + strb r0, [r2, 0x3] + ldr r5, _080A0A24 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + bl MenuPrint + movs r0, 0x3 + movs r1, 0x10 + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + mov r0, r8 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + movs r0, 0x34 + strb r0, [r2] + adds r2, 0x1 + adds r0, r2, 0 + adds r1, r4, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + strb r6, [r2] + mov r0, r10 + strb r0, [r2, 0x1] + movs r0, 0x20 + strb r0, [r2, 0x2] + mov r0, r9 + strb r0, [r2, 0x3] + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x10 + bl MenuPrint + mov r0, r8 + movs r1, 0x7 + movs r2, 0x10 + bl sub_80A0A2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0A24: .4byte gStringVar1 +_080A0A28: .4byte gSpeciesNames + thumb_func_end sub_80A0958 + + thumb_func_start sub_80A0A2C +sub_80A0A2C: @ 80A0A2C + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x20 + beq _080A0A84 + cmp r0, 0x1D + beq _080A0A84 + adds r0, r6, 0 + bl GetMonGender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080A0A6E + cmp r0, 0xFE + beq _080A0A78 + adds r3, r4, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl MenuZeroFillWindowRect + b _080A0A84 +_080A0A6E: + ldr r0, _080A0A74 + movs r1, 0xB + b _080A0A7C + .align 2, 0 +_080A0A74: .4byte gOtherText_MaleSymbol2 +_080A0A78: + ldr r0, _080A0A8C + movs r1, 0xC +_080A0A7C: + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80A1FF8 +_080A0A84: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv + thumb_func_end sub_80A0A2C + + thumb_func_start sub_80A0A90 +sub_80A0A90: @ 80A0A90 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x32 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x33 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x34 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x35 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x36 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x43 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x44 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x45 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x46 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x47 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x48 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x49 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4A + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4B + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4C + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4D + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4E + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A0A90 + + thumb_func_start sub_80A0B88 +sub_80A0B88: @ 80A0B88 + push {r4,r5,lr} + bl sub_80A0A90 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A0BA8 + ldr r0, _080A0BA0 + ldr r1, _080A0BA4 + bl StringCopy + b _080A0BD8 + .align 2, 0 +_080A0BA0: .4byte gStringVar1 +_080A0BA4: .4byte gOtherText_None +_080A0BA8: + ldr r4, _080A0BE8 + ldr r1, _080A0BEC + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + bl StringLength + lsls r0, 24 + lsrs r0, 24 + subs r4, 0x2 + adds r0, r4 + movs r1, 0xFC + strb r1, [r0] + movs r1, 0x14 + strb r1, [r0, 0x1] + movs r1, 0x6 + strb r1, [r0, 0x2] + adds r0, 0x3 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN +_080A0BD8: + ldr r0, _080A0BF0 + movs r1, 0x15 + movs r2, 0x4 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0BE8: .4byte gStringVar1 +_080A0BEC: .4byte gOtherText_Ribbons00 +_080A0BF0: .4byte gUnknown_083C15AE + thumb_func_end sub_80A0B88 + + thumb_func_start sub_80A0BF4 +sub_80A0BF4: @ 80A0BF4 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + cmp r5, 0xAF + bne _080A0C48 + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A0C48 + bl sub_806B528 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A0C48 + ldr r0, _080A0C40 + ldrb r0, [r0, 0x9] + cmp r0, 0x1 + beq _080A0C2E + cmp r0, 0x4 + beq _080A0C2E + cmp r0, 0x5 + bne _080A0C48 +_080A0C2E: + ldr r4, _080A0C44 + adds r0, r5, 0 + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + b _080A0C68 + .align 2, 0 +_080A0C40: .4byte 0x02018000 +_080A0C44: .4byte gStringVar1 +_080A0C48: + cmp r5, 0 + bne _080A0C60 + ldr r0, _080A0C58 + ldr r1, _080A0C5C + bl StringCopy + b _080A0C68 + .align 2, 0 +_080A0C58: .4byte gStringVar1 +_080A0C5C: .4byte gOtherText_None +_080A0C60: + ldr r1, _080A0C78 + adds r0, r5, 0 + bl itemid_copy_name +_080A0C68: + ldr r0, _080A0C7C + adds r1, r7, 0 + adds r2, r6, 0 + bl MenuPrint + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0C78: .4byte gStringVar1 +_080A0C7C: .4byte gUnknown_083C15B4 + thumb_func_end sub_80A0BF4 + + thumb_func_start sub_80A0C80 +sub_80A0C80: @ 80A0C80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + movs r0, 0 + mov r9, r0 + movs r6, 0 + movs r7, 0 + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + mov r8, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x63 + bhi _080A0D14 + ldr r3, _080A0D4C + adds r1, r5, 0x1 + lsls r1, 2 + ldr r2, _080A0D50 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r2, r0 + adds r1, r2 + adds r1, r3 + ldr r1, [r1] + mov r0, r8 + subs r0, r1, r0 + mov r9, r0 + lsls r0, r5, 2 + adds r0, r2 + adds r0, r3 + ldr r0, [r0] + subs r1, r0 + mov r2, r8 + subs r4, r2, r0 + lsls r0, r4, 6 + bl __udivsi3 + adds r6, r0, 0 + movs r7, 0 + adds r0, r7, 0 + orrs r0, r6 + cmp r0, 0 + bne _080A0D14 + cmp r4, 0 + beq _080A0D14 + movs r6, 0x1 + movs r7, 0 +_080A0D14: + ldr r4, _080A0D54 + adds r0, r4, 0 + mov r1, r9 + bl ConvertIntToDecimalString + mov r1, r10 + adds r1, 0x6 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp] + bl sub_8072B4C + ldr r0, _080A0D58 + mov r9, r0 + movs r2, 0 + mov r12, r2 + ldr r0, _080A0D5C + mov r8, r0 +_080A0D3A: + cmp r7, 0 + bgt _080A0D46 + cmp r7, 0 + bne _080A0D64 + cmp r6, 0x7 + bls _080A0D64 +_080A0D46: + ldr r1, _080A0D60 + b _080A0D96 + .align 2, 0 +_080A0D4C: .4byte gExperienceTables +_080A0D50: .4byte gBaseStats +_080A0D54: .4byte gStringVar1 +_080A0D58: .4byte 0x06004caa +_080A0D5C: .4byte 0x00002062 +_080A0D60: .4byte 0x0000206a +_080A0D64: + adds r5, r7, 0 + adds r4, r6, 0 + cmp r7, 0 + bge _080A0D74 + movs r4, 0x7 + movs r5, 0 + adds r4, r6 + adcs r5, r7 +_080A0D74: + lsls r3, r5, 29 + lsrs r2, r4, 3 + adds r0, r3, 0 + orrs r0, r2 + asrs r1, r5, 3 + lsrs r5, r0, 29 + lsls r4, r1, 3 + adds r3, r5, 0 + orrs r3, r4 + lsls r2, r0, 3 + adds r1, r7, 0 + adds r0, r6, 0 + subs r0, r2 + sbcs r1, r3 + add r0, r8 + lsls r0, 16 + lsrs r1, r0, 16 +_080A0D96: + mov r2, r12 + lsls r0, r2, 1 + add r0, r9 + strh r1, [r0] + movs r0, 0x8 + negs r0, r0 + asrs r1, r0, 31 + adds r6, r0 + adcs r7, r1 + cmp r7, 0 + bge _080A0DB0 + movs r6, 0 + movs r7, 0 +_080A0DB0: + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x7 + bls _080A0D3A + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A0C80 + + thumb_func_start sub_80A0DD0 +sub_80A0DD0: @ 80A0DD0 + push {r4,r5,lr} + ldr r2, _080A0E3C + movs r5, 0xFC + strb r5, [r2] + movs r0, 0x12 + strb r0, [r2, 0x1] + movs r0, 0x2 + strb r0, [r2, 0x2] + adds r2, 0x3 + adds r0, r2, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + ldr r1, _080A0E40 + ldr r4, _080A0E44 + adds r0, r4, 0 + adds r0, 0x7E + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r5, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x58 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080A0E3C + movs r1, 0 + movs r2, 0 + bl MenuPrint + adds r4, 0x7F + ldrb r0, [r4] + cmp r0, 0 + beq _080A0E48 + movs r0, 0x5 + movs r1, 0x17 + movs r2, 0 + bl GetStringCenterAlignXOffset + movs r0, 0x6 + movs r1, 0x18 + movs r2, 0 + bl GetStringCenterAlignXOffset + b _080A0E54 + .align 2, 0 +_080A0E3C: .4byte gStringVar1 +_080A0E40: .4byte gUnknown_083C1068 +_080A0E44: .4byte 0x02018000 +_080A0E48: + movs r0, 0x17 + movs r1, 0 + movs r2, 0x18 + movs r3, 0x1 + bl MenuZeroFillWindowRect +_080A0E54: + ldr r2, _080A0E98 + adds r0, r2, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + ldr r1, _080A0E9C + ldr r0, _080A0EA0 + adds r0, 0x7F + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x28 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080A0E98 + movs r1, 0x19 + movs r2, 0 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0E98: .4byte gStringVar1 +_080A0E9C: .4byte gUnknown_083C1068 +_080A0EA0: .4byte 0x02018000 + thumb_func_end sub_80A0DD0 + + thumb_func_start sub_80A0EA4 +sub_80A0EA4: @ 80A0EA4 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080A0ECC + ldr r6, _080A0ED0 + movs r1, 0 + bl sub_8040110 + lsls r0, 24 + cmp r0, 0 + bne _080A0ED4 + adds r0, r4, 0 + movs r1, 0 + bl sub_8040178 + lsls r0, 24 + cmp r0, 0 + beq _080A0ED4 + movs r0, 0x2C + b _080A0ED8 + .align 2, 0 +_080A0ECC: .4byte 0x0600e444 +_080A0ED0: .4byte 0x0600ec44 +_080A0ED4: + ldr r1, _080A0EE4 + adds r0, r1, 0 +_080A0ED8: + strh r0, [r5] + strh r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0EE4: .4byte 0x0000081a + thumb_func_end sub_80A0EA4 + + thumb_func_start sub_80A0EE8 +sub_80A0EE8: @ 80A0EE8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r3, 0 + ldr r6, _080A0F24 + adds r5, r6, 0 + ldr r1, _080A0F28 + mov r8, r1 + ldr r2, _080A0F2C + mov r10, r2 +_080A0F02: + adds r0, r5, 0 + adds r0, 0x75 + ldrb r0, [r0] + cmp r3, r0 + bcs _080A0F30 + lsls r1, r3, 1 + lsls r0, r3, 2 + add r0, sp + mov r4, r8 + strh r4, [r0] + adds r1, 0x1 + lsls r1, 1 + mov r7, sp + adds r0, r7, r1 + strh r4, [r0] + b _080A0FE2 + .align 2, 0 +_080A0F24: .4byte 0x02018000 +_080A0F28: .4byte 0x00004040 +_080A0F2C: .4byte 0x0000404a +_080A0F30: + movs r0, 0x76 + adds r0, r6 + mov r12, r0 + ldrb r1, [r0] + cmp r3, r1 + bls _080A0F52 + lsls r1, r3, 1 + lsls r0, r3, 2 + add r0, sp + mov r2, r10 + strh r2, [r0] + adds r1, 0x1 + lsls r1, 1 + mov r4, sp + adds r0, r4, r1 + strh r2, [r0] + b _080A0FE2 +_080A0F52: + ldrb r4, [r5, 0xB] + cmp r3, r4 + bcs _080A0F6E + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r7, sp + adds r2, r7, r0 + ldr r0, _080A0F88 + strh r0, [r2] + adds r1, 0x1 + lsls r1, 1 + add r1, sp + adds r0, 0x1 + strh r0, [r1] +_080A0F6E: + cmp r3, r4 + bne _080A0FA6 + mov r0, r12 + ldrb r0, [r0] + cmp r3, r0 + beq _080A0F90 + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r4, sp + adds r2, r4, r0 + ldr r0, _080A0F8C + b _080A0F9A + .align 2, 0 +_080A0F88: .4byte 0x00004046 +_080A0F8C: .4byte 0x00004041 +_080A0F90: + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r7, sp + adds r2, r7, r0 + ldr r0, _080A0FC4 +_080A0F9A: + strh r0, [r2] + adds r1, 0x1 + lsls r1, 1 + add r1, sp + adds r0, 0x1 + strh r0, [r1] +_080A0FA6: + ldrb r0, [r5, 0xB] + cmp r3, r0 + bls _080A0FE2 + adds r0, r6, 0 + adds r0, 0x76 + ldrb r0, [r0] + cmp r3, r0 + beq _080A0FCC + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r4, sp + adds r2, r4, r0 + ldr r0, _080A0FC8 + b _080A0FD6 + .align 2, 0 +_080A0FC4: .4byte 0x0000404b +_080A0FC8: .4byte 0x00004043 +_080A0FCC: + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r7, sp + adds r2, r7, r0 + ldr r0, _080A1034 +_080A0FD6: + strh r0, [r2] + adds r1, 0x1 + lsls r1, 1 + add r1, sp + adds r0, 0x1 + strh r0, [r1] +_080A0FE2: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080A0F02 + ldr r1, _080A1038 + ldr r0, _080A103C + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080A1040 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r3, 0 +_080A0FFE: + lsls r0, r3, 1 + mov r4, sp + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, 0x10 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x7 + bls _080A0FFE + ldr r1, _080A1044 + ldr r0, _080A103C + str r4, [r0] + str r1, [r0, 0x4] + ldr r1, _080A1040 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1034: .4byte 0x00004048 +_080A1038: .4byte 0x0600e016 +_080A103C: .4byte 0x040000d4 +_080A1040: .4byte 0x80000008 +_080A1044: .4byte 0x0600e056 + thumb_func_end sub_80A0EE8 + + thumb_func_start sub_80A1048 +sub_80A1048: @ 80A1048 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080A10A0 + adds r6, r0, r1 + ldrh r0, [r6] + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r6, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _080A106E + b _080A1224 +_080A106E: + movs r5, 0x2 + ldrsh r2, [r6, r5] + ldr r0, _080A10A4 + subs r0, r2 + lsls r0, 1 + ldr r1, _080A10A8 + adds r4, r0, r1 + ldr r5, _080A10AC + lsls r2, 1 + movs r0, 0x80 + lsls r0, 5 + adds r7, r1, 0 + cmp r2, r0 + bhi _080A10B4 + ldr r0, _080A10B0 + str r4, [r0] + str r5, [r0, 0x4] + lsrs r1, r2, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A10E0 + .align 2, 0 +_080A10A0: .4byte gUnknown_03004B28 +_080A10A4: .4byte 0x0000024a +_080A10A8: .4byte gUnknown_08E73508 +_080A10AC: .4byte 0x0600e480 +_080A10B0: .4byte 0x040000d4 +_080A10B4: + ldr r3, _080A110C + str r4, [r3] + str r5, [r3, 0x4] + ldr r0, _080A1110 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r4, r0 + adds r5, r0 + ldr r1, _080A1114 + adds r2, r1 + cmp r2, r0 + bhi _080A10B4 + str r4, [r3] + str r5, [r3, 0x4] + lsrs r0, r2, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] +_080A10E0: + movs r5, 0x2 + ldrsh r0, [r6, r5] + ldr r1, _080A1118 + subs r1, r0 + lsls r1, 1 + adds r3, r1, r7 + ldr r4, _080A111C + lsls r1, r0, 1 + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bhi _080A1120 + ldr r0, _080A110C + str r3, [r0] + str r4, [r0, 0x4] + lsrs r1, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A114C + .align 2, 0 +_080A110C: .4byte 0x040000d4 +_080A1110: .4byte 0x80000800 +_080A1114: .4byte 0xfffff000 +_080A1118: .4byte 0x0000026a +_080A111C: .4byte 0x0600e4c0 +_080A1120: + ldr r2, _080A1178 + str r3, [r2] + str r4, [r2, 0x4] + ldr r0, _080A117C + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r3, r0 + adds r4, r0 + ldr r5, _080A1180 + adds r1, r5 + cmp r1, r0 + bhi _080A1120 + str r3, [r2] + str r4, [r2, 0x4] + lsrs r0, r1, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] +_080A114C: + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldr r1, _080A1184 + subs r1, r0 + lsls r1, 1 + adds r3, r1, r7 + ldr r4, _080A1188 + lsls r1, r0, 1 + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bhi _080A118C + ldr r0, _080A1178 + str r3, [r0] + str r4, [r0, 0x4] + lsrs r1, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A11B8 + .align 2, 0 +_080A1178: .4byte 0x040000d4 +_080A117C: .4byte 0x80000800 +_080A1180: .4byte 0xfffff000 +_080A1184: .4byte 0x0000024a +_080A1188: .4byte 0x0600ec80 +_080A118C: + ldr r2, _080A11E4 + str r3, [r2] + str r4, [r2, 0x4] + ldr r0, _080A11E8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r3, r0 + adds r4, r0 + ldr r5, _080A11EC + adds r1, r5 + cmp r1, r0 + bhi _080A118C + str r3, [r2] + str r4, [r2, 0x4] + lsrs r0, r1, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] +_080A11B8: + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldr r1, _080A11F0 + subs r1, r0 + lsls r1, 1 + adds r3, r1, r7 + ldr r4, _080A11F4 + lsls r1, r0, 1 + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bhi _080A11F8 + ldr r0, _080A11E4 + str r3, [r0] + str r4, [r0, 0x4] + lsrs r1, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A1224 + .align 2, 0 +_080A11E4: .4byte 0x040000d4 +_080A11E8: .4byte 0x80000800 +_080A11EC: .4byte 0xfffff000 +_080A11F0: .4byte 0x0000026a +_080A11F4: .4byte 0x0600ecc0 +_080A11F8: + ldr r2, _080A12B0 + str r3, [r2] + str r4, [r2, 0x4] + ldr r0, _080A12B4 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r3, r0 + adds r4, r0 + ldr r5, _080A12B8 + adds r1, r5 + cmp r1, r0 + bhi _080A11F8 + str r3, [r2] + str r4, [r2, 0x4] + lsrs r0, r1, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] +_080A1224: + ldrb r4, [r6, 0x2] + ldrh r7, [r6, 0x2] + ldrh r0, [r6] + mov r12, r0 + cmp r4, 0x9 + bhi _080A1272 + adds r3, r6, 0x4 + ldr r2, _080A12B0 + ldr r5, _080A12BC +_080A1236: + lsls r1, r4, 1 + ldr r6, _080A12C0 + adds r0, r1, r6 + str r3, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r6, 0x40 + adds r0, r1, r6 + str r3, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r6, _080A12C4 + adds r0, r1, r6 + str r3, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080A12C8 + adds r1, r0 + str r3, [r2] + str r1, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _080A1236 +_080A1272: + mov r1, r12 + lsls r0, r1, 16 + cmp r0, 0 + beq _080A1286 + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0 + ble _080A1286 + cmp r0, 0x9 + ble _080A12A4 +_080A1286: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _080A129A + ldr r0, _080A12CC + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x12 + bl sub_80A1FF8 +_080A129A: + bl sub_80A1D18 + mov r0, r8 + bl DestroyTask +_080A12A4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A12B0: .4byte 0x040000d4 +_080A12B4: .4byte 0x80000800 +_080A12B8: .4byte 0xfffff000 +_080A12BC: .4byte 0x80000001 +_080A12C0: .4byte 0x0600e480 +_080A12C4: .4byte 0x0600ec80 +_080A12C8: .4byte 0x0600ecc0 +_080A12CC: .4byte gOtherText_Status + thumb_func_end sub_80A1048 + + thumb_func_start sub_80A12D0 +sub_80A12D0: @ 80A12D0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x12 + movs r2, 0x5 + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x1D + bl sub_80A18E4 + ldr r0, _080A1310 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A1314 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + cmp r4, 0 + bge _080A1318 + movs r0, 0xA + b _080A131A + .align 2, 0 +_080A1310: .4byte sub_80A1048 +_080A1314: .4byte gTasks +_080A1318: + movs r0, 0 +_080A131A: + strh r0, [r1, 0xA] + ldr r0, _080A1330 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0xC] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1330: .4byte gTasks + thumb_func_end sub_80A12D0 + + thumb_func_start sub_80A1334 +sub_80A1334: @ 80A1334 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r0, 2 + add r0, r10 + lsls r0, 3 + ldr r1, _080A13E4 + adds r7, r0, r1 + ldrh r0, [r7] + ldrh r1, [r7, 0x2] + adds r0, r1 + strh r0, [r7, 0x2] + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0 + cmp r1, 0 + blt _080A136A + movs r0, 0xA + cmp r1, 0xA + bgt _080A136A + ldrh r0, [r7, 0x2] +_080A136A: + lsls r0, 16 + asrs r2, r0, 16 + mov r9, r0 + cmp r2, 0 + ble _080A13A6 + movs r0, 0xA + subs r0, r2 + lsls r0, 1 + ldr r1, _080A13E8 + adds r4, r0, r1 + movs r5, 0 + adds r6, r2, 0 + ldr r0, _080A13EC + mov r8, r0 +_080A1386: + adds r0, r5, 0 + adds r0, 0xD + lsls r0, 6 + ldr r1, _080A13F0 + adds r0, r1 + adds r1, r4, 0 + mov r2, r8 + ands r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A1386 +_080A13A6: + mov r1, r9 + asrs r2, r1, 16 + cmp r2, 0x9 + bgt _080A13F4 + ldr r4, _080A13E8 + movs r5, 0 + mov r8, sp + movs r0, 0xA + subs r6, r0, r2 + ldr r0, _080A13EC + ands r6, r0 + movs r0, 0x80 + lsls r0, 17 + mov r9, r0 +_080A13C2: + ldrh r0, [r7, 0x4] + mov r1, r8 + strh r0, [r1] + mov r0, sp + adds r1, r4, 0 + mov r2, r9 + orrs r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A13C2 + b _080A1400 + .align 2, 0 +_080A13E4: .4byte gUnknown_03004B28 +_080A13E8: .4byte 0x06005b40 +_080A13EC: .4byte 0x001fffff +_080A13F0: .4byte gUnknown_08E73E88 +_080A13F4: + movs r0, 0 + movs r1, 0x13 + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A1400: + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080A1410 + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0 + bge _080A144A +_080A1410: + ldr r4, _080A1480 + ldrb r0, [r4, 0xB] + cmp r0, 0x2 + bne _080A1444 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A0958 + adds r0, r4, 0 + bl sub_80A1CD8 + lsls r0, 24 + cmp r0, 0 + beq _080A1444 + ldr r0, _080A1484 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x12 + bl sub_80A1FF8 +_080A1444: + mov r0, r10 + bl DestroyTask +_080A144A: + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0x9 + ble _080A1470 + ldr r4, _080A1480 + ldrb r0, [r4, 0xB] + cmp r0, 0x2 + bne _080A1460 + ldrb r0, [r7, 0x6] + bl sub_80A00F4 +_080A1460: + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r7, 0x6 + bl sub_80A0428 + mov r0, r10 + bl DestroyTask +_080A1470: + 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 +_080A1480: .4byte 0x02018000 +_080A1484: .4byte gOtherText_Status + thumb_func_end sub_80A1334 + + thumb_func_start sub_80A1488 +sub_80A1488: @ 80A1488 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080A14DC + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A14A6 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A14A6: + ldr r5, _080A14E0 + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + bne _080A14C2 + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 +_080A14C2: + ldr r1, _080A14E4 + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r1 + lsls r0, r6, 24 + asrs r0, 24 + strh r0, [r3, 0x8] + cmp r0, 0 + bge _080A14E8 + movs r0, 0xA + b _080A14EA + .align 2, 0 +_080A14DC: .4byte 0x02018000 +_080A14E0: .4byte sub_80A1334 +_080A14E4: .4byte gTasks +_080A14E8: + movs r0, 0 +_080A14EA: + strh r0, [r3, 0xA] + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + strh r7, [r0, 0xE] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A1488 + + thumb_func_start sub_80A1500 +sub_80A1500: @ 80A1500 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r0, 2 + add r0, r10 + lsls r0, 3 + ldr r1, _080A15B0 + adds r7, r0, r1 + ldrh r0, [r7] + ldrh r1, [r7, 0x2] + adds r0, r1 + strh r0, [r7, 0x2] + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0 + cmp r1, 0 + blt _080A1536 + movs r0, 0xA + cmp r1, 0xA + bgt _080A1536 + ldrh r0, [r7, 0x2] +_080A1536: + lsls r0, 16 + asrs r2, r0, 16 + mov r9, r0 + cmp r2, 0 + ble _080A1572 + movs r0, 0xA + subs r0, r2 + lsls r0, 1 + ldr r1, _080A15B4 + adds r4, r0, r1 + movs r5, 0 + adds r6, r2, 0 + ldr r0, _080A15B8 + mov r8, r0 +_080A1552: + adds r0, r5, 0 + adds r0, 0xD + lsls r0, 6 + ldr r1, _080A15BC + adds r0, r1 + adds r1, r4, 0 + mov r2, r8 + ands r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A1552 +_080A1572: + mov r1, r9 + asrs r2, r1, 16 + cmp r2, 0x9 + bgt _080A15C0 + ldr r4, _080A15B4 + movs r5, 0 + mov r8, sp + movs r0, 0xA + subs r6, r0, r2 + ldr r0, _080A15B8 + ands r6, r0 + movs r0, 0x80 + lsls r0, 17 + mov r9, r0 +_080A158E: + ldrh r0, [r7, 0x4] + mov r1, r8 + strh r0, [r1] + mov r0, sp + adds r1, r4, 0 + mov r2, r9 + orrs r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A158E + b _080A15CC + .align 2, 0 +_080A15B0: .4byte gUnknown_03004B28 +_080A15B4: .4byte 0x06006b40 +_080A15B8: .4byte 0x001fffff +_080A15BC: .4byte gUnknown_08E74688 +_080A15C0: + movs r0, 0 + movs r1, 0x13 + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A15CC: + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080A15DC + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0 + bge _080A1616 +_080A15DC: + ldr r4, _080A164C + ldrb r0, [r4, 0xB] + cmp r0, 0x3 + bne _080A1610 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A0958 + adds r0, r4, 0 + bl sub_80A1CD8 + lsls r0, 24 + cmp r0, 0 + beq _080A1610 + ldr r0, _080A1650 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x12 + bl sub_80A1FF8 +_080A1610: + mov r0, r10 + bl DestroyTask +_080A1616: + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0x9 + ble _080A163C + ldr r4, _080A164C + ldrb r0, [r4, 0xB] + cmp r0, 0x3 + bne _080A162C + ldrb r0, [r7, 0x6] + bl sub_80A00F4 +_080A162C: + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r7, 0x6 + bl sub_80A0428 + mov r0, r10 + bl DestroyTask +_080A163C: + 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 +_080A164C: .4byte 0x02018000 +_080A1650: .4byte gOtherText_Status + thumb_func_end sub_80A1500 + + thumb_func_start sub_80A1654 +sub_80A1654: @ 80A1654 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080A16A8 + ldrb r0, [r0, 0xB] + cmp r0, 0x3 + bne _080A1672 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A1672: + ldr r5, _080A16AC + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + bne _080A168E + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 +_080A168E: + ldr r1, _080A16B0 + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r1 + lsls r0, r6, 24 + asrs r0, 24 + strh r0, [r3, 0x8] + cmp r0, 0 + bge _080A16B4 + movs r0, 0xA + b _080A16B6 + .align 2, 0 +_080A16A8: .4byte 0x02018000 +_080A16AC: .4byte sub_80A1500 +_080A16B0: .4byte gTasks +_080A16B4: + movs r0, 0 +_080A16B6: + strh r0, [r3, 0xA] + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + strh r7, [r0, 0xE] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A1654 + + thumb_func_start sub_80A16CC +sub_80A16CC: @ 80A16CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080A1724 + mov r12, r0 + mov r1, r9 + cmp r1, 0 + bne _080A172C + movs r5, 0 + ldr r7, _080A1728 + movs r0, 0x80 + lsls r0, 5 + adds r6, r0, 0 + movs r1, 0x40 + adds r1, r7 + mov r8, r1 +_080A16F4: + lsls r2, r5, 1 + mov r0, r12 + adds r3, r2, r0 + adds r4, r2, r7 + ldrh r1, [r4] + adds r0, r6, r1 + strh r0, [r3] + adds r1, r3, 0 + adds r1, 0x40 + ldrh r4, [r4] + adds r0, r6, r4 + strh r0, [r1] + adds r3, 0x80 + add r2, r8 + ldrh r2, [r2] + adds r0, r6, r2 + strh r0, [r3] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A16F4 + b _080A1768 + .align 2, 0 +_080A1724: .4byte 0x06006ad4 +_080A1728: .4byte gUnknown_08E94510 +_080A172C: + movs r5, 0 + ldr r6, _080A17B0 + movs r7, 0x80 + lsls r7, 5 + adds r4, r7, 0 + movs r0, 0x40 + adds r0, r6 + mov r8, r0 +_080A173C: + lsls r1, r5, 1 + mov r7, r12 + adds r2, r1, r7 + adds r0, r1, r6 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r3, r2, 0 + adds r3, 0x40 + add r1, r8 + ldrh r7, [r1] + adds r0, r4, r7 + strh r0, [r3] + adds r2, 0x80 + ldrh r1, [r1] + adds r0, r4, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A173C +_080A1768: + ldr r0, _080A17B4 + mov r12, r0 + mov r1, r9 + cmp r1, 0 + bne _080A17BC + movs r5, 0 + ldr r7, _080A17B8 + movs r0, 0xC0 + lsls r0, 6 + adds r6, r0, 0 + movs r1, 0x40 + adds r1, r7 + mov r8, r1 +_080A1782: + lsls r2, r5, 1 + mov r0, r12 + adds r3, r2, r0 + adds r4, r2, r7 + ldrh r1, [r4] + adds r0, r6, r1 + strh r0, [r3] + adds r1, r3, 0 + adds r1, 0x40 + ldrh r4, [r4] + adds r0, r6, r4 + strh r0, [r1] + adds r3, 0x80 + add r2, r8 + ldrh r2, [r2] + adds r0, r6, r2 + strh r0, [r3] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A1782 + b _080A17F8 + .align 2, 0 +_080A17B0: .4byte gUnknown_08E94550 +_080A17B4: .4byte 0x06005ad4 +_080A17B8: .4byte gUnknown_08E94510 +_080A17BC: + movs r5, 0 + ldr r6, _080A1804 + movs r7, 0xC0 + lsls r7, 6 + adds r4, r7, 0 + movs r0, 0x40 + adds r0, r6 + mov r8, r0 +_080A17CC: + lsls r1, r5, 1 + mov r7, r12 + adds r2, r1, r7 + adds r0, r1, r6 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r3, r2, 0 + adds r3, 0x40 + add r1, r8 + ldrh r7, [r1] + adds r0, r4, r7 + strh r0, [r3] + adds r2, 0x80 + ldrh r1, [r1] + adds r0, r4, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A17CC +_080A17F8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1804: .4byte gUnknown_08E94550 + thumb_func_end sub_80A16CC + + thumb_func_start sub_80A1808 +sub_80A1808: @ 80A1808 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r1, 0x41 + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080A1860 + movs r1, 0x28 + movs r2, 0x40 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, r0, 4 + add r4, r8 + lsls r4, 2 + ldr r5, _080A1864 + adds r7, r4, r5 + adds r0, r7, 0 + bl FreeSpriteOamMatrix + strh r6, [r7, 0x2E] + adds r5, 0x1C + adds r4, r5 + ldr r0, _080A1868 + str r0, [r4] + adds r0, r6, 0 + bl sub_8040A3C + lsls r0, 24 + cmp r0, 0 + bne _080A186C + adds r0, r7, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _080A187A + .align 2, 0 +_080A1860: .4byte gUnknown_02024E8C +_080A1864: .4byte gSprites +_080A1868: .4byte sub_80A1888 +_080A186C: + adds r2, r7, 0 + adds r2, 0x3F + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080A187A: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A1808 + + thumb_func_start sub_80A1888 +sub_80A1888: @ 80A1888 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A18B8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A18B0 + ldr r0, _080A18BC + str r0, [r4, 0x1C] + ldr r0, _080A18C0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080A18B0 + ldrh r0, [r4, 0x2E] + movs r1, 0 + bl PlayCry1 +_080A18B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A18B8: .4byte gPaletteFade +_080A18BC: .4byte SpriteCallbackDummy +_080A18C0: .4byte 0x02018010 + thumb_func_end sub_80A1888 + + thumb_func_start sub_80A18C4 +sub_80A18C4: @ 80A18C4 + push {lr} + movs r1, 0 + ldr r3, _080A18E0 + movs r2, 0xFF +_080A18CC: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1D + bls _080A18CC + pop {r0} + bx r0 + .align 2, 0 +_080A18E0: .4byte 0x0201a000 + thumb_func_end sub_80A18C4 + + thumb_func_start sub_80A18E4 +sub_80A18E4: @ 80A18E4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A1910 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080A1908 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A1914 + adds r0, r1 + bl DestroySprite + movs r0, 0xFF + strb r0, [r4] +_080A1908: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1910: .4byte 0x0201a000 +_080A1914: .4byte gSprites + thumb_func_end sub_80A18E4 + + thumb_func_start sub_80A1918 +sub_80A1918: @ 80A1918 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _080A1948 + ldr r2, _080A194C + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + adds r2, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_080A1948: .4byte gSprites +_080A194C: .4byte 0x0201a000 + thumb_func_end sub_80A1918 + + thumb_func_start sub_80A1950 +sub_80A1950: @ 80A1950 + push {r4,r5,lr} + movs r5, 0 +_080A1954: + ldr r0, _080A1984 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080A196C + ldr r0, _080A1988 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl CreateSprite + strb r0, [r4] +_080A196C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _080A1954 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A1984: .4byte 0x0201a000 +_080A1988: .4byte gSpriteTemplate_83C11C0 + thumb_func_end sub_80A1950 + + thumb_func_start sub_80A198C +sub_80A198C: @ 80A198C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r10, r3 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080A1A24 + mov r8, r1 + add r8, r10 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A1A28 + mov r9, r1 + add r0, r9 + adds r1, r4, 0 + bl StartSpriteAnim + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldr r0, _080A1A2C + adds r4, r0 + ldrb r2, [r4] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r5, 0x10 + strh r5, [r0, 0x20] + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r6, 0x8 + strh r6, [r0, 0x22] + mov r0, r10 + movs r1, 0 + bl sub_80A1918 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1A24: .4byte 0x0201a000 +_080A1A28: .4byte gSprites +_080A1A2C: .4byte gUnknown_083C11D8 + thumb_func_end sub_80A198C + + thumb_func_start sub_80A1A30 +sub_80A1A30: @ 80A1A30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + mov r9, r0 + ldr r1, _080A1A98 + ldrb r0, [r1, 0xB] + cmp r0, 0x1 + bls _080A1B0A + cmp r4, 0x9 + bne _080A1A52 + movs r3, 0x1 + mov r9, r3 +_080A1A52: + movs r5, 0 + movs r0, 0x80 + lsls r0, 6 + adds r0, r1 + mov r8, r0 + ldr r6, _080A1A9C + mov r10, r5 +_080A1A60: + lsls r1, r5, 20 + movs r3, 0xB0 + lsls r3, 15 + adds r1, r3 + asrs r1, 16 + ldr r0, _080A1AA0 + movs r2, 0x28 + mov r3, r9 + bl CreateSprite + adds r1, r4, r5 + mov r3, r8 + adds r2, r1, r3 + strb r0, [r2] + adds r7, r1, 0 + cmp r5, 0 + bne _080A1AA4 + adds r0, r4, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x4 + bl StartSpriteAnim + b _080A1AD0 + .align 2, 0 +_080A1A98: .4byte 0x02018000 +_080A1A9C: .4byte gSprites +_080A1AA0: .4byte gSpriteTemplate_83C1280 +_080A1AA4: + cmp r5, 0x9 + bne _080A1AC0 + adds r0, r4, 0 + adds r0, 0x9 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + bl StartSpriteAnim + b _080A1AD0 +_080A1AC0: + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x6 + bl StartSpriteAnim +_080A1AD0: + mov r0, r8 + adds r2, r7, r0 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080A1B18 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r10 + strh r1, [r0, 0x30] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _080A1A60 +_080A1B0A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1B18: .4byte sub_80A1BC0 + thumb_func_end sub_80A1A30 + + thumb_func_start sub_80A1B1C +sub_80A1B1C: @ 80A1B1C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_080A1B24: + adds r0, r5, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80A18E4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _080A1B24 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A1B1C + + thumb_func_start sub_80A1B40 +sub_80A1B40: @ 80A1B40 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 24 + ldr r0, _080A1BB4 + ldrb r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r2, _080A1BB8 + adds r0, r2 + lsrs r7, r1, 24 + movs r2, 0x80 + lsls r2, 19 + adds r1, r2 + lsrs r1, 24 + bl StartSpriteAnim + movs r4, 0 + adds r0, r7, 0x6 + lsls r0, 24 + mov r8, r0 +_080A1B74: + ldr r6, _080A1BBC + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080A1BB8 + adds r0, r5 + mov r2, r8 + lsrs r1, r2, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080A1B74 + ldrb r1, [r6, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r1, r7, 0x5 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1BB4: .4byte 0x0201a009 +_080A1BB8: .4byte gSprites +_080A1BBC: .4byte 0x0201a00a + thumb_func_end sub_80A1B40 + + thumb_func_start sub_80A1BC0 +sub_80A1BC0: @ 80A1BC0 + push {lr} + adds r2, r0, 0 + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _080A1BF8 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r2, 0x30] + cmp r0, 0x18 + ble _080A1BEC + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + b _080A1C06 +_080A1BEC: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + b _080A1C04 +_080A1BF8: + movs r0, 0 + strh r0, [r2, 0x30] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + subs r0, 0x5 +_080A1C04: + ands r0, r1 +_080A1C06: + strb r0, [r3] + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x9 + bne _080A1C1C + ldr r0, _080A1C18 + adds r0, 0x79 + b _080A1C20 + .align 2, 0 +_080A1C18: .4byte 0x02018000 +_080A1C1C: + ldr r0, _080A1C2C + adds r0, 0x7A +_080A1C20: + ldrb r0, [r0] + lsls r0, 4 + strh r0, [r2, 0x26] + pop {r0} + bx r0 + .align 2, 0 +_080A1C2C: .4byte 0x02018000 + thumb_func_end sub_80A1BC0 + + thumb_func_start sub_80A1C30 +sub_80A1C30: @ 80A1C30 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 25 + lsrs r3, r0, 24 + adds r4, r3, 0 + adds r0, r3, 0 + adds r0, 0xA + cmp r3, r0 + bge _080A1C82 + ldr r5, _080A1C88 + movs r7, 0x5 + negs r7, r7 + ldr r6, _080A1C8C +_080A1C50: + adds r2, r3, r6 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, 0 + adds r0, 0xA + cmp r3, r0 + blt _080A1C50 +_080A1C82: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1C88: .4byte gSprites +_080A1C8C: .4byte 0x0201a009 + thumb_func_end sub_80A1C30 + + thumb_func_start pokemon_ailments_get_primary +pokemon_ailments_get_primary: @ 80A1C90 + push {lr} + adds r1, r0, 0 + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + beq _080A1CA0 + movs r0, 0x1 + b _080A1CD2 +_080A1CA0: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080A1CAC + movs r0, 0x2 + b _080A1CD2 +_080A1CAC: + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080A1CB8 + movs r0, 0x3 + b _080A1CD2 +_080A1CB8: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A1CC4 + movs r0, 0x4 + b _080A1CD2 +_080A1CC4: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080A1CD0 + movs r0, 0 + b _080A1CD2 +_080A1CD0: + movs r0, 0x5 +_080A1CD2: + pop {r1} + bx r1 + thumb_func_end pokemon_ailments_get_primary + + thumb_func_start sub_80A1CD8 +sub_80A1CD8: @ 80A1CD8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080A1CEA + movs r0, 0x7 + b _080A1D12 +_080A1CEA: + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A1D12 + adds r0, r4, 0 + movs r1, 0 + bl sub_8040110 + lsls r0, 24 + cmp r0, 0 + bne _080A1D10 + movs r0, 0 + b _080A1D12 +_080A1D10: + movs r0, 0x6 +_080A1D12: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A1CD8 + + thumb_func_start sub_80A1D18 +sub_80A1D18: @ 80A1D18 + push {r4,r5,lr} + sub sp, 0x64 + mov r0, sp + bl sub_809F678 + mov r0, sp + bl sub_80A1CD8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080A1D58 + subs r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A1D50 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080A1D60 + ldr r0, _080A1D54 + movs r1, 0x40 + movs r2, 0x98 + movs r3, 0 + bl CreateSprite + strb r0, [r4] + b _080A1D60 + .align 2, 0 +_080A1D50: .4byte 0x0201a01d +_080A1D54: .4byte gSpriteTemplate_83C1304 +_080A1D58: + movs r0, 0x1D + bl sub_80A18E4 + b _080A1D74 +_080A1D60: + ldr r0, _080A1D7C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A1D80 + adds r0, r1 + adds r1, r5, 0 + bl StartSpriteAnim +_080A1D74: + add sp, 0x64 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A1D7C: .4byte 0x0201a01d +_080A1D80: .4byte gSprites + thumb_func_end sub_80A1D18 + + thumb_func_start sub_80A1D84 +sub_80A1D84: @ 80A1D84 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, _080A1DC0 + ldr r2, _080A1DC4 + adds r0, r1, 0 + bl sub_80F7920 + adds r4, r0, 0 + ldr r6, _080A1DC8 + str r4, [r6] + cmp r4, 0 + beq _080A1DBA + adds r0, r5, 0 + movs r1, 0x8 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, [r6] + movs r0, 0x3C + strh r0, [r1, 0x20] + movs r0, 0x1A + strh r0, [r1, 0x22] +_080A1DBA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1DC0: .4byte 0x00007533 +_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette +_080A1DC8: .4byte gUnknown_020384F4 + thumb_func_end sub_80A1D84 + + thumb_func_start sub_80A1DCC +sub_80A1DCC: @ 80A1DCC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A1DE4 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + bl sub_80A1D84 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1DE4: .4byte gUnknown_020384F4 + thumb_func_end sub_80A1DCC + + thumb_func_start sub_80A1DE8 +sub_80A1DE8: @ 80A1DE8 + push {r4,lr} + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80478DC + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A1E48 + adds r0, r1 + movs r1, 0x6 + movs r2, 0x88 + movs r3, 0 + bl CreateSprite + ldr r2, _080A1E4C + strb r0, [r2, 0xD] + ldr r3, _080A1E50 + ldrb r1, [r2, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080A1E54 + str r1, [r0] + ldrb r1, [r2, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1E48: .4byte gSpriteTemplate_820AAB4 +_080A1E4C: .4byte 0x02018000 +_080A1E50: .4byte gSprites +_080A1E54: .4byte SpriteCallbackDummy + thumb_func_end sub_80A1DE8 + + thumb_func_start sub_80A1E58 +sub_80A1E58: @ 80A1E58 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0xFF + beq _080A1E92 + ldr r3, _080A1E6C + ldrb r0, [r3] + adds r4, r2, 0x5 + b _080A1E74 + .align 2, 0 +_080A1E6C: .4byte gUnknown_083C15BC +_080A1E70: + adds r3, 0x4 + ldrb r0, [r3] +_080A1E74: + cmp r0, 0xFF + beq _080A1E7C + cmp r0, r1 + bne _080A1E70 +_080A1E7C: + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x4 + strb r0, [r2, 0x1] + ldrb r0, [r3, 0x1] + strb r0, [r2, 0x2] + ldrb r0, [r3, 0x2] + strb r0, [r2, 0x3] + ldrb r0, [r3, 0x3] + strb r0, [r2, 0x4] + adds r2, r4, 0 +_080A1E92: + adds r0, r2, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A1E58 + + thumb_func_start sub_80A1E9C +sub_80A1E9C: @ 80A1E9C + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + lsls r4, r2, 24 + lsrs r4, 24 + mov r1, sp + adds r1, 0x1 + mov r2, sp + adds r2, 0x2 + mov r0, sp + bl sub_8072CD4 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80A1E58 + adds r6, r0, 0 + adds r1, r5, 0 + bl StringCopy + adds r6, r0, 0 + cmp r4, 0xFF + beq _080A1EEC + movs r0, 0xFC + strb r0, [r6] + movs r0, 0x4 + strb r0, [r6, 0x1] + mov r0, sp + ldrb r0, [r0] + strb r0, [r6, 0x2] + mov r0, sp + ldrb r0, [r0, 0x1] + strb r0, [r6, 0x3] + mov r0, sp + ldrb r0, [r0, 0x2] + strb r0, [r6, 0x4] + movs r0, 0xFF + strb r0, [r6, 0x5] + adds r6, 0x5 +_080A1EEC: + adds r0, r6, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A1E9C + + thumb_func_start sub_80A1EF8 +sub_80A1EF8: @ 80A1EF8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080A1F44 + mov r8, r0 + mov r1, r9 + adds r2, r4, 0 + str r3, [sp] + bl sub_80A1E9C + ldr r3, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_80729D8 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1F44: .4byte gStringVar4 + thumb_func_end sub_80A1EF8 + + thumb_func_start sub_80A1F48 +sub_80A1F48: @ 80A1F48 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _080A1F94 + mov r8, r0 + mov r1, r9 + adds r2, r4, 0 + str r3, [sp] + bl sub_80A1E9C + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + ldr r3, [sp] + bl sub_8072BD8 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1F94: .4byte gStringVar4 + thumb_func_end sub_80A1F48 + + thumb_func_start sub_80A1F98 +sub_80A1F98: @ 80A1F98 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r0 + mov r8, r1 + adds r4, r2, 0 + adds r2, r3, 0 + ldr r5, [sp, 0x24] + ldr r6, [sp, 0x28] + ldr r7, [sp, 0x2C] + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080A1FF4 + mov r9, r0 + mov r1, r10 + adds r3, r4, 0 + bl ConvertIntToDecimalStringN + str r7, [sp] + mov r0, r9 + mov r1, r8 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_80A1EF8 + 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 +_080A1FF4: .4byte gStringVar1 + thumb_func_end sub_80A1F98 + + thumb_func_start sub_80A1FF8 +sub_80A1FF8: @ 80A1FF8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _080A2038 + mov r8, r0 + mov r1, r9 + adds r2, r4, 0 + bl sub_80A1E9C + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2038: .4byte gStringVar4 + thumb_func_end sub_80A1FF8 + + thumb_func_start sub_80A203C +sub_80A203C: @ 80A203C + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x34 + strb r0, [r4] + adds r4, 0x1 + cmp r1, 0 + bne _080A2052 + movs r1, 0x5 +_080A2052: + mov r0, sp + bl ConvertIntToDecimalString + adds r0, r4, 0 + mov r1, sp + movs r2, 0xE + bl sub_80A1E9C + adds r4, r0, 0 + ldr r1, _080A2074 + bl StringCopy + adds r4, r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A2074: .4byte gOtherText_Comma + thumb_func_end sub_80A203C + + thumb_func_start BgFrame_FillTileMap +BgFrame_FillTileMap: @ 80A2078 + push {lr} + ldr r3, _080A209C + ldr r2, _080A20A0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, [r1] + str r2, [r3] + ldr r2, _080A20A4 + str r2, [r1] + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080A209C: .4byte gUnknown_03005CF0 +_080A20A0: .4byte gTasks +_080A20A4: .4byte sub_80A20A8 + thumb_func_end BgFrame_FillTileMap + + thumb_func_start sub_80A20A8 +sub_80A20A8: @ 80A20A8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8055870 + cmp r0, 0x1 + beq _080A20C6 + ldr r1, _080A20CC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A20D0 + ldr r1, [r1] + str r1, [r0] +_080A20C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A20CC: .4byte gTasks +_080A20D0: .4byte gUnknown_03005CF0 + thumb_func_end sub_80A20A8 + + thumb_func_start exec_movement +exec_movement: @ 80A20D4 + push {r4,lr} + sub sp, 0x4 + adds r4, r3, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + beq _080A20F6 + movs r0, 0x1 + b _080A211E +_080A20F6: + ldr r0, _080A2128 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080A2108 + movs r0, 0x32 + bl sub_80A2198 +_080A2108: + bl sub_80A21E0 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + ldrb r1, [r1] + adds r2, r4, 0 + bl sub_80A21F4 + lsls r0, 24 + lsrs r0, 24 +_080A211E: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A2128: .4byte sub_80A244C + thumb_func_end exec_movement + + thumb_func_start sub_80A212C +sub_80A212C: @ 80A212C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _080A216E + bl sub_80A21E0 + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80A2260 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x10 + beq _080A216E + adds r0, r4, 0 + bl sub_80A2370 + lsls r0, 24 + lsrs r0, 24 + b _080A2170 +_080A216E: + movs r0, 0x1 +_080A2170: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A212C + + thumb_func_start sub_80A2178 +sub_80A2178: @ 80A2178 + push {r4,lr} + bl sub_80A21E0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _080A2192 + adds r0, r4, 0 + bl sub_80A2408 + adds r0, r4, 0 + bl DestroyTask +_080A2192: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2178 + + thumb_func_start sub_80A2198 +sub_80A2198: @ 80A2198 + push {r4,r5,lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _080A21D4 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1 + lsls r1, r0, 2 + adds r1, r0 + lsls r3, r1, 3 + ldr r5, _080A21D8 + ldr r0, _080A21DC + adds r4, r0, 0 +_080A21B8: + lsls r0, r2, 1 + adds r0, r3 + adds r0, r5 + ldrh r1, [r0] + orrs r1, r4 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080A21B8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A21D4: .4byte sub_80A244C +_080A21D8: .4byte gUnknown_03004B28 +_080A21DC: .4byte 0x0000ffff + thumb_func_end sub_80A2198 + + thumb_func_start sub_80A21E0 +sub_80A21E0: @ 80A21E0 + push {lr} + ldr r0, _080A21F0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080A21F0: .4byte sub_80A244C + thumb_func_end sub_80A21E0 + + thumb_func_start sub_80A21F4 +sub_80A21F4: @ 80A21F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r2 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + lsls r1, 24 + lsrs r6, r1, 24 + mov r8, r6 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80A2260 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x10 + beq _080A2230 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A2370 + lsls r0, 24 + cmp r0, 0 + beq _080A2250 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r6, 0 + b _080A2246 +_080A2230: + adds r0, r7, 0 + movs r1, 0xFF + bl sub_80A2260 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x10 + beq _080A2250 + adds r0, r7, 0 + adds r1, r4, 0 + mov r2, r8 +_080A2246: + mov r3, r9 + bl sub_80A23C8 + movs r0, 0 + b _080A2252 +_080A2250: + movs r0, 0x1 +_080A2252: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A21F4 + + thumb_func_start sub_80A2260 +sub_80A2260: @ 80A2260 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A2284 + adds r1, r0 + adds r1, 0x2 + movs r2, 0 +_080A2278: + ldrb r0, [r1] + cmp r0, r3 + bne _080A2288 + adds r0, r2, 0 + b _080A2296 + .align 2, 0 +_080A2284: .4byte gUnknown_03004B28 +_080A2288: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 + cmp r2, 0xF + bls _080A2278 + movs r0, 0x10 +_080A2296: + pop {r1} + bx r1 + thumb_func_end sub_80A2260 + + thumb_func_start sub_80A229C +sub_80A229C: @ 80A229C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A22CC + adds r1, r0 + adds r1, 0x2 + str r1, [r2] + movs r0, 0 + cmp r0, r3 + bcs _080A22C8 +_080A22BA: + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + adds r1, 0x1 + cmp r0, r3 + bcc _080A22BA + str r1, [r2] +_080A22C8: + pop {r0} + bx r0 + .align 2, 0 +_080A22CC: .4byte gUnknown_03004B28 + thumb_func_end sub_80A229C + + thumb_func_start sub_80A22D0 +sub_80A22D0: @ 80A22D0 + push {r4,lr} + sub sp, 0x4 + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + mov r2, sp + bl sub_80A229C + ldr r0, [sp] + strb r4, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A22D0 + + thumb_func_start sub_80A22F4 +sub_80A22F4: @ 80A22F4 + push {r4,lr} + sub sp, 0x4 + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r2, sp + bl sub_80A229C + ldr r0, [sp] + ldrb r0, [r0] + strb r0, [r4] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A22F4 + + thumb_func_start sub_80A2318 +sub_80A2318: @ 80A2318 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r2, _080A2340 + lsrs r1, 22 + adds r1, r2 + ldr r2, [r1] + mvns r2, r2 + lsls r2, 16 + lsrs r2, 16 + ldr r3, _080A2344 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldrh r0, [r1, 0x8] + ands r2, r0 + strh r2, [r1, 0x8] + bx lr + .align 2, 0 +_080A2340: .4byte gBitTable +_080A2344: .4byte gTasks + thumb_func_end sub_80A2318 + + thumb_func_start sub_80A2348 +sub_80A2348: @ 80A2348 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r3, _080A2368 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldr r0, _080A236C + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + ldrh r1, [r2, 0x8] + orrs r0, r1 + strh r0, [r2, 0x8] + bx lr + .align 2, 0 +_080A2368: .4byte gTasks +_080A236C: .4byte gBitTable + thumb_func_end sub_80A2348 + + thumb_func_start sub_80A2370 +sub_80A2370: @ 80A2370 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r3, _080A2398 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldr r0, _080A239C + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + ldrh r1, [r2, 0x8] + ands r0, r1 + cmp r0, 0 + bne _080A23A0 + movs r0, 0 + b _080A23A2 + .align 2, 0 +_080A2398: .4byte gTasks +_080A239C: .4byte gBitTable +_080A23A0: + movs r0, 0x1 +_080A23A2: + pop {r1} + bx r1 + thumb_func_end sub_80A2370 + + thumb_func_start npc_obj_offscreen_culling_and_flag_update +npc_obj_offscreen_culling_and_flag_update: @ 80A23A8 + lsls r0, 24 + ldr r2, _080A23B4 + lsrs r0, 22 + adds r0, r2 + str r1, [r0] + bx lr + .align 2, 0 +_080A23B4: .4byte gUnknown_020384F8 + thumb_func_end npc_obj_offscreen_culling_and_flag_update + + thumb_func_start sub_80A23B8 +sub_80A23B8: @ 80A23B8 + lsls r0, 24 + ldr r1, _080A23C4 + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_080A23C4: .4byte gUnknown_020384F8 + thumb_func_end sub_80A23B8 + + thumb_func_start sub_80A23C8 +sub_80A23C8: @ 80A23C8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r8, r3 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A2318 + adds r0, r4, 0 + mov r1, r8 + bl npc_obj_offscreen_culling_and_flag_update + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_80A22D0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A23C8 + + thumb_func_start sub_80A2408 +sub_80A2408: @ 80A2408 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A2444 + adds r1, r0 + adds r4, r1, 0x2 + movs r5, 0 +_080A241C: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080A2432 + adds r1, r0, 0 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A2448 + adds r0, r1 + bl npc_sync_anim_pause_bits +_080A2432: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x1 + cmp r5, 0xF + bls _080A241C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2444: .4byte gUnknown_03004B28 +_080A2448: .4byte gMapObjects + thumb_func_end sub_80A2408 + + thumb_func_start sub_80A244C +sub_80A244C: @ 80A244C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 + mov r6, sp +_080A2458: + adds r0, r7, 0 + adds r1, r5, 0 + mov r2, sp + bl sub_80A22F4 + ldrb r0, [r6] + cmp r0, 0xFF + beq _080A247C + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_80A23B8 + adds r3, r0, 0 + adds r0, r7, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_80A2490 +_080A247C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080A2458 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A244C + + thumb_func_start sub_80A2490 +sub_80A2490: @ 80A2490 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r3, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + mov r8, r6 + lsls r2, 24 + lsrs r2, 24 + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + ldr r1, _080A24E0 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080A24C8 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080A24FA +_080A24C8: + ldrb r1, [r5] + cmp r1, 0xFE + bne _080A24E4 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_80A2348 + adds r0, r4, 0 + bl sub_80643A4 + b _080A24FA + .align 2, 0 +_080A24E0: .4byte gMapObjects +_080A24E4: + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + lsls r0, 24 + cmp r0, 0 + bne _080A24FA + adds r5, 0x1 + mov r0, r8 + adds r1, r5, 0 + bl npc_obj_offscreen_culling_and_flag_update +_080A24FA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A2490 + + thumb_func_start SetUpFieldMove_Cut +SetUpFieldMove_Cut: @ 80A2504 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x52 + bl npc_before_player_of_type + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A2534 + ldr r1, _080A2524 + ldr r0, _080A2528 + str r0, [r1] + ldr r1, _080A252C + ldr r0, _080A2530 + b _080A25A8 + .align 2, 0 +_080A2524: .4byte gUnknown_0300485C +_080A2528: .4byte sub_808AB90 +_080A252C: .4byte gUnknown_03005CE4 +_080A2530: .4byte sub_80A2634 +_080A2534: + ldr r4, _080A25B0 + adds r1, r4, 0x2 + adds r0, r4, 0 + bl PlayerGetDestCoords + movs r7, 0 + mov r8, r4 +_080A2542: + ldr r1, _080A25B4 + adds r0, r7, r1 + mov r2, r8 + ldrh r2, [r2, 0x2] + adds r0, r2 + movs r6, 0 + lsls r0, 16 + asrs r5, r0, 16 +_080A2552: + ldr r1, _080A25B4 + adds r0, r6, r1 + mov r2, r8 + ldrh r2, [r2] + adds r0, r2 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetZCoordAt + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + movs r1, 0x4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _080A25C8 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8056E14 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A259E + adds r0, r4, 0 + bl MetatileBehavior_IsAsh + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A25C8 +_080A259E: + ldr r1, _080A25B8 + ldr r0, _080A25BC + str r0, [r1] + ldr r1, _080A25C0 + ldr r0, _080A25C4 +_080A25A8: + str r0, [r1] + movs r0, 0x1 + b _080A25DE + .align 2, 0 +_080A25B0: .4byte gUnknown_0203923C +_080A25B4: .4byte 0x0000ffff +_080A25B8: .4byte gUnknown_0300485C +_080A25BC: .4byte sub_808AB90 +_080A25C0: .4byte gUnknown_03005CE4 +_080A25C4: .4byte sub_80A25E8 +_080A25C8: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _080A2552 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _080A2542 + movs r0, 0 +_080A25DE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Cut + + thumb_func_start sub_80A25E8 +sub_80A25E8: @ 80A25E8 + push {lr} + movs r0, 0x1 + bl FieldEffectStart + ldr r0, _080A25FC + ldr r1, _080A2600 + ldrb r1, [r1] + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080A25FC: .4byte gUnknown_0202FF84 +_080A2600: .4byte gUnknown_03005CE0 + thumb_func_end sub_80A25E8 + + thumb_func_start FldEff_UseCutOnGrass +FldEff_UseCutOnGrass: @ 80A2604 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A262C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080A2630 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x12 + bl sav12_xor_increment + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A262C: .4byte gTasks +_080A2630: .4byte sub_80A2684 + thumb_func_end FldEff_UseCutOnGrass + + thumb_func_start sub_80A2634 +sub_80A2634: @ 80A2634 + push {lr} + ldr r1, _080A2648 + ldr r0, _080A264C + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080A2650 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080A2648: .4byte gUnknown_0202FF84 +_080A264C: .4byte gUnknown_03005CE0 +_080A2650: .4byte UseCutScript + thumb_func_end sub_80A2634 + + thumb_func_start FldEff_UseCutOnTree +FldEff_UseCutOnTree: @ 80A2654 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A267C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080A2680 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x12 + bl sav12_xor_increment + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A267C: .4byte gTasks +_080A2680: .4byte sub_80A2B00 + thumb_func_end FldEff_UseCutOnTree + + thumb_func_start sub_80A2684 +sub_80A2684: @ 80A2684 + push {lr} + movs r0, 0x1 + bl FieldEffectActiveListRemove + movs r0, 0x3A + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80A2684 + + thumb_func_start FldEff_CutGrass +FldEff_CutGrass: @ 80A2698 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r7, 0 + movs r0, 0x80 + bl PlaySE + ldr r4, _080A2790 + adds r1, r4, 0x2 + adds r0, r4, 0 + bl PlayerGetDestCoords + mov r8, r4 +_080A26B2: + ldr r1, _080A2794 + adds r0, r7, r1 + mov r2, r8 + ldrh r2, [r2, 0x2] + adds r0, r2 + movs r6, 0 + lsls r0, 16 + asrs r5, r0, 16 +_080A26C2: + ldr r1, _080A2794 + adds r0, r6, r1 + mov r2, r8 + ldrh r2, [r2] + adds r0, r2 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetZCoordAt + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + movs r1, 0x4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _080A270E + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_80578F8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A270E + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A27A8 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_805BCC0 +_080A270E: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _080A26C2 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _080A26B2 + ldr r1, _080A2790 + ldrh r0, [r1] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r1, 0x2] + subs r1, 0x2 + lsls r1, 16 + asrs r1, 16 + bl sub_80A28F4 + bl DrawWholeMapView + movs r7, 0 + ldr r4, _080A2798 +_080A2740: + ldr r0, _080A279C + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r2, 0x80 + lsls r2, 12 + adds r1, r2 + asrs r1, 16 + ldrb r2, [r0] + adds r2, 0x14 + ldr r0, _080A27A0 + movs r3, 0 + bl CreateSprite + ldr r1, _080A27A4 + adds r1, r7, r1 + strb r0, [r1] + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + lsls r1, r7, 5 + strh r1, [r0, 0x32] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x7 + bls _080A2740 + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080A2790: .4byte gUnknown_0203923C +_080A2794: .4byte 0x0000ffff +_080A2798: .4byte gSprites +_080A279C: .4byte gPlayerAvatar +_080A27A0: .4byte gSpriteTemplate_CutGrass +_080A27A4: .4byte 0x0201fff0 + thumb_func_end FldEff_CutGrass + + thumb_func_start sub_80A27A8 +sub_80A27A8: @ 80A27A8 + push {r4-r7,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r6, r0, 16 + asrs r4, r0, 16 + lsrs r7, r1, 16 + asrs r5, r1, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileIdAt + adds r1, r0, 0 + ldr r0, _080A27E0 + cmp r1, r0 + bgt _080A27F4 + subs r0, 0x1 + cmp r1, r0 + bge _080A286C + cmp r1, 0x25 + beq _080A288E + cmp r1, 0x25 + bgt _080A27E4 + cmp r1, 0xD + beq _080A2834 + cmp r1, 0x15 + beq _080A2834 + b _080A2898 + .align 2, 0 +_080A27E0: .4byte 0x00000207 +_080A27E4: + movs r0, 0xE3 + lsls r0, 1 + cmp r1, r0 + beq _080A2844 + adds r0, 0x1 + cmp r1, r0 + beq _080A284A + b _080A2898 +_080A27F4: + ldr r0, _080A280C + cmp r1, r0 + beq _080A287C + cmp r1, r0 + bgt _080A2810 + subs r0, 0xA + cmp r1, r0 + beq _080A2834 + adds r0, 0x2 + cmp r1, r0 + beq _080A287C + b _080A2898 + .align 2, 0 +_080A280C: .4byte 0x00000212 +_080A2810: + ldr r0, _080A2824 + cmp r1, r0 + beq _080A285C + cmp r1, r0 + bgt _080A2828 + subs r0, 0x1 + cmp r1, r0 + beq _080A2854 + b _080A2898 + .align 2, 0 +_080A2824: .4byte 0x00000282 +_080A2828: + ldr r0, _080A2830 + cmp r1, r0 + beq _080A2864 + b _080A2898 + .align 2, 0 +_080A2830: .4byte 0x00000283 +_080A2834: + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r1, 16 + movs r2, 0x1 + bl MapGridSetMetatileIdAt + b _080A2898 +_080A2844: + movs r2, 0xE7 + lsls r2, 1 + b _080A286E +_080A284A: + ldr r2, _080A2850 + b _080A286E + .align 2, 0 +_080A2850: .4byte 0x000001cf +_080A2854: + ldr r2, _080A2858 + b _080A286E + .align 2, 0 +_080A2858: .4byte 0x00000279 +_080A285C: + ldr r2, _080A2860 + b _080A286E + .align 2, 0 +_080A2860: .4byte 0x0000027a +_080A2864: + ldr r2, _080A2868 + b _080A286E + .align 2, 0 +_080A2868: .4byte 0x0000027b +_080A286C: + ldr r2, _080A2878 +_080A286E: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt + b _080A2898 + .align 2, 0 +_080A2878: .4byte 0x00000271 +_080A287C: + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r1, 16 + movs r2, 0x86 + lsls r2, 2 + bl MapGridSetMetatileIdAt + b _080A2898 +_080A288E: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xE + bl MapGridSetMetatileIdAt +_080A2898: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A27A8 + + thumb_func_start sub_80A28A0 +sub_80A28A0: @ 80A28A0 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl MapGridGetMetatileIdAt + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r1, 0 + cmp r1, 0x1 + bne _080A28BC + movs r0, 0x1 + b _080A28EE +_080A28BC: + ldr r0, _080A28C8 + cmp r1, r0 + bne _080A28CC + movs r0, 0x2 + b _080A28EE + .align 2, 0 +_080A28C8: .4byte 0x00000279 +_080A28CC: + ldr r0, _080A28D8 + cmp r1, r0 + bne _080A28DC + movs r0, 0x3 + b _080A28EE + .align 2, 0 +_080A28D8: .4byte 0x0000027a +_080A28DC: + ldr r0, _080A28E8 + cmp r2, r0 + beq _080A28EC + movs r0, 0 + b _080A28EE + .align 2, 0 +_080A28E8: .4byte 0x0000027b +_080A28EC: + movs r0, 0x4 +_080A28EE: + pop {r1} + bx r1 + thumb_func_end sub_80A28A0 + + thumb_func_start sub_80A28F4 +sub_80A28F4: @ 80A28F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 16 + movs r2, 0xC0 + lsls r2, 10 + adds r0, r1, r2 + lsrs r0, 16 + mov r9, r0 + movs r4, 0 + asrs r7, r1, 16 +_080A2914: + mov r1, r10 + lsls r0, r1, 16 + asrs r0, 16 + lsls r4, 16 + asrs r1, r4, 16 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r5, r0, 16 + adds r0, r5, 0 + adds r1, r7, 0 + bl MapGridGetMetatileIdAt + mov r8, r4 + cmp r0, 0x15 + bne _080A2996 + adds r4, r7, 0x1 + lsls r1, r4, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_80A28A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080A296A + cmp r0, 0x2 + bgt _080A2952 + cmp r0, 0x1 + beq _080A295C + b _080A2996 +_080A2952: + cmp r0, 0x3 + beq _080A297C + cmp r0, 0x4 + beq _080A298C + b _080A2996 +_080A295C: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x82 + lsls r2, 2 + bl MapGridSetMetatileIdAt + b _080A2996 +_080A296A: + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2978 + bl MapGridSetMetatileIdAt + b _080A2996 + .align 2, 0 +_080A2978: .4byte 0x00000281 +_080A297C: + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2988 + bl MapGridSetMetatileIdAt + b _080A2996 + .align 2, 0 +_080A2988: .4byte 0x00000282 +_080A298C: + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A30 + bl MapGridSetMetatileIdAt +_080A2996: + lsls r0, r6, 16 + asrs r5, r0, 16 + mov r2, r9 + lsls r0, r2, 16 + asrs r4, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + cmp r0, 0x1 + bne _080A2A10 + adds r4, 0x1 + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + movs r1, 0x82 + lsls r1, 2 + cmp r0, r1 + bne _080A29C8 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl MapGridSetMetatileIdAt +_080A29C8: + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + ldr r1, _080A2A34 + cmp r0, r1 + bne _080A29E0 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A38 + bl MapGridSetMetatileIdAt +_080A29E0: + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + ldr r1, _080A2A3C + cmp r0, r1 + bne _080A29F8 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A40 + bl MapGridSetMetatileIdAt +_080A29F8: + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + ldr r1, _080A2A30 + cmp r0, r1 + bne _080A2A10 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A44 + bl MapGridSetMetatileIdAt +_080A2A10: + movs r0, 0x80 + lsls r0, 9 + add r0, r8 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bgt _080A2A20 + b _080A2914 +_080A2A20: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A2A30: .4byte 0x00000283 +_080A2A34: .4byte 0x00000281 +_080A2A38: .4byte 0x00000279 +_080A2A3C: .4byte 0x00000282 +_080A2A40: .4byte 0x0000027a +_080A2A44: .4byte 0x0000027b + thumb_func_end sub_80A28F4 + + thumb_func_start sub_80A2A48 +sub_80A2A48: @ 80A2A48 + movs r2, 0 + movs r1, 0x8 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x34] + ldr r1, _080A2A58 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A2A58: .4byte objc_8097BBC + thumb_func_end sub_80A2A48 + + thumb_func_start objc_8097BBC +objc_8097BBC: @ 80A2A5C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x2E] + adds r1, 0x1 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 18 + adds r1, r0 + strh r1, [r4, 0x2E] + adds r2, 0x1 + strh r2, [r4, 0x34] + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x1C + beq _080A2AA8 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080A2AAC +_080A2AA8: + ldr r0, _080A2AB4 + str r0, [r4, 0x1C] +_080A2AAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2AB4: .4byte sub_80A2AB8 + thumb_func_end objc_8097BBC + + thumb_func_start sub_80A2AB8 +sub_80A2AB8: @ 80A2AB8 + push {r4-r6,lr} + movs r4, 0x1 +_080A2ABC: + ldr r6, _080A2AF8 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080A2AFC + adds r0, r5 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080A2ABC + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x3A + bl FieldEffectStop + bl sub_8064E2C + bl ScriptContext2_Disable + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2AF8: .4byte 0x0201fff0 +_080A2AFC: .4byte gSprites + thumb_func_end sub_80A2AB8 + + thumb_func_start sub_80A2B00 +sub_80A2B00: @ 80A2B00 + push {lr} + movs r0, 0x80 + bl PlaySE + movs r0, 0x2 + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80A2B00 + + thumb_func_start sub_80A2B18 +sub_80A2B18: @ 80A2B18 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080A2B3C +_080A2B1E: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r0, r5 + bl sub_80A2B40 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080A2B1E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2B3C: .4byte gSaveBlock1 + 0x2B4C + thumb_func_end sub_80A2B18 + + thumb_func_start sub_80A2B40 +sub_80A2B40: @ 80A2B40 + push {r4-r6,lr} + adds r3, r0, 0 + ldr r0, _080A2B90 + adds r4, r0, 0 + adds r1, r3, 0 + movs r2, 0x8 +_080A2B4C: + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080A2B4C + movs r2, 0 + adds r6, r3, 0 + adds r6, 0x1A + adds r4, r3, 0 + adds r4, 0x12 + movs r5, 0xFF +_080A2B66: + adds r1, r4, r2 + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _080A2B66 + adds r1, r6, 0 + movs r2, 0 + adds r0, r1, 0x3 +_080A2B7A: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _080A2B7A + movs r1, 0 + movs r0, 0x1 + strh r0, [r3, 0x1E] + strh r1, [r3, 0x20] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2B90: .4byte 0x0000ffff + thumb_func_end sub_80A2B40 + + thumb_func_start sub_80A2B94 +sub_80A2B94: @ 80A2B94 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _080A2BBC + adds r0, r4, 0 + movs r1, 0x40 + bl GetMonData + cmp r0, 0xFF + beq _080A2BBC + movs r0, 0x1 + b _080A2BBE +_080A2BBC: + movs r0, 0 +_080A2BBE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A2B94 + + thumb_func_start sub_80A2BC4 +sub_80A2BC4: @ 80A2BC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r7, r0, 0 + lsls r1, 16 + lsrs r0, r1, 16 + str r0, [sp, 0x8] + mov r0, sp + movs r2, 0 + ldrb r3, [r0, 0x8] + strb r3, [r0] + lsrs r1, 24 + strb r1, [r0, 0x1] + add r3, sp, 0x4 + strb r2, [r3] + mov r10, r3 + ldr r4, _080A2D00 + mov r9, r4 + mov r8, r3 + adds r2, r3, 0 +_080A2BF2: + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldr r5, _080A2D04 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _080A2C08 + b _080A2D24 +_080A2C08: + movs r3, 0 + ldr r0, _080A2D08 + mov r12, r0 + mov r4, r10 + ldr r6, _080A2D0C + ldr r1, _080A2D10 + adds r5, r1, 0 +_080A2C16: + lsls r2, r3, 1 + ldrb r1, [r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, r6 + ldrh r0, [r2] + orrs r0, r5 + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x8 + bls _080A2C16 + movs r3, 0 + mov r2, r10 + ldr r4, _080A2D14 +_080A2C3A: + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + adds r0, r4 + mov r5, r12 + adds r1, r3, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x6 + bls _080A2C3A + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + ldr r1, _080A2D14 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + mov r2, r8 + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r3, _080A2D14 + adds r0, r3 + movs r1, 0 + bl sub_814A518 + movs r3, 0 + mov r2, r10 + ldr r5, _080A2D18 + ldr r4, _080A2D1C +_080A2C88: + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + adds r0, r5 + adds r1, r3, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080A2C88 + adds r0, r7, 0 + movs r1, 0xB + bl GetBoxMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_80A2D44 + mov r4, r8 + ldrb r2, [r4] + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + add r1, r9 + ldr r5, _080A2D20 + adds r1, r5 + strh r0, [r1] + ldrb r1, [r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldr r1, _080A2D04 + adds r0, r1 + mov r2, sp + ldrh r2, [r2, 0x8] + strh r2, [r0] + adds r0, r7, 0 + movs r1, 0x40 + mov r2, r8 + bl SetMonData + adds r0, r7, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + ldrb r0, [r4] + b _080A2D32 + .align 2, 0 +_080A2D00: .4byte gSaveBlock1 +_080A2D04: .4byte 0x00002b6c +_080A2D08: .4byte gSaveBlock2 +_080A2D0C: .4byte gSaveBlock1 + 0x2B4C +_080A2D10: .4byte 0x0000ffff +_080A2D14: .4byte gSaveBlock1 + 0x2B5E +_080A2D18: .4byte gSaveBlock1 + 0x2B66 +_080A2D1C: .4byte gSaveBlock2 + 0xA +_080A2D20: .4byte 0x00002b6a +_080A2D24: + adds r0, r1, 0x1 + strb r0, [r3] + ldrb r0, [r2] + cmp r0, 0x5 + bhi _080A2D30 + b _080A2BF2 +_080A2D30: + movs r0, 0xFF +_080A2D32: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A2BC4 + + thumb_func_start sub_80A2D44 +sub_80A2D44: @ 80A2D44 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC9 + bne _080A2D5C + adds r0, r1, 0 + bl sub_809D474 + lsls r0, 16 + ldr r1, _080A2D60 + adds r0, r1 + lsrs r0, 16 +_080A2D5C: + pop {r1} + bx r1 + .align 2, 0 +_080A2D60: .4byte 0x75300000 + thumb_func_end sub_80A2D44 + + thumb_func_start sub_80A2D64 +sub_80A2D64: @ 80A2D64 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _080A2D7C + adds r2, r3, r0 + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0x1B + bhi _080A2D80 + movs r0, 0xC9 + strh r2, [r1] + b _080A2D82 + .align 2, 0 +_080A2D7C: .4byte 0xffff8ad0 +_080A2D80: + adds r0, r3, 0 +_080A2D82: + pop {r1} + bx r1 + thumb_func_end sub_80A2D64 + + thumb_func_start sub_80A2D88 +sub_80A2D88: @ 80A2D88 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r7, r1, 0 + ldrh r5, [r7, 0x20] + adds r1, r5, 0 + bl sub_80A2BC4 + add r4, sp, 0x4 + strb r0, [r4] + ldrb r2, [r4] + cmp r2, 0xFF + beq _080A2DE8 + ldr r0, _080A2DE0 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r0, _080A2DE4 + adds r1, r0 + adds r0, r7, 0 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + adds r0, r6, 0 + movs r1, 0x40 + adds r2, r4, 0 + bl SetMonData + mov r0, sp + strb r5, [r0] + mov r1, sp + lsrs r0, r5, 8 + strb r0, [r1, 0x1] + adds r0, r6, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + ldrb r0, [r4] + b _080A2DEA + .align 2, 0 +_080A2DE0: .4byte gSaveBlock1 +_080A2DE4: .4byte 0x00002b4c +_080A2DE8: + movs r0, 0xFF +_080A2DEA: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A2D88 + + thumb_func_start unref_sub_80A2DF4 +unref_sub_80A2DF4: @ 80A2DF4 + movs r0, 0 + bx lr + thumb_func_end unref_sub_80A2DF4 + + thumb_func_start sub_80A2DF8 +sub_80A2DF8: @ 80A2DF8 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + bl sub_80A2B94 + lsls r0, 24 + cmp r0, 0 + beq _080A2E46 + adds r0, r4, 0 + movs r1, 0x40 + bl GetMonData + add r2, sp, 0x4 + strb r0, [r2] + ldr r3, _080A2E50 + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080A2E54 + adds r0, r1 + movs r3, 0 + movs r1, 0 + strh r1, [r0] + movs r0, 0xFF + strb r0, [r2] + mov r0, sp + strb r3, [r0] + strb r3, [r0, 0x1] + adds r0, r4, 0 + movs r1, 0x40 + bl SetMonData + adds r0, r4, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData +_080A2E46: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2E50: .4byte gSaveBlock1 +_080A2E54: .4byte 0x00002b6c + thumb_func_end sub_80A2DF8 + + thumb_func_start unref_sub_80A2E58 +unref_sub_80A2E58: @ 80A2E58 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A2E70 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080A2E74 + adds r1, r0 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080A2E70: .4byte gSaveBlock1 +_080A2E74: .4byte 0x00002b6c + thumb_func_end unref_sub_80A2E58 + + thumb_func_start sub_80A2E78 +sub_80A2E78: @ 80A2E78 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + adds r5, r0, 0 + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0, 0x1] + add r1, sp, 0x4 + movs r0, 0xFF + strb r0, [r1] + movs r7, 0x6 + mov r9, r1 + ldr r0, _080A2F04 + mov r8, r0 + ldr r2, _080A2F08 + add r2, r8 +_080A2E9E: + lsls r0, r7, 3 + adds r0, r7 + lsls r4, r0, 2 + mov r1, r8 + adds r0, r4, r1 + ldr r3, _080A2F0C + adds r0, r3 + ldrh r6, [r0] + cmp r6, 0 + bne _080A2F10 + adds r4, r2 + adds r0, r5, 0 + movs r1, 0x40 + str r2, [sp, 0x8] + bl GetMonData + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r2, [sp, 0x8] + adds r1, r2 + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + adds r0, r5, 0 + movs r1, 0x40 + bl GetMonData + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldr r0, _080A2F0C + adds r1, r0 + strh r6, [r1] + adds r0, r5, 0 + movs r1, 0x40 + mov r2, r9 + bl SetMonData + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r0, r7, 0 + b _080A2F1C + .align 2, 0 +_080A2F04: .4byte gSaveBlock1 +_080A2F08: .4byte 0x00002b4c +_080A2F0C: .4byte 0x00002b6c +_080A2F10: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0xF + bls _080A2E9E + movs r0, 0xFF +_080A2F1C: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A2E78 + + thumb_func_start itemid_is_mail +itemid_is_mail: @ 80A2F2C + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x84 + bgt _080A2F3E + cmp r0, 0x79 + blt _080A2F3E + movs r0, 0x1 + b _080A2F40 +_080A2F3E: + movs r0, 0 +_080A2F40: + pop {r1} + bx r1 + thumb_func_end itemid_is_mail + + thumb_func_start unref_sub_80A2F44 +unref_sub_80A2F44: @ 80A2F44 + push {lr} + bl sub_8071C20 + bl AddMapNamePopUpWindowTask + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end unref_sub_80A2F44 + + thumb_func_start AddMapNamePopUpWindowTask +AddMapNamePopUpWindowTask: @ 80A2F54 + push {r4,r5,lr} + movs r0, 0x80 + lsls r0, 7 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A2FE4 + ldr r4, _080A2FAC + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A2FBC + adds r0, r4, 0 + movs r1, 0x5A + bl CreateTask + ldr r4, _080A2FB0 + strb r0, [r4] + ldr r1, _080A2FB4 + movs r0, 0x20 + strh r0, [r1] + bl sub_80A30E0 + ldr r2, _080A2FB8 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + strh r5, [r0, 0x8] + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x20 + strh r1, [r0, 0xC] + b _080A2FE4 + .align 2, 0 +_080A2FAC: .4byte sub_80A2FF4 +_080A2FB0: .4byte gUnknown_02038538 +_080A2FB4: .4byte REG_BG0VOFS +_080A2FB8: .4byte gTasks +_080A2FBC: + ldr r3, _080A2FEC + ldr r2, _080A2FF0 + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r4, 0x8 + ldrsh r0, [r1, r4] + cmp r0, 0x2 + beq _080A2FD6 + movs r0, 0x2 + strh r0, [r1, 0x8] +_080A2FD6: + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r0, 0x1 + strh r0, [r1, 0xE] +_080A2FE4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2FEC: .4byte gTasks +_080A2FF0: .4byte gUnknown_02038538 + thumb_func_end AddMapNamePopUpWindowTask + + thumb_func_start sub_80A2FF4 +sub_80A2FF4: @ 80A2FF4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r3, _080A3018 + adds r4, r1, r3 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080A304C + cmp r2, 0x1 + bgt _080A301C + cmp r2, 0 + beq _080A3026 + b _080A3092 + .align 2, 0 +_080A3018: .4byte gTasks +_080A301C: + cmp r2, 0x2 + beq _080A3064 + cmp r2, 0x4 + beq _080A308C + b _080A3092 +_080A3026: + ldrh r0, [r4, 0xC] + subs r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bgt _080A3092 + movs r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080A3048 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r2, [r0, 0xA] + b _080A3092 + .align 2, 0 +_080A3048: .4byte gUnknown_02038538 +_080A304C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _080A3092 + movs r0, 0 + strh r0, [r4, 0xA] + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080A3092 +_080A3064: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + movs r5, 0 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + ble _080A3092 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A3086 + bl sub_80A30E0 + strh r5, [r4, 0x8] + strh r5, [r4, 0xE] + b _080A3092 +_080A3086: + movs r0, 0x4 + strh r0, [r4, 0x8] + b _080A3098 +_080A308C: + bl HideMapNamePopUpWindow + b _080A3098 +_080A3092: + ldr r1, _080A30A0 + ldrh r0, [r4, 0xC] + strh r0, [r1] +_080A3098: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A30A0: .4byte REG_BG0VOFS + thumb_func_end sub_80A2FF4 + + thumb_func_start HideMapNamePopUpWindow +HideMapNamePopUpWindow: @ 80A30A4 + push {lr} + ldr r0, _080A30D4 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080A30D0 + bl MenuLoadTextWindowGraphics + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x3 + bl MenuZeroFillWindowRect + ldr r1, _080A30D8 + movs r0, 0 + strh r0, [r1] + ldr r0, _080A30DC + ldrb r0, [r0] + bl DestroyTask +_080A30D0: + pop {r0} + bx r0 + .align 2, 0 +_080A30D4: .4byte sub_80A2FF4 +_080A30D8: .4byte REG_BG0VOFS +_080A30DC: .4byte gUnknown_02038538 + thumb_func_end HideMapNamePopUpWindow + + thumb_func_start sub_80A30E0 +sub_80A30E0: @ 80A30E0 + push {lr} + sub sp, 0x14 + movs r0, 0 + bl MenuLoadTextWindowGraphics_OverrideFrameType + ldr r0, _080A3114 + ldrb r1, [r0, 0x14] + mov r0, sp + movs r2, 0 + bl sub_80FBFB4 + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x3 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x60 + bl sub_8072BD8 + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_080A3114: .4byte gMapHeader + thumb_func_end sub_80A30E0 + + thumb_func_start sub_80A3118 +sub_80A3118: @ 80A3118 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl sub_80A740C + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80A3118 + + thumb_func_start sub_80A3134 +sub_80A3134: @ 80A3134 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r1, _080A3168 + ldr r2, _080A316C + ldr r0, _080A3170 + str r1, [r0] + str r2, [r0, 0x4] + ldr r3, _080A3174 + str r3, [r0, 0x8] + ldr r2, [r0, 0x8] + movs r2, 0x80 + lsls r2, 4 + adds r1, r2 + ldr r2, _080A3178 + str r1, [r0] + str r2, [r0, 0x4] + str r3, [r0, 0x8] + ldr r0, [r0, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080A3168: .4byte gBG1TilemapBuffer +_080A316C: .4byte 0x06002000 +_080A3170: .4byte 0x040000d4 +_080A3174: .4byte 0x80000400 +_080A3178: .4byte 0x06006000 + thumb_func_end sub_80A3134 + + thumb_func_start sub_80A317C +sub_80A317C: @ 80A317C + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _080A3198 + ldr r1, _080A319C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x10 + bls _080A318E + b _080A34A8 +_080A318E: + lsls r0, 2 + ldr r1, _080A31A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A3198: .4byte gMain +_080A319C: .4byte 0x0000043c +_080A31A0: .4byte _080A31A4 + .align 2, 0 +_080A31A4: + .4byte _080A31E8 + .4byte _080A31F2 + .4byte _080A3208 + .4byte _080A320E + .4byte _080A3228 + .4byte _080A324C + .4byte _080A3252 + .4byte _080A3270 + .4byte _080A327C + .4byte _080A3298 + .4byte _080A32A4 + .4byte _080A3328 + .4byte _080A338C + .4byte _080A33F4 + .4byte _080A3404 + .4byte _080A345C + .4byte _080A347C +_080A31E8: + bl sub_80F9438 + bl sub_80A34E8 + b _080A3464 +_080A31F2: + bl remove_some_task + ldr r1, _080A3200 + ldr r0, _080A3204 + adds r1, r0 + b _080A346A + .align 2, 0 +_080A3200: .4byte gMain +_080A3204: .4byte 0x0000043c +_080A3208: + bl gpu_pal_allocator_reset__manage_upper_four + b _080A3464 +_080A320E: + bl sub_80F9020 + ldr r0, _080A3220 + ldr r1, _080A3224 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _080A3464 + .align 2, 0 +_080A3220: .4byte 0x02000000 +_080A3224: .4byte 0x0001ffff +_080A3228: + bl ResetPaletteFade + ldr r2, _080A3240 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _080A3244 + ldr r0, _080A3248 + adds r1, r0 + b _080A346A + .align 2, 0 +_080A3240: .4byte gPaletteFade +_080A3244: .4byte gMain +_080A3248: .4byte 0x0000043c +_080A324C: + bl ResetSpriteData + b _080A3464 +_080A3252: + bl sub_80A3520 + lsls r0, 24 + cmp r0, 0 + bne _080A325E + b _080A34A8 +_080A325E: + ldr r1, _080A3268 + ldr r0, _080A326C + adds r1, r0 + b _080A346A + .align 2, 0 +_080A3268: .4byte gMain +_080A326C: .4byte 0x0000043c +_080A3270: + ldr r0, _080A3278 + bl SetUpWindowConfig + b _080A3464 + .align 2, 0 +_080A3278: .4byte gWindowConfig_81E6DFC +_080A327C: + ldr r0, _080A328C + bl MultistepInitMenuWindowBegin + ldr r1, _080A3290 + ldr r0, _080A3294 + adds r1, r0 + b _080A346A + .align 2, 0 +_080A328C: .4byte gWindowConfig_81E6DFC +_080A3290: .4byte gMain +_080A3294: .4byte 0x0000043c +_080A3298: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _080A32A2 + b _080A34A8 +_080A32A2: + b _080A3464 +_080A32A4: + bl sub_80F944C + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + movs r0, 0 + movs r1, 0xAC + movs r2, 0xC + bl sub_80F953C + movs r0, 0x1 + movs r1, 0xAC + movs r2, 0x94 + bl sub_80F953C + movs r0, 0x2 + movs r1, 0x1C + movs r2, 0x58 + bl sub_80F953C + movs r0, 0x3 + movs r1, 0x64 + movs r2, 0x58 + bl sub_80F953C + movs r0, 0 + movs r1, 0x2 + bl sub_80F9988 + movs r0, 0x1 + movs r1, 0x2 + bl sub_80F9988 + movs r0, 0x2 + movs r1, 0x2 + bl sub_80F9988 + movs r0, 0x3 + movs r1, 0x2 + bl sub_80F9988 + ldr r0, _080A331C + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080A3312 + movs r0, 0x2 + movs r1, 0x1 + bl sub_80F979C + movs r0, 0x3 + movs r1, 0x1 + bl sub_80F979C +_080A3312: + ldr r1, _080A3320 + ldr r0, _080A3324 + adds r1, r0 + b _080A346A + .align 2, 0 +_080A331C: .4byte gUnknown_03000701 +_080A3320: .4byte gMain +_080A3324: .4byte 0x0000043c +_080A3328: + ldr r1, _080A3378 + movs r0, 0x10 + strb r0, [r1] + ldr r4, _080A337C + ldr r5, _080A3380 + ldrb r1, [r5] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_80A39B8 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_80A3AC0 + bl sub_80A3D08 + ldr r4, _080A3384 + ldr r0, [r4, 0x10] + ldr r1, [r4, 0x14] + bl sub_80A3C34 + ldr r0, [r4, 0x18] + ldr r1, [r4, 0x1C] + bl sub_80A3C34 + bl sub_80A3D40 + ldr r1, _080A3388 + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 3 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + bl sub_80A362C + b _080A3464 + .align 2, 0 +_080A3378: .4byte gUnknown_0203855A +_080A337C: .4byte gBG2TilemapBuffer +_080A3380: .4byte gUnknown_02038559 +_080A3384: .4byte gUnknown_083C1618 +_080A3388: .4byte gUnknown_03005D24 +_080A338C: + ldr r0, _080A33D4 + movs r1, 0 + movs r2, 0x7 + bl sub_80A48E8 + ldr r1, _080A33D8 + ldr r4, _080A33DC + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + ldr r0, _080A33E0 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + bl sub_80A490C + bl sub_80A736C + ldr r1, _080A33E4 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _080A33E8 + movs r0, 0 + strb r0, [r1] + ldr r1, _080A33EC + ldr r0, _080A33F0 + adds r1, r0 + b _080A346A + .align 2, 0 +_080A33D4: .4byte 0x0000ffff +_080A33D8: .4byte gUnknown_03005D10 +_080A33DC: .4byte gUnknown_02038559 +_080A33E0: .4byte gUnknown_03005D24 +_080A33E4: .4byte gUnknown_0203855B +_080A33E8: .4byte gUnknown_0203855C +_080A33EC: .4byte gMain +_080A33F0: .4byte 0x0000043c +_080A33F4: + bl sub_80A7B10 + movs r0, 0 + bl sub_80A7C20 + bl sub_80A3740 + b _080A3464 +_080A3404: + ldr r3, _080A3444 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _080A3448 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _080A344C + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _080A3450 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r1, _080A3454 + ldr r0, _080A3458 + adds r1, r0 + b _080A346A + .align 2, 0 +_080A3444: .4byte 0x04000208 +_080A3448: .4byte 0x04000200 +_080A344C: .4byte REG_DISPSTAT +_080A3450: .4byte gPaletteFade +_080A3454: .4byte gMain +_080A3458: .4byte 0x0000043c +_080A345C: + bl sub_8055870 + cmp r0, 0x1 + beq _080A34A8 +_080A3464: + ldr r1, _080A3474 + ldr r2, _080A3478 + adds r1, r2 +_080A346A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080A34A8 + .align 2, 0 +_080A3474: .4byte gMain +_080A3478: .4byte 0x0000043c +_080A347C: + ldr r0, _080A34A0 + bl SetVBlankCallback + ldr r0, _080A34A4 + bl SetMainCallback2 + bl sub_80A751C + bl sub_80A7630 + bl sub_80A770C + bl sub_80A7828 + bl sub_80A78B8 + movs r0, 0x1 + b _080A34AA + .align 2, 0 +_080A34A0: .4byte sub_80A3134 +_080A34A4: .4byte sub_80A3118 +_080A34A8: + movs r0, 0 +_080A34AA: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A317C + + thumb_func_start sub_80A34B4 +sub_80A34B4: @ 80A34B4 + push {lr} +_080A34B6: + bl sub_80A317C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A34D2 + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A34B6 + movs r0, 0 + b _080A34DE +_080A34D2: + ldr r1, _080A34E4 + movs r0, 0 + strb r0, [r1] + bl ResetTasks + movs r0, 0x1 +_080A34DE: + pop {r1} + bx r1 + .align 2, 0 +_080A34E4: .4byte gUnknown_03000700 + thumb_func_end sub_80A34B4 + + thumb_func_start sub_80A34E8 +sub_80A34E8: @ 80A34E8 + push {lr} + bl sub_80F9368 + ldr r1, _080A3514 + ldr r2, _080A3518 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080A351C + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x50 + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A3514: .4byte REG_BG2CNT +_080A3518: .4byte 0x00000c06 +_080A351C: .4byte 0x00000405 + thumb_func_end sub_80A34E8 + + thumb_func_start sub_80A3520 +sub_80A3520: @ 80A3520 + push {lr} + ldr r0, _080A353C + ldr r1, _080A3540 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bls _080A3530 + b _080A3624 +_080A3530: + lsls r0, 2 + ldr r1, _080A3544 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A353C: .4byte 0x02000000 +_080A3540: .4byte 0x0001ffff +_080A3544: .4byte _080A3548 + .align 2, 0 +_080A3548: + .4byte _080A355C + .4byte _080A3570 + .4byte _080A3588 + .4byte _080A35C0 + .4byte _080A3604 +_080A355C: + ldr r0, _080A3568 + ldr r1, _080A356C + bl LZDecompressVram + b _080A35EA + .align 2, 0 +_080A3568: .4byte gBagScreen_Gfx +_080A356C: .4byte 0x06004000 +_080A3570: + ldr r0, _080A3580 + ldr r1, _080A3584 + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + b _080A35EA + .align 2, 0 +_080A3580: .4byte gUnknown_08E77004 +_080A3584: .4byte gBG2TilemapBuffer +_080A3588: + ldr r0, _080A35A4 + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _080A3598 + ldr r0, _080A35A8 + ldrb r0, [r0] + cmp r0, 0x7 + bne _080A35B0 +_080A3598: + ldr r0, _080A35AC + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + b _080A35EA + .align 2, 0 +_080A35A4: .4byte gSaveBlock2 +_080A35A8: .4byte gUnknown_03000701 +_080A35AC: .4byte gBagScreenMale_Pal +_080A35B0: + ldr r0, _080A35BC + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + b _080A35EA + .align 2, 0 +_080A35BC: .4byte gBagScreenFemale_Pal +_080A35C0: + ldr r0, _080A35D8 + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _080A35D0 + ldr r0, _080A35DC + ldrb r0, [r0] + cmp r0, 0x7 + bne _080A35E4 +_080A35D0: + ldr r0, _080A35E0 + bl LoadCompressedObjectPic + b _080A35EA + .align 2, 0 +_080A35D8: .4byte gSaveBlock2 +_080A35DC: .4byte gUnknown_03000701 +_080A35E0: .4byte gUnknown_083C1CC8 +_080A35E4: + ldr r0, _080A35F8 + bl LoadCompressedObjectPic +_080A35EA: + ldr r1, _080A35FC + ldr r0, _080A3600 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080A3624 + .align 2, 0 +_080A35F8: .4byte gUnknown_083C1CD0 +_080A35FC: .4byte 0x02000000 +_080A3600: .4byte 0x0001ffff +_080A3604: + ldr r0, _080A3618 + bl LoadCompressedObjectPalette + ldr r0, _080A361C + ldr r1, _080A3620 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _080A3626 + .align 2, 0 +_080A3618: .4byte gUnknown_083C1CD8 +_080A361C: .4byte 0x02000000 +_080A3620: .4byte 0x0001ffff +_080A3624: + movs r0, 0 +_080A3626: + pop {r1} + bx r1 + thumb_func_end sub_80A3520 + + thumb_func_start sub_80A362C +sub_80A362C: @ 80A362C + push {r4-r6,lr} + movs r4, 0 + ldr r6, _080A3648 + ldr r5, _080A364C +_080A3634: + ldrb r0, [r6] + cmp r0, 0x5 + bne _080A3650 + lsls r1, r4, 2 + adds r0, r1, r5 + ldrb r0, [r0, 0x2] + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + b _080A3656 + .align 2, 0 +_080A3648: .4byte gUnknown_03000701 +_080A364C: .4byte gUnknown_03005D10 +_080A3650: + lsls r1, r4, 2 + adds r0, r1, r5 + ldrb r3, [r0, 0x2] +_080A3656: + adds r1, r5 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _080A366C + ldrb r2, [r1, 0x3] + adds r0, r2 + cmp r0, r3 + ble _080A3674 + subs r0, r3, r2 + strb r0, [r1, 0x1] + b _080A3674 +_080A366C: + ldrb r0, [r1] + cmp r0, r3 + bls _080A3674 + strb r3, [r1] +_080A3674: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _080A3634 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A362C + + thumb_func_start sub_80A3684 +sub_80A3684: @ 80A3684 + push {r4,lr} + movs r2, 0 + ldr r4, _080A36B0 + ldr r3, _080A36B4 + movs r1, 0 +_080A368E: + lsls r0, r2, 2 + adds r0, r3 + strb r1, [r0] + strb r1, [r0, 0x1] + strb r1, [r0, 0x2] + strb r1, [r0, 0x3] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _080A368E + movs r0, 0 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A36B0: .4byte gUnknown_02038559 +_080A36B4: .4byte gUnknown_03005D10 + thumb_func_end sub_80A3684 + + thumb_func_start sub_80A36B8 +sub_80A36B8: @ 80A36B8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r0, [sp, 0x18] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + lsls r0, 24 + lsrs r0, 24 + lsrs r2, 24 + adds r0, r2, r0 + cmp r2, r0 + bgt _080A370A + adds r7, r0, 0 +_080A36DE: + mov r1, r8 + mov r3, r12 + adds r0, r1, r3 + adds r4, r2, 0x1 + cmp r1, r0 + bgt _080A3702 + lsls r3, r2, 5 + movs r5, 0 + adds r2, r0, 0 +_080A36F0: + adds r0, r1, r3 + lsls r0, 1 + adds r0, r6 + strh r5, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + ble _080A36F0 +_080A3702: + lsls r0, r4, 16 + lsrs r2, r0, 16 + cmp r2, r7 + ble _080A36DE +_080A370A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A36B8 + + thumb_func_start sub_80A3714 +sub_80A3714: @ 80A3714 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080A373C +_080A371A: + lsls r1, r4, 3 + adds r1, r5 + ldr r0, [r1] + ldrb r1, [r1, 0x4] + bl sub_80A9684 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080A371A + bl sub_80A3684 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A373C: .4byte gUnknown_083C1618 + thumb_func_end sub_80A3714 + + thumb_func_start sub_80A3740 +sub_80A3740: @ 80A3740 + push {lr} + sub sp, 0x4 + ldr r1, _080A376C + mov r0, sp + movs r2, 0x4 + bl memcpy + mov r0, sp + adds r0, 0x2 + movs r1, 0xD1 + movs r2, 0x2 + bl LoadPalette + mov r0, sp + movs r1, 0xD8 + movs r2, 0x2 + bl LoadPalette + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080A376C: .4byte gUnknown_083C1704 + thumb_func_end sub_80A3740 + + thumb_func_start sub_80A3770 +sub_80A3770: @ 80A3770 + push {lr} + ldr r0, _080A379C + ldrb r0, [r0] + cmp r0, 0 + bne _080A37B6 + ldr r3, _080A37A0 + ldr r2, _080A37A4 + movs r1, 0 + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldr r1, _080A37A8 + adds r0, r1 + str r0, [r3] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x3 + beq _080A37B0 + ldr r1, _080A37AC + movs r0, 0x4 + b _080A37B4 + .align 2, 0 +_080A379C: .4byte gUnknown_03000701 +_080A37A0: .4byte gUnknown_03000704 +_080A37A4: .4byte gUnknown_02038559 +_080A37A8: .4byte gUnknown_083C1690 +_080A37AC: .4byte gUnknown_02038564 +_080A37B0: + ldr r1, _080A37BC + movs r0, 0x6 +_080A37B4: + strb r0, [r1] +_080A37B6: + pop {r0} + bx r0 + .align 2, 0 +_080A37BC: .4byte gUnknown_02038564 + thumb_func_end sub_80A3770 + + thumb_func_start sub_80A37C0 +sub_80A37C0: @ 80A37C0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A37F0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080A37F4 + str r0, [r1] + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + movs r0, 0x2 + bl sub_80F98DC + movs r0, 0x3 + bl sub_80F98DC + pop {r0} + bx r0 + .align 2, 0 +_080A37F0: .4byte gTasks +_080A37F4: .4byte sub_80A50C8 + thumb_func_end sub_80A37C0 + + thumb_func_start sub_80A37F8 +sub_80A37F8: @ 80A37F8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, _080A3854 + ldrb r5, [r6] + cmp r5, 0xF + bhi _080A3868 + adds r0, r5, 0x1 + strb r0, [r6] + ldr r4, _080A3858 + ldrb r2, [r6] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x4F + bl sub_80A396C + ldr r0, _080A385C + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6] + lsrs r2, 1 + ldr r3, _080A3860 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r3 + movs r3, 0x12 + ldrsb r3, [r0, r3] + adds r0, r4, 0 + bl sub_80A39E4 + ldr r4, _080A3864 + movs r0, 0x1 + strb r0, [r4] + lsrs r1, r5, 1 + ldrb r2, [r6] + lsrs r2, 1 + subs r2, 0x1 + adds r0, r7, 0 + bl sub_80A48E8 + movs r0, 0 + strb r0, [r4] + b _080A3932 + .align 2, 0 +_080A3854: .4byte gUnknown_0203855A +_080A3858: .4byte gBG2TilemapBuffer +_080A385C: .4byte gUnknown_02038559 +_080A3860: .4byte gTasks +_080A3864: .4byte gUnknown_02038558 +_080A3868: + ldr r0, _080A38A0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A38B4 + ldr r1, _080A38A4 + ldr r0, _080A38A8 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + ldr r0, _080A38AC + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + ldr r4, _080A38B0 + ldrb r1, [r4] + bl sub_80A49AC + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080A38F2 + .align 2, 0 +_080A38A0: .4byte gLinkOpen +_080A38A4: .4byte gUnknown_03005D10 +_080A38A8: .4byte gUnknown_02038559 +_080A38AC: .4byte gUnknown_03005D24 +_080A38B0: .4byte gUnknown_02038562 +_080A38B4: + ldr r1, _080A3938 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _080A38F2 + ldr r5, _080A393C + adds r4, r1, 0 +_080A38C0: + ldr r0, _080A3940 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + ldr r0, _080A3944 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + ldrb r1, [r4] + bl sub_80A49AC + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bls _080A38C0 +_080A38F2: + ldr r0, _080A3938 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080A3932 + ldr r1, _080A3948 + movs r0, 0x10 + strb r0, [r1] + ldr r1, _080A394C + ldr r0, _080A3940 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _080A3950 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl sub_80A37C0 + adds r0, r7, 0 + bl DestroyTask + bl sub_80A736C + movs r0, 0x2 + movs r1, 0 + bl sub_80F979C + movs r0, 0x3 + movs r1, 0 + bl sub_80F979C +_080A3932: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3938: .4byte gUnknown_02038562 +_080A393C: .4byte gUnknown_03005D10 +_080A3940: .4byte gUnknown_02038559 +_080A3944: .4byte gUnknown_03005D24 +_080A3948: .4byte gUnknown_0203855A +_080A394C: .4byte gUnknown_0203855B +_080A3950: .4byte sub_80A4F68 + thumb_func_end sub_80A37F8 + + thumb_func_start sub_80A3954 +sub_80A3954: @ 80A3954 + push {lr} + adds r1, r0, 0 + ldr r0, _080A3968 + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + pop {r0} + bx r0 + .align 2, 0 +_080A3968: .4byte gUnknown_08E77004 + thumb_func_end sub_80A3954 + + thumb_func_start sub_80A396C +sub_80A396C: @ 80A396C + push {r4-r7,lr} + lsls r1, 24 + lsrs r5, r1, 24 + adds r4, r5, 0 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + adds r1, r4, 0x2 + lsls r1, 6 + adds r1, 0x1C + adds r2, r0, r1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r7, r4 + bls _080A39B2 +_080A398E: + movs r1, 0 + adds r3, r5, 0x1 + adds r4, r2, 0 + adds r4, 0x40 +_080A3996: + lsls r0, r1, 1 + adds r0, r2 + strh r6, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xE + bls _080A3996 + adds r2, r4, 0 + adds r1, r5, 0 + lsls r0, r3, 24 + lsrs r5, r0, 24 + cmp r7, r1 + bhi _080A398E +_080A39B2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A396C + + thumb_func_start sub_80A39B8 +sub_80A39B8: @ 80A39B8 + push {lr} + sub sp, 0x10 + lsls r1, 25 + lsrs r1, 24 + ldr r3, _080A39E0 + movs r2, 0 + str r2, [sp] + str r1, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x4 + movs r2, 0xA + bl sub_809D104 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080A39E0: .4byte gUnknown_08E96EC8 + thumb_func_end sub_80A39B8 + + thumb_func_start sub_80A39E4 +sub_80A39E4: @ 80A39E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + adds r4, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + adds r5, r6, 0 + lsls r2, r1, 1 + mov r9, r2 + lsls r3, 24 + asrs r3, 24 + movs r0, 0x1 + negs r0, r0 + cmp r3, r0 + bne _080A3A5C + adds r0, r1, 0x1 + lsls r7, r0, 1 + cmp r1, 0x5 + bne _080A3A18 + movs r7, 0x2 +_080A3A18: + ldr r0, _080A3A58 + mov r10, r0 + movs r4, 0x8 + subs r4, r6 + lsls r4, 16 + lsrs r4, 16 + str r4, [sp] + str r2, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x2 + mov r9, r0 + str r0, [sp, 0xC] + mov r0, r8 + movs r1, 0x4 + movs r2, 0xA + mov r3, r10 + bl sub_809D104 + adds r1, r6, 0x4 + movs r0, 0 + str r0, [sp] + str r7, [sp, 0x4] + str r4, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + mov r0, r8 + movs r2, 0xA + mov r3, r10 + bl sub_809D104 + b _080A3AAA + .align 2, 0 +_080A3A58: .4byte gUnknown_08E96EC8 +_080A3A5C: + cmp r3, 0x1 + bne _080A3AAA + subs r0, r4, 0x1 + lsls r0, 17 + lsrs r7, r0, 16 + cmp r4, 0x1 + bne _080A3A6C + movs r7, 0xA +_080A3A6C: + ldr r6, _080A3ABC + str r5, [sp] + str r7, [sp, 0x4] + movs r0, 0x8 + subs r0, r5 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + movs r4, 0x2 + str r4, [sp, 0xC] + mov r0, r8 + movs r1, 0x4 + movs r2, 0xA + adds r3, r6, 0 + bl sub_809D104 + movs r1, 0xC + subs r1, r5 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + str r0, [sp] + mov r0, r9 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + str r4, [sp, 0xC] + mov r0, r8 + movs r2, 0xA + adds r3, r6, 0 + bl sub_809D104 +_080A3AAA: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3ABC: .4byte gUnknown_08E96EC8 + thumb_func_end sub_80A39E4 + + thumb_func_start sub_80A3AC0 +sub_80A3AC0: @ 80A3AC0 + push {r4-r6,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + movs r2, 0 + ldr r1, _080A3AE4 + ldr r0, _080A3AE8 + adds r6, r0, 0 + subs r0, 0x1 + adds r5, r0, 0 +_080A3AD4: + cmp r2, r4 + bne _080A3AEC + lsls r0, r2, 1 + adds r0, r3 + adds r0, r1 + strh r6, [r0] + b _080A3AF4 + .align 2, 0 +_080A3AE4: .4byte 0x0000024a +_080A3AE8: .4byte 0x0000107d +_080A3AEC: + lsls r0, r2, 1 + adds r0, r3 + adds r0, r1 + strh r5, [r0] +_080A3AF4: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x4 + bls _080A3AD4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A3AC0 + + thumb_func_start sub_80A3B04 +sub_80A3B04: @ 80A3B04 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080A3BA4 + ldrb r0, [r4] + lsls r1, 24 + asrs r6, r1, 24 + adds r0, r6, r0 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + ble _080A3B20 + movs r0, 0 + strb r0, [r4] +_080A3B20: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bge _080A3B2C + movs r0, 0x4 + strb r0, [r4] +_080A3B2C: + bl sub_80A76A0 + bl sub_80A7590 + ldr r2, _080A3BA8 + ldr r1, _080A3BAC + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldrb r0, [r4] + bl sub_80A3D24 + ldr r0, _080A3BB0 + movs r4, 0 + strb r4, [r0] + adds r0, r5, 0 + bl sub_80A3954 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0x3 + bl sub_80A396C + adds r0, r5, 0 + movs r1, 0 + bl sub_80A39B8 + ldr r1, _080A3BB4 + movs r0, 0x6 + strb r0, [r1] + ldr r0, _080A3BB8 + strb r4, [r0] + ldr r4, _080A3BBC + adds r0, r4, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _080A3B90 + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 +_080A3B90: + ldr r1, _080A3BC0 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x12] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3BA4: .4byte gUnknown_02038559 +_080A3BA8: .4byte gUnknown_03005D24 +_080A3BAC: .4byte gUnknown_083C1618 +_080A3BB0: .4byte gUnknown_0203855A +_080A3BB4: .4byte gUnknown_0203855B +_080A3BB8: .4byte gUnknown_02038562 +_080A3BBC: .4byte sub_80A37F8 +_080A3BC0: .4byte gTasks + thumb_func_end sub_80A3B04 + + thumb_func_start swap32 +swap32: @ 80A3BC4 + ldr r3, [r0] + ldr r2, [r1] + str r2, [r0] + str r3, [r1] + bx lr + thumb_func_end swap32 + + thumb_func_start sub_80A3BD0 +sub_80A3BD0: @ 80A3BD0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r7, r1, 0 + adds r6, r0, 0 + movs r3, 0 + b _080A3C1A +_080A3BE0: + adds r0, r3, 0x1 + lsls r1, r0, 16 + lsrs r4, r1, 16 + lsls r1, r2, 24 + lsrs r1, 24 + mov r8, r0 + cmp r4, r1 + bcs _080A3C14 + lsls r0, r3, 2 + adds r5, r0, r6 + adds r2, r1, 0 +_080A3BF6: + ldrh r0, [r5, 0x2] + cmp r0, 0 + bne _080A3C0A + lsls r1, r4, 2 + adds r1, r6 + adds r0, r5, 0 + str r2, [sp] + bl swap32 + ldr r2, [sp] +_080A3C0A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r2 + bcc _080A3BF6 +_080A3C14: + mov r1, r8 + lsls r0, r1, 16 + lsrs r3, r0, 16 +_080A3C1A: + adds r2, r7, 0 + lsls r0, r2, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r3, r0 + blt _080A3BE0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A3BD0 + + thumb_func_start sub_80A3C34 +sub_80A3C34: @ 80A3C34 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r7, r1, 0 + adds r6, r0, 0 + adds r2, r7, 0 + lsls r0, r2, 24 + movs r3, 0 + cmp r0, 0 + beq _080A3C9C +_080A3C4A: + adds r0, r3, 0x1 + lsls r1, r0, 16 + lsrs r4, r1, 16 + lsls r1, r2, 24 + lsrs r1, 24 + mov r8, r0 + cmp r4, r1 + bcs _080A3C8C + lsls r0, r3, 2 + adds r5, r0, r6 + adds r2, r1, 0 +_080A3C60: + ldrh r0, [r5, 0x2] + cmp r0, 0 + beq _080A3C82 + lsls r0, r4, 2 + adds r1, r0, r6 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _080A3C82 + ldrh r0, [r5] + ldrh r3, [r1] + cmp r0, r3 + bls _080A3C82 + adds r0, r5, 0 + str r2, [sp] + bl swap32 + ldr r2, [sp] +_080A3C82: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r2 + bcc _080A3C60 +_080A3C8C: + mov r1, r8 + lsls r0, r1, 16 + lsrs r3, r0, 16 + adds r2, r7, 0 + lsls r0, r2, 24 + lsrs r0, 24 + cmp r3, r0 + bcc _080A3C4A +_080A3C9C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A3C34 + + thumb_func_start sub_80A3CA8 +sub_80A3CA8: @ 80A3CA8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A3D00 + lsls r0, r6, 2 + adds r3, r0, r1 + movs r0, 0 + strb r0, [r3, 0x2] + movs r4, 0 + ldr r0, _080A3D04 + lsls r2, r6, 3 + adds r1, r2, r0 + mov r12, r0 + ldrb r1, [r1, 0x4] + cmp r4, r1 + bcs _080A3CEC + mov r7, r12 + adds r5, r3, 0 +_080A3CCC: + adds r3, r2, r7 + ldr r0, [r3] + lsls r1, r4, 2 + adds r1, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _080A3CE0 + ldrb r0, [r5, 0x2] + adds r0, 0x1 + strb r0, [r5, 0x2] +_080A3CE0: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r3, [r3, 0x4] + cmp r4, r3 + bcc _080A3CCC +_080A3CEC: + lsls r0, r6, 3 + add r0, r12 + ldr r1, [r0, 0x4] + ldr r0, [r0] + bl sub_80A3BD0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3D00: .4byte gUnknown_03005D10 +_080A3D04: .4byte gUnknown_083C1618 + thumb_func_end sub_80A3CA8 + + thumb_func_start sub_80A3D08 +sub_80A3D08: @ 80A3D08 + push {r4,lr} + movs r4, 0 +_080A3D0C: + adds r0, r4, 0 + bl sub_80A3CA8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _080A3D0C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A3D08 + + thumb_func_start sub_80A3D24 +sub_80A3D24: @ 80A3D24 + push {lr} + lsls r0, 24 + ldr r1, _080A3D3C + lsrs r0, 22 + adds r1, r0, r1 + ldrb r0, [r1, 0x2] + cmp r0, 0x6 + bls _080A3D36 + movs r0, 0x7 +_080A3D36: + strb r0, [r1, 0x3] + pop {r0} + bx r0 + .align 2, 0 +_080A3D3C: .4byte gUnknown_03005D10 + thumb_func_end sub_80A3D24 + + thumb_func_start sub_80A3D40 +sub_80A3D40: @ 80A3D40 + push {r4,lr} + movs r4, 0 +_080A3D44: + adds r0, r4, 0 + bl sub_80A3D24 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _080A3D44 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A3D40 + + thumb_func_start sub_80A3D5C +sub_80A3D5C: @ 80A3D5C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A3DF4 + mov r9, r1 + ldr r2, _080A3DF8 + mov r8, r2 + movs r1, 0 + ldrsb r1, [r2, r1] + lsls r1, 2 + add r1, r9 + ldrb r2, [r1, 0x1] + ldrb r1, [r1] + adds r2, r1 + ldr r7, _080A3DFC + ldr r1, [r7] + lsls r6, r2, 2 + adds r3, r6, r1 + ldr r2, _080A3E00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r3, 0x2] + ldrh r1, [r1, 0xA] + subs r0, r1 + strh r0, [r3, 0x2] + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + bne _080A3DE0 + ldr r0, _080A3E04 + ldr r1, _080A3E08 + adds r5, r0, r1 + ldrh r0, [r5] + ldrh r3, [r3] + cmp r0, r3 + bne _080A3DB4 + bl sub_80A40D0 + strh r4, [r5] +_080A3DB4: + ldr r0, [r7] + adds r0, r6, r0 + strh r4, [r0] + mov r2, r8 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + mov r3, r9 + adds r2, r0, r3 + ldrb r1, [r2, 0x1] + adds r0, r1, 0x7 + ldrb r3, [r2, 0x2] + cmp r0, r3 + bne _080A3DD8 + cmp r1, 0 + beq _080A3DD8 + subs r0, r1, 0x1 + strb r0, [r2, 0x1] +_080A3DD8: + ldr r0, _080A3DF8 + ldrb r0, [r0] + bl sub_80A3CA8 +_080A3DE0: + ldr r0, _080A3DF8 + ldrb r0, [r0] + bl sub_80A3D24 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3DF4: .4byte gUnknown_03005D10 +_080A3DF8: .4byte gUnknown_02038559 +_080A3DFC: .4byte gUnknown_03005D24 +_080A3E00: .4byte gTasks +_080A3E04: .4byte gSaveBlock1 +_080A3E08: .4byte 0x00000496 + thumb_func_end sub_80A3D5C + + thumb_func_start sub_80A3E0C +sub_80A3E0C: @ 80A3E0C + push {lr} + ldr r3, _080A3E60 + ldr r2, _080A3E64 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + ldr r0, _080A3E68 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A3E52 + strh r0, [r1] + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r2, r0, r3 + ldrb r1, [r2, 0x1] + adds r0, r1, 0x7 + ldrb r3, [r2, 0x2] + cmp r0, r3 + bne _080A3E4A + cmp r1, 0 + beq _080A3E4A + subs r0, r1, 0x1 + strb r0, [r2, 0x1] +_080A3E4A: + ldr r0, _080A3E64 + ldrb r0, [r0] + bl sub_80A3CA8 +_080A3E52: + ldr r0, _080A3E64 + ldrb r0, [r0] + bl sub_80A3D24 + pop {r0} + bx r0 + .align 2, 0 +_080A3E60: .4byte gUnknown_03005D10 +_080A3E64: .4byte gUnknown_02038559 +_080A3E68: .4byte gUnknown_03005D24 + thumb_func_end sub_80A3E0C + + thumb_func_start nullsub_16 +nullsub_16: @ 80A3E6C + bx lr + thumb_func_end nullsub_16 + + thumb_func_start sub_80A3E70 +sub_80A3E70: @ 80A3E70 + lsls r0, 24 + lsls r1, 24 + ldr r2, _080A3E8C + ldr r2, [r2] + lsrs r0, 22 + adds r0, r2 + ldr r3, [r0] + lsrs r1, 22 + adds r1, r2 + ldr r2, [r1] + str r2, [r0] + str r3, [r1] + bx lr + .align 2, 0 +_080A3E8C: .4byte gUnknown_03005D24 + thumb_func_end sub_80A3E70 + + thumb_func_start sub_80A3E90 +sub_80A3E90: @ 80A3E90 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + bl nullsub_16 + ldr r0, _080A3EE8 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + ldrb r0, [r5, 0x1C] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080A3EEC + ldr r1, _080A3EF0 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r2, 2 + adds r2, r3 + ldrb r1, [r2, 0x1] + ldrb r2, [r2] + adds r1, r2 + lsls r1, 24 + lsrs r1, 24 + bl sub_80A3E70 + movs r0, 0 + strh r0, [r5, 0x1C] + bl sub_80A763C + movs r0, 0 + bl sub_80A7528 + bl sub_80A736C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A3EE8: .4byte gTasks +_080A3EEC: .4byte gUnknown_03005D10 +_080A3EF0: .4byte gUnknown_02038559 + thumb_func_end sub_80A3E90 + + thumb_func_start sub_80A3EF4 +sub_80A3EF4: @ 80A3EF4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x5 + bl PlaySE + bl nullsub_16 + ldr r0, _080A3F44 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r2, _080A3F48 + ldr r0, _080A3F4C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + mvns r0, r0 + ldrb r2, [r1, 0x1C] + adds r0, r2 + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0 + strh r0, [r1, 0x1C] + cmp r2, 0x7 + bhi _080A3F38 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 +_080A3F38: + movs r0, 0 + bl sub_80A7528 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A3F44: .4byte gTasks +_080A3F48: .4byte gUnknown_03005D10 +_080A3F4C: .4byte gUnknown_02038559 + thumb_func_end sub_80A3EF4 + + thumb_func_start sub_80A3F50 +sub_80A3F50: @ 80A3F50 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A3F94 + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + adds r3, r1 + ldr r5, _080A3F98 + ldr r4, _080A3F9C + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + ldrb r1, [r1] + adds r2, r1 + adds r2, 0x1 + strh r2, [r3, 0x1C] + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1] + adds r1, r2, 0 + bl sub_80A48E8 + movs r0, 0x1 + bl sub_80A7528 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A3F94: .4byte gTasks +_080A3F98: .4byte gUnknown_03005D10 +_080A3F9C: .4byte gUnknown_02038559 + thumb_func_end sub_80A3F50 + + thumb_func_start sub_80A3FA0 +sub_80A3FA0: @ 80A3FA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + ldr r0, [sp, 0x18] + ldr r4, [sp, 0x1C] + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r6, r4, 16 + lsrs r2, 24 + adds r0, r2, r0 + cmp r2, r0 + bge _080A3FFC + mov r8, r5 + adds r4, r5, r3 + mov r12, r0 +_080A3FCC: + adds r0, r5, 0 + lsls r3, r2, 16 + cmp r8, r4 + bge _080A3FEE + asrs r2, r3, 11 +_080A3FD6: + lsls r1, r0, 16 + asrs r1, 16 + adds r0, r1, r2 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + asrs r1, 16 + cmp r1, r4 + blt _080A3FD6 +_080A3FEE: + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, r12 + blt _080A3FCC +_080A3FFC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A3FA0 + + thumb_func_start sub_80A4008 +sub_80A4008: @ 80A4008 + push {r4,lr} + sub sp, 0x8 + ldr r4, [sp, 0x10] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + bl sub_80A3FA0 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4008 + + thumb_func_start sub_80A4030 +sub_80A4030: @ 80A4030 + ldr r1, _080A4058 + lsls r0, 7 + adds r1, r0, r1 + movs r0, 0x5A + strh r0, [r1] + movs r0, 0x5B + strh r0, [r1, 0x2] + movs r0, 0x5C + strh r0, [r1, 0x4] + adds r2, r1, 0 + adds r2, 0x40 + movs r0, 0x6A + strh r0, [r2] + adds r2, 0x2 + movs r0, 0x6B + strh r0, [r2] + adds r1, 0x44 + movs r0, 0x6C + strh r0, [r1] + bx lr + .align 2, 0 +_080A4058: .4byte gBG2TilemapBuffer + 0xB4 + thumb_func_end sub_80A4030 + + thumb_func_start sub_80A405C +sub_80A405C: @ 80A405C + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080A40A8 + movs r0, 0 + adds r4, r2, 0 + movs r1, 0x4F +_080A406A: + strh r1, [r2] + strh r1, [r2, 0x2] + strh r1, [r2, 0x4] + adds r2, 0x40 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xF + bls _080A406A + lsls r0, r3, 7 + adds r2, r0, r4 + movs r0, 0x5A + strh r0, [r2] + movs r0, 0x5B + strh r0, [r2, 0x2] + movs r0, 0x5C + strh r0, [r2, 0x4] + adds r1, r2, 0 + adds r1, 0x40 + movs r0, 0x6A + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6B + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6C + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A40A8: .4byte gBG2TilemapBuffer + 0xB4 + thumb_func_end sub_80A405C + + thumb_func_start sub_80A40AC +sub_80A40AC: @ 80A40AC + lsls r0, 24 + ldr r1, _080A40CC + lsrs r0, 17 + adds r1, r0, r1 + movs r2, 0x4F + strh r2, [r1] + strh r2, [r1, 0x2] + strh r2, [r1, 0x4] + adds r0, r1, 0 + adds r0, 0x40 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r1, 0x44 + strh r2, [r1] + bx lr + .align 2, 0 +_080A40CC: .4byte gBG2TilemapBuffer + 0xB4 + thumb_func_end sub_80A40AC + + thumb_func_start sub_80A40D0 +sub_80A40D0: @ 80A40D0 + push {r4-r7,lr} + movs r4, 0 + ldr r2, _080A4114 + ldr r3, _080A4118 + movs r0, 0 + ldrsb r0, [r3, r0] + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + adds r7, r2, 0 + adds r6, r3, 0 + ldrb r0, [r0, 0x2] + cmp r1, r0 + beq _080A4136 + ldr r5, _080A411C +_080A40EE: + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r0, 2 + adds r3, r0, r7 + ldrb r2, [r3, 0x1] + adds r1, r2, r4 + ldr r0, _080A4120 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1] + ldrh r1, [r5] + cmp r0, r1 + bne _080A4124 + adds r0, r4, 0 + bl sub_80A40AC + b _080A4136 + .align 2, 0 +_080A4114: .4byte gUnknown_03005D10 +_080A4118: .4byte gUnknown_02038559 +_080A411C: .4byte gSaveBlock1 + 0x496 +_080A4120: .4byte gUnknown_03005D24 +_080A4124: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bhi _080A4136 + adds r0, r2, r4 + ldrb r3, [r3, 0x2] + cmp r0, r3 + bne _080A40EE +_080A4136: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A40D0 + + thumb_func_start sub_80A413C +sub_80A413C: @ 80A413C + push {lr} + bl sub_80A40D0 + ldr r1, _080A415C + ldr r0, _080A4160 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + bl sub_80A405C + pop {r0} + bx r0 + .align 2, 0 +_080A415C: .4byte gUnknown_03005D10 +_080A4160: .4byte gUnknown_02038559 + thumb_func_end sub_80A413C + + thumb_func_start sub_80A4164 +sub_80A4164: @ 80A4164 + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0xB9 + strb r4, [r0] + adds r0, 0x1 + movs r4, 0xFC + strb r4, [r0] + movs r4, 0x14 + strb r4, [r0, 0x1] + movs r4, 0x6 + strb r4, [r0, 0x2] + adds r0, 0x3 + bl ConvertIntToDecimalStringN + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4164 + + thumb_func_start sub_80A418C +sub_80A418C: @ 80A418C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r4, r0, 0 + mov r9, r1 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x18] + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _080A41D0 + mov r8, r0 + adds r1, r4, 0 + mov r2, r9 + bl sub_80A4164 + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A41D0: .4byte gStringVar1 + thumb_func_end sub_80A418C + + thumb_func_start sub_80A41D4 +sub_80A41D4: @ 80A41D4 + push {lr} + bl sub_80A763C + pop {r0} + bx r0 + thumb_func_end sub_80A41D4 + + thumb_func_start sub_80A41E0 +sub_80A41E0: @ 80A41E0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + mov r9, r2 + adds r5, r3, 0 + ldr r4, [sp, 0x1C] + lsls r1, 16 + lsrs r1, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xFC + mov r8, r0 + strb r0, [r7] + movs r6, 0x13 + strb r6, [r7, 0x1] + movs r0, 0x8 + strb r0, [r7, 0x2] + adds r7, 0x3 + adds r0, r7, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r1, r8 + strb r1, [r0] + strb r6, [r0, 0x1] + movs r1, 0x18 + strb r1, [r0, 0x2] + adds r7, r0, 0x3 + adds r4, 0x1 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 1 + movs r2, 0x78 + subs r2, r0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r7, 0 + mov r1, r9 + movs r3, 0 + bl sub_8072C74 + movs r1, 0xB9 + strb r1, [r0] + adds r7, r0, 0x1 + adds r0, r7, 0 + adds r1, r5, 0 + movs r2, 0x78 + movs r3, 0x1 + bl sub_8072C14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A41E0 + + thumb_func_start sub_80A425C +sub_80A425C: @ 80A425C + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080A42A4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r0, 0x1C + ldrsh r1, [r1, r0] + ldr r3, _080A42A8 + ldr r0, _080A42AC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x1] + subs r1, r0 + subs r1, 0x1 + cmp r1, r2 + bne _080A429C + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + movs r0, 0x2 + strb r0, [r4, 0x2] + adds r4, 0x3 +_080A429C: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A42A4: .4byte gTasks +_080A42A8: .4byte gUnknown_03005D10 +_080A42AC: .4byte gUnknown_02038559 + thumb_func_end sub_80A425C + + thumb_func_start sub_80A42B0 +sub_80A42B0: @ 80A42B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r1, 0 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r0, _080A4344 + mov r8, r0 + ldr r1, _080A4348 + ldr r0, _080A434C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + adds r1, r6 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bgt _080A4370 + cmp r1, r0 + bne _080A4374 + ldr r0, _080A4350 + ldrb r0, [r0] + cmp r0, 0x5 + beq _080A4370 + lsls r0, r6, 25 + movs r1, 0x80 + lsls r1, 18 + adds r0, r1 + lsrs r5, r0, 24 + ldr r4, _080A4354 + ldr r1, _080A4358 + adds r0, r4, 0 + movs r2, 0x78 + movs r3, 0 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0xE + adds r2, r5, 0 + bl MenuPrint + lsls r0, r5, 6 + ldr r1, _080A435C + adds r0, r1 + movs r2, 0x4F + strh r2, [r0] + strh r2, [r0, 0x2] + adds r1, r0, 0 + adds r1, 0x40 + strh r2, [r1] + adds r0, 0x42 + strh r2, [r0] + cmp r6, 0x7 + beq _080A4370 + cmp r7, 0x1 + bne _080A432E + mov r1, r8 + ldrb r0, [r1, 0x2] + cmp r0, 0 + bne _080A4332 +_080A432E: + cmp r7, 0x2 + bne _080A4360 +_080A4332: + adds r1, r5, 0x2 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1D + movs r3, 0xD + bl MenuFillWindowRectWithBlankTile + b _080A4370 + .align 2, 0 +_080A4344: .4byte gUnknown_02038540 +_080A4348: .4byte gUnknown_03005D10 +_080A434C: .4byte gUnknown_02038559 +_080A4350: .4byte gUnknown_03000701 +_080A4354: .4byte gStringVar1 +_080A4358: .4byte gOtherText_CloseBag +_080A435C: .4byte gBG2TilemapBuffer + 0x1C +_080A4360: + adds r1, r5, 0x2 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1D + movs r3, 0x11 + bl MenuFillWindowRectWithBlankTile +_080A4370: + movs r0, 0x1 + b _080A4376 +_080A4374: + movs r0, 0 +_080A4376: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A42B0 + + thumb_func_start sub_80A4380 +sub_80A4380: @ 80A4380 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r2, [sp] + mov r10, r3 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080A43A0 + mov r8, r0 + b _080A441A + .align 2, 0 +_080A43A0: .4byte gUnknown_03005D24 +_080A43A4: + ldr r1, _080A4440 + ldr r0, _080A4444 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + adds r4, r7, r4 + lsls r4, 24 + lsrs r4, 24 + lsls r5, r7, 25 + movs r1, 0x80 + lsls r1, 18 + adds r5, r1 + lsrs r5, 24 + ldr r6, _080A4448 + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_80A425C + adds r6, r0, 0 + mov r1, r8 + ldr r0, [r1] + lsls r4, 2 + adds r0, r4, r0 + ldrh r0, [r0] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r6, 0 + movs r2, 0x66 + movs r3, 0 + bl sub_8072C74 + adds r6, r0, 0 + movs r0, 0xB9 + strb r0, [r6] + adds r6, 0x1 + mov r1, r8 + ldr r0, [r1] + adds r4, r0 + ldrh r1, [r4, 0x2] + adds r0, r6, 0 + movs r2, 0x78 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A4448 + movs r1, 0xE + adds r2, r5, 0 + bl MenuPrint + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080A441A: + ldr r0, [sp] + cmp r7, r0 + bgt _080A4430 + adds r0, r7, 0 + mov r1, r10 + bl sub_80A42B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A43A4 +_080A4430: + 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 +_080A4440: .4byte gUnknown_03005D10 +_080A4444: .4byte gUnknown_02038559 +_080A4448: .4byte gStringVar1 + thumb_func_end sub_80A4380 + + thumb_func_start sub_80A444C +sub_80A444C: @ 80A444C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + str r2, [sp] + str r3, [sp, 0x4] + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r0, _080A446C + mov r9, r0 + b _080A4520 + .align 2, 0 +_080A446C: .4byte gSaveBlock1 + 0x496 +_080A4470: + ldr r1, _080A44E8 + ldr r0, _080A44EC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + adds r4, r6, r4 + lsls r4, 24 + lsrs r4, 24 + lsls r5, r6, 25 + movs r1, 0x80 + lsls r1, 18 + adds r5, r1 + lsrs r5, 24 + ldr r7, _080A44F0 + mov r2, r10 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_80A425C + adds r7, r0, 0 + ldr r0, _080A44F4 + mov r8, r0 + ldr r0, [r0] + lsls r4, 2 + adds r0, r4, r0 + ldrh r0, [r0] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r7, 0 + movs r2, 0x60 + movs r3, 0 + bl sub_8072C74 + ldr r0, _080A44F0 + movs r1, 0xE + adds r2, r5, 0 + bl MenuPrint + ldr r0, _080A44F8 + ldrb r0, [r0] + cmp r0, 0 + beq _080A44FC + mov r1, r8 + ldr r0, [r1] + adds r0, r4, r0 + ldrh r0, [r0] + mov r2, r9 + ldrh r2, [r2] + cmp r0, r2 + bne _080A451A + adds r0, r6, 0 + bl sub_80A4030 + b _080A451A + .align 2, 0 +_080A44E8: .4byte gUnknown_03005D10 +_080A44EC: .4byte gUnknown_02038559 +_080A44F0: .4byte gStringVar1 +_080A44F4: .4byte gUnknown_03005D24 +_080A44F8: .4byte gUnknown_02038558 +_080A44FC: + mov r1, r8 + ldr r0, [r1] + adds r0, r4, r0 + ldrh r0, [r0] + mov r2, r9 + ldrh r2, [r2] + cmp r0, r2 + bne _080A4514 + adds r0, r6, 0 + bl sub_80A405C + b _080A451A +_080A4514: + adds r0, r6, 0 + bl sub_80A40AC +_080A451A: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080A4520: + ldr r0, [sp] + cmp r6, r0 + bgt _080A4536 + adds r0, r6, 0 + ldr r1, [sp, 0x4] + bl sub_80A42B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A4470 +_080A4536: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A444C + + thumb_func_start sub_80A4548 +sub_80A4548: @ 80A4548 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r0, _080A456C + mov r9, r0 + b _080A46C2 + .align 2, 0 +_080A456C: .4byte gBG2TilemapBuffer +_080A4570: + ldr r1, _080A461C + ldr r0, _080A4620 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + add r4, r8 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + lsls r0, r1, 25 + movs r3, 0x80 + lsls r3, 18 + adds r0, r3 + lsrs r0, 24 + str r0, [sp, 0x10] + lsls r0, 5 + adds r0, 0xE + adds r5, r0, 0 + ldr r6, _080A4624 + ldr r1, [sp, 0x4] + lsls r0, r1, 24 + lsrs r0, 24 + adds r1, r6, 0 + mov r2, r8 + bl sub_80A425C + adds r6, r0, 0 + ldr r3, _080A4628 + mov r10, r3 + ldr r0, [r3] + lsls r7, r4, 2 + adds r3, r7, r0 + ldrh r1, [r3] + movs r0, 0xA9 + lsls r0, 1 + cmp r1, r0 + bhi _080A4634 + lsls r0, r5, 1 + add r0, r9 + movs r1, 0x59 + strh r1, [r0] + adds r0, r5, 0x1 + lsls r0, 1 + add r0, r9 + movs r2, 0x4F + strh r2, [r0] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + add r0, r9 + movs r1, 0x69 + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x21 + lsls r0, 1 + add r0, r9 + strh r2, [r0] + ldrh r0, [r3] + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xD + adds r2, r0, 0 + muls r2, r1 + ldr r0, _080A462C + adds r2, r0 + mov r1, r10 + ldr r0, [r1] + adds r0, r7, r0 + ldr r3, _080A4630 + adds r1, r3, 0 + ldrh r3, [r0] + adds r1, r3 + lsls r1, 16 + lsrs r1, 16 + ldrh r3, [r0, 0x2] + movs r0, 0x2 + str r0, [sp] + adds r0, r6, 0 + bl sub_80A41E0 + b _080A46AE + .align 2, 0 +_080A461C: .4byte gUnknown_03005D10 +_080A4620: .4byte gUnknown_02038559 +_080A4624: .4byte gStringVar1 +_080A4628: .4byte gUnknown_03005D24 +_080A462C: .4byte gMoveNames +_080A4630: .4byte 0xfffffee0 +_080A4634: + lsls r0, r5, 1 + add r0, r9 + ldr r1, _080A46EC + strh r1, [r0] + adds r0, r5, 0x1 + lsls r0, 1 + add r0, r9 + adds r1, 0x1 + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + add r0, r9 + adds r1, 0xF + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x21 + lsls r0, 1 + add r0, r9 + adds r1, 0x1 + strh r1, [r0] + movs r0, 0xFC + strb r0, [r6] + movs r4, 0x13 + strb r4, [r6, 0x1] + movs r0, 0x11 + strb r0, [r6, 0x2] + adds r6, 0x3 + mov r1, r10 + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r3, _080A46F0 + adds r1, r3 + adds r0, r6, 0 + bl ConvertIntToDecimalString + adds r6, r0, 0 + movs r0, 0xFC + strb r0, [r6] + strb r4, [r6, 0x1] + movs r0, 0x18 + strb r0, [r6, 0x2] + adds r6, 0x3 + mov r1, r10 + ldr r0, [r1] + adds r0, r7, r0 + ldrh r0, [r0] + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xD + muls r1, r0 + ldr r0, _080A46F4 + adds r1, r0 + adds r0, r6, 0 + movs r2, 0x78 + movs r3, 0 + bl sub_8072C74 +_080A46AE: + ldr r0, _080A46F8 + movs r1, 0xE + ldr r2, [sp, 0x10] + bl MenuPrint + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_080A46C2: + ldr r3, [sp, 0x8] + cmp r8, r3 + bgt _080A46DA + mov r0, r8 + ldr r1, [sp, 0xC] + bl sub_80A42B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A46DA + b _080A4570 +_080A46DA: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A46EC: .4byte 0x0000105d +_080A46F0: .4byte 0xfffffeae +_080A46F4: .4byte gMoveNames +_080A46F8: .4byte gStringVar1 + thumb_func_end sub_80A4548 + + thumb_func_start sub_80A46FC +sub_80A46FC: @ 80A46FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4] + lsls r1, 24 + lsrs r6, r1, 24 + ldr r0, _080A4724 + mov r10, r0 + ldr r1, _080A4728 + mov r9, r1 + ldr r0, _080A472C + mov r8, r0 + b _080A47B4 + .align 2, 0 +_080A4724: .4byte gBG2TilemapBuffer +_080A4728: .4byte gStringVar2 +_080A472C: .4byte gUnknown_03005D24 +_080A4730: + ldr r1, _080A47DC + ldr r0, _080A47E0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + adds r4, r6, r4 + lsls r4, 24 + lsrs r4, 24 + lsls r5, r6, 25 + movs r1, 0x80 + lsls r1, 18 + adds r5, r1 + lsrs r5, 24 + lsls r0, r5, 5 + adds r0, 0xE + lsls r1, r0, 1 + add r1, r10 + movs r2, 0x59 + strh r2, [r1] + adds r0, 0x20 + lsls r0, 1 + add r0, r10 + movs r1, 0x69 + strh r1, [r0] + ldr r7, _080A47E4 + ldr r1, [sp, 0x4] + lsls r0, r1, 24 + lsrs r0, 24 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_80A425C + adds r7, r0, 0 + mov r1, r8 + ldr r0, [r1] + lsls r4, 2 + adds r0, r4, r0 + ldrh r0, [r0] + mov r1, r9 + bl itemid_copy_name + mov r1, r8 + ldr r0, [r1] + adds r4, r0 + ldrh r1, [r4] + subs r1, 0x84 + lsls r1, 16 + lsrs r1, 16 + ldrh r3, [r4, 0x2] + movs r0, 0x3 + str r0, [sp] + adds r0, r7, 0 + mov r2, r9 + bl sub_80A41E0 + ldr r0, _080A47E4 + movs r1, 0xE + adds r2, r5, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080A47B4: + ldr r0, [sp, 0x8] + cmp r6, r0 + bgt _080A47CA + adds r0, r6, 0 + ldr r1, [sp, 0xC] + bl sub_80A42B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A4730 +_080A47CA: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A47DC: .4byte gUnknown_03005D10 +_080A47E0: .4byte gUnknown_02038559 +_080A47E4: .4byte gStringVar1 + thumb_func_end sub_80A46FC + + thumb_func_start sub_80A47E8 +sub_80A47E8: @ 80A47E8 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080A4808 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _080A4852 + lsls r0, 2 + ldr r1, _080A480C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A4808: .4byte gUnknown_02038559 +_080A480C: .4byte _080A4810 + .align 2, 0 +_080A4810: + .4byte _080A4824 + .4byte _080A4824 + .4byte _080A483C + .4byte _080A4848 + .4byte _080A4830 +_080A4824: + adds r0, r2, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80A4380 + b _080A4852 +_080A4830: + adds r0, r2, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80A444C + b _080A4852 +_080A483C: + adds r0, r2, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80A4548 + b _080A4852 +_080A4848: + adds r0, r2, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80A46FC +_080A4852: + ldr r1, _080A4870 + ldr r0, _080A4874 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080A4878 + movs r0, 0 + movs r1, 0 + bl sub_80F979C + b _080A4880 + .align 2, 0 +_080A4870: .4byte gUnknown_03005D10 +_080A4874: .4byte gUnknown_02038559 +_080A4878: + movs r0, 0 + movs r1, 0x1 + bl sub_80F979C +_080A4880: + ldr r0, _080A48A4 + ldrb r0, [r0] + cmp r0, 0x5 + beq _080A48B0 + ldr r1, _080A48A8 + ldr r0, _080A48AC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + adds r1, 0x8 + ldrb r0, [r0, 0x2] + adds r0, 0x1 + cmp r1, r0 + blt _080A48C6 + b _080A48D8 + .align 2, 0 +_080A48A4: .4byte gUnknown_03000701 +_080A48A8: .4byte gUnknown_03005D10 +_080A48AC: .4byte gUnknown_02038559 +_080A48B0: + ldr r2, _080A48D0 + ldr r0, _080A48D4 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x1] + adds r0, 0x8 + ldrb r1, [r1, 0x2] + cmp r0, r1 + bge _080A48D8 +_080A48C6: + movs r0, 0x1 + movs r1, 0 + bl sub_80F979C + b _080A48E0 + .align 2, 0 +_080A48D0: .4byte gUnknown_03005D10 +_080A48D4: .4byte gUnknown_02038559 +_080A48D8: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C +_080A48E0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A47E8 + + thumb_func_start sub_80A48E8 +sub_80A48E8: @ 80A48E8 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r3, 0 + bl sub_80A47E8 + pop {r0} + bx r0 + thumb_func_end sub_80A48E8 + + thumb_func_start sub_80A48F8 +sub_80A48F8: @ 80A48F8 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + movs r2, 0x5 + movs r3, 0x2 + bl sub_80A47E8 + pop {r0} + bx r0 + thumb_func_end sub_80A48F8 + + thumb_func_start sub_80A490C +sub_80A490C: @ 80A490C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r1, _080A4960 + ldr r0, _080A4964 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bne _080A4974 + ldr r0, _080A4968 + movs r4, 0x1 + str r4, [sp] + movs r1, 0x4 + movs r2, 0x68 + movs r3, 0x68 + bl sub_8072A18 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A496C + ldr r0, _080A4970 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r4, [sp] + movs r1, 0x4 + movs r2, 0x78 + movs r3, 0x68 + bl sub_8072A18 + adds r0, r5, r0 + b _080A4988 + .align 2, 0 +_080A4960: .4byte gUnknown_03005D10 +_080A4964: .4byte gUnknown_02038559 +_080A4968: .4byte gOtherText_ReturnTo +_080A496C: .4byte gUnknown_0840E740 +_080A4970: .4byte gUnknown_03000701 +_080A4974: + adds r0, r3, 0 + bl itemid_get_description + movs r1, 0x1 + str r1, [sp] + movs r1, 0x4 + movs r2, 0x68 + movs r3, 0x68 + bl sub_8072A18 +_080A4988: + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bhi _080A49A4 + lsls r1, r5, 25 + movs r0, 0xD0 + lsls r0, 20 + adds r1, r0 + lsrs r1, 24 + movs r0, 0 + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect +_080A49A4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A490C + + thumb_func_start sub_80A49AC +sub_80A49AC: @ 80A49AC + push {r4,r5,lr} + sub sp, 0x64 + adds r4, r1, 0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080A49E8 + ldr r0, _080A49EC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bne _080A4A18 + cmp r4, 0 + bne _080A49F4 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r0, _080A49F0 + movs r1, 0x4 + movs r2, 0x68 + b _080A4A08 + .align 2, 0 +_080A49E8: .4byte gUnknown_03005D10 +_080A49EC: .4byte gUnknown_02038559 +_080A49F0: .4byte gOtherText_ReturnTo +_080A49F4: + cmp r4, 0x1 + bne _080A4A4C + ldr r1, _080A4A10 + ldr r0, _080A4A14 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x4 + movs r2, 0x78 +_080A4A08: + movs r3, 0 + bl sub_80729D8 + b _080A4A4C + .align 2, 0 +_080A4A10: .4byte gUnknown_0840E740 +_080A4A14: .4byte gUnknown_03000701 +_080A4A18: + cmp r4, 0 + bne _080A4A28 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect +_080A4A28: + lsls r1, r5, 16 + asrs r1, 16 + mov r0, sp + adds r2, r4, 0 + bl sub_80A99A8 + cmp r0, 0 + beq _080A4A4C + lsls r2, r4, 20 + movs r0, 0xD0 + lsls r0, 15 + adds r2, r0 + lsrs r2, 16 + mov r0, sp + movs r1, 0x4 + movs r3, 0 + bl sub_80729D8 +_080A4A4C: + add sp, 0x64 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A49AC + + thumb_func_start sub_80A4A54 +sub_80A4A54: @ 80A4A54 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r2, 0x1 + adds r2, r1, 0 + adds r1, r5, 0 +_080A4A5E: + ldrb r3, [r2] + adds r0, r3, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080A4A8A + subs r4, 0x1 + cmp r4, 0 + bne _080A4A78 + movs r0, 0xFF + strb r0, [r1] + movs r0, 0x1 + b _080A4A92 +_080A4A78: + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080A4A84 + movs r0, 0 + b _080A4A92 +_080A4A84: + adds r1, r5, 0 + adds r2, 0x1 + b _080A4A5E +_080A4A8A: + strb r3, [r1] + adds r2, 0x1 + adds r1, 0x1 + b _080A4A5E +_080A4A92: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A4A54 + + thumb_func_start sub_80A4A98 +sub_80A4A98: @ 80A4A98 + push {r4,r5,lr} + sub sp, 0x64 + adds r5, r0, 0 + adds r4, r1, 0 + cmp r4, 0 + bne _080A4AB0 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect +_080A4AB0: + mov r0, sp + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_80A4A54 + cmp r0, 0 + beq _080A4AD2 + lsls r2, r4, 20 + movs r0, 0xD0 + lsls r0, 15 + adds r2, r0 + lsrs r2, 16 + mov r0, sp + movs r1, 0x4 + movs r3, 0 + bl sub_80729D8 +_080A4AD2: + add sp, 0x64 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A4A98 + + thumb_func_start sub_80A4ADC +sub_80A4ADC: @ 80A4ADC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A4B0C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x1C + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080A4AFA + movs r0, 0 + bl sub_80A7528 +_080A4AFA: + movs r0, 0x5 + bl PlaySE + ldr r1, _080A4B10 + movs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A4B0C: .4byte gTasks +_080A4B10: .4byte gUnknown_0203855C + thumb_func_end sub_80A4ADC + + thumb_func_start sub_80A4B14 +sub_80A4B14: @ 80A4B14 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _080A4B50 + ldr r1, _080A4B54 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + lsls r1, 2 + adds r1, r2 + lsrs r0, 24 + ldrb r2, [r1, 0x1] + adds r0, r2 + strb r0, [r1, 0x1] + movs r0, 0 + bl MoveMenuCursor + bl sub_80A73C0 + bl sub_80A763C + adds r0, r4, 0 + bl sub_80A4ADC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4B50: .4byte gUnknown_03005D10 +_080A4B54: .4byte gUnknown_02038559 + thumb_func_end sub_80A4B14 + + thumb_func_start sub_80A4B58 +sub_80A4B58: @ 80A4B58 + push {r4,lr} + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + asrs r0, 24 + bl MoveMenuCursor + ldr r2, _080A4B88 + ldr r1, _080A4B8C + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + lsls r1, 2 + adds r1, r2 + strb r0, [r1] + bl sub_80A73C0 + adds r0, r4, 0 + bl sub_80A4ADC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4B88: .4byte gUnknown_03005D10 +_080A4B8C: .4byte gUnknown_02038559 + thumb_func_end sub_80A4B58 + + thumb_func_start sub_80A4B90 +sub_80A4B90: @ 80A4B90 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x6 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _080A4BBC + ldr r0, _080A4BB4 + cmp r4, r0 + beq _080A4BAE + adds r0, 0xD + cmp r4, r0 + bne _080A4BBC +_080A4BAE: + ldr r0, _080A4BB8 + b _080A4BE6 + .align 2, 0 +_080A4BB4: .4byte 0x00000103 +_080A4BB8: .4byte gOtherText_Walk +_080A4BBC: + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A4BE4 + ldr r1, _080A4BDC + ldr r0, _080A4BE0 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + b _080A4BE6 + .align 2, 0 +_080A4BDC: .4byte gUnknown_083C1640 +_080A4BE0: .4byte gUnknown_03000704 +_080A4BE4: + ldr r0, _080A4BEC +_080A4BE6: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A4BEC: .4byte gOtherText_Check + thumb_func_end sub_80A4B90 + + thumb_func_start sub_80A4BF0 +sub_80A4BF0: @ 80A4BF0 + push {r4-r7,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldr r7, _080A4C38 + ldrb r4, [r7] + cmp r4, 0x4 + beq _080A4C00 + b _080A4CF8 +_080A4C00: + movs r0, 0 + movs r1, 0x7 + movs r2, 0xD + movs r3, 0xC + bl MenuDrawTextWindow + str r4, [sp] + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x8 + movs r3, 0xC + bl sub_80A4008 + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A4C40 + ldr r0, _080A4C3C + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A4C40 + movs r0, 0x1 + movs r1, 0 + bl sub_80A7834 + b _080A4CA0 + .align 2, 0 +_080A4C38: .4byte gUnknown_02038564 +_080A4C3C: .4byte gUnknown_03000701 +_080A4C40: + movs r6, 0 + ldr r0, _080A4C5C + ldrb r0, [r0] + cmp r6, r0 + bcs _080A4CA0 + ldr r4, _080A4C60 +_080A4C4C: + cmp r6, 0 + bne _080A4C68 + ldr r0, _080A4C64 + ldrh r0, [r0] + bl sub_80A4B90 + adds r3, r0, 0 + b _080A4C76 + .align 2, 0 +_080A4C5C: .4byte gUnknown_02038564 +_080A4C60: .4byte gUnknown_083C1640 +_080A4C64: .4byte word_203855E +_080A4C68: + ldr r0, _080A4CC4 + ldr r0, [r0] + adds r0, r6 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r4 + ldr r3, [r0] +_080A4C76: + lsrs r0, r6, 1 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0x1 + ands r2, r6 + lsls r2, 1 + adds r2, 0x8 + adds r0, r3, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080A4CC8 + ldrb r0, [r0] + cmp r6, r0 + bcc _080A4C4C +_080A4CA0: + ldr r0, _080A4CCC + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A4CD4 + ldr r0, _080A4CC8 + ldrb r3, [r0] + ldr r0, _080A4CD0 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x8 + bl InitMenu + b _080A4CEA + .align 2, 0 +_080A4CC4: .4byte gUnknown_03000704 +_080A4CC8: .4byte gUnknown_02038564 +_080A4CCC: .4byte gUnknown_03000701 +_080A4CD0: .4byte gUnknown_03000700 +_080A4CD4: + ldr r0, _080A4CF4 + ldrb r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x8 + bl InitMenu +_080A4CEA: + movs r0, 0x2F + bl sub_8072DCC + b _080A4D8A + .align 2, 0 +_080A4CF4: .4byte gUnknown_02038564 +_080A4CF8: + movs r0, 0 + movs r1, 0x5 + movs r2, 0xD + movs r3, 0xC + bl MenuDrawTextWindow + movs r0, 0x6 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x6 + movs r3, 0xC + bl sub_80A4008 + movs r6, 0 + ldrb r7, [r7] + cmp r6, r7 + bcs _080A4D6E + ldr r7, _080A4D98 +_080A4D1E: + ldr r0, _080A4D9C + ldr r0, [r0] + adds r0, r6 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r7 + ldr r5, [r0] + adds r0, r6, 0 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 1 + adds r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0x3 + bl __umodsi3 + adds r2, r0, 0 + lsls r2, 25 + movs r0, 0xC0 + lsls r0, 19 + adds r2, r0 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080A4DA0 + ldrb r0, [r0] + cmp r6, r0 + bcc _080A4D1E +_080A4D6E: + ldr r0, _080A4DA0 + ldrb r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x6 + bl InitMenu + movs r0, 0x2F + bl sub_8072DCC +_080A4D8A: + movs r0, 0x2 + bl sub_80A7528 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4D98: .4byte gUnknown_083C1640 +_080A4D9C: .4byte gUnknown_03000704 +_080A4DA0: .4byte gUnknown_02038564 + thumb_func_end sub_80A4BF0 + + thumb_func_start sub_80A4DA4 +sub_80A4DA4: @ 80A4DA4 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_80A73FC + movs r0, 0x6 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x6 + movs r3, 0xD + bl sub_80A36B8 + movs r0, 0 + movs r1, 0x5 + movs r2, 0xD + movs r3, 0xC + bl MenuZeroFillWindowRect + bl sub_80A7590 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4DA4 + + thumb_func_start sub_80A4DD8 +sub_80A4DD8: @ 80A4DD8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + adds r4, r1, 0 + adds r1, r2, 0 + adds r6, r3, 0 + ldr r5, [sp, 0x20] + ldr r2, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + ldr r3, _080A4E84 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + movs r0, 0x1 + strh r0, [r2, 0xA] + adds r0, r4, 0x2 + mov r9, r0 + strh r0, [r2, 0xC] + adds r0, r1, 0x1 + mov r8, r0 + strh r0, [r2, 0xE] + adds r2, r4, r6 + lsls r2, 24 + lsrs r2, 24 + adds r3, r1, r5 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + bl MenuDrawTextWindow + ldr r0, _080A4E88 + adds r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + subs r6, 0x1 + lsls r6, 24 + lsrs r6, 24 + subs r5, 0x1 + lsls r5, 24 + lsrs r5, 24 + str r5, [sp] + adds r1, r4, 0 + mov r2, r8 + adds r3, r6, 0 + bl sub_80A4008 + mov r2, r9 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + mov r0, r10 + str r0, [sp] + movs r0, 0x1 + movs r1, 0x1 + mov r3, r8 + bl sub_80A418C + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4E84: .4byte gTasks +_080A4E88: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A4DD8 + + thumb_func_start sub_80A4E8C +sub_80A4E8C: @ 80A4E8C + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0x1 + bl sub_80F979C + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + movs r0, 0x2 + movs r1, 0x1 + bl sub_80F979C + movs r0, 0x3 + movs r1, 0x1 + bl sub_80F979C + movs r0, 0 + bl sub_80F996C + movs r0, 0x1 + bl sub_80F996C + movs r0, 0x2 + bl sub_80F996C + movs r0, 0x3 + bl sub_80F996C + ldr r5, _080A4F04 + lsls r4, 24 + asrs r4, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A3B04 + ldr r0, _080A4F08 + ldrb r1, [r0] + adds r0, r5, 0 + bl sub_80A3AC0 + bl sub_80A3770 + bl sub_80A7C64 + adds r0, r6, 0 + bl sub_80A7C20 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4F04: .4byte gBG2TilemapBuffer +_080A4F08: .4byte gUnknown_02038559 + thumb_func_end sub_80A4E8C + + thumb_func_start sub_80A4F0C +sub_80A4F0C: @ 80A4F0C + push {r4,lr} + ldr r0, _080A4F38 + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4F60 + ldr r4, _080A4F3C + ldrh r0, [r4, 0x2E] + cmp r0, 0x10 + beq _080A4F30 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080A4F40 +_080A4F30: + movs r0, 0x1 + movs r1, 0x2 + b _080A4F58 + .align 2, 0 +_080A4F38: .4byte gUnknown_03000701 +_080A4F3C: .4byte gMain +_080A4F40: + ldrh r0, [r4, 0x2E] + cmp r0, 0x20 + beq _080A4F52 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A4F60 +_080A4F52: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x1 +_080A4F58: + bl sub_80A4E8C + movs r0, 0x1 + b _080A4F62 +_080A4F60: + movs r0, 0 +_080A4F62: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A4F0C + + thumb_func_start sub_80A4F68 +sub_80A4F68: @ 80A4F68 + push {lr} + bl sub_80A4F0C + pop {r0} + bx r0 + thumb_func_end sub_80A4F68 + + thumb_func_start sub_80A4F74 +sub_80A4F74: @ 80A4F74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r2, r4, 0 + movs r5, 0 + ldr r0, _080A4FAC + ldrh r0, [r0, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A4FE8 + ldr r1, _080A4FB0 + ldr r0, _080A4FB4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + beq _080A4FB8 + movs r0, 0x1 + negs r0, r0 + adds r1, r4, 0 + bl sub_80A4B58 + b _080A4FC8 + .align 2, 0 +_080A4FAC: .4byte gMain +_080A4FB0: .4byte gUnknown_03005D10 +_080A4FB4: .4byte gUnknown_02038559 +_080A4FB8: + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _080A4FC8 + movs r0, 0x1 + negs r0, r0 + adds r1, r4, 0 + bl sub_80A4B14 +_080A4FC8: + ldr r0, _080A4FE0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A50AE + ldr r1, _080A4FE4 + ldrh r0, [r1, 0x32] + cmp r0, 0x5 + bne _080A50AE + movs r0, 0xB + strh r0, [r1, 0x32] + b _080A50AE + .align 2, 0 +_080A4FE0: .4byte gLinkOpen +_080A4FE4: .4byte gMain +_080A4FE8: + cmp r1, 0x80 + bne _080A5088 + ldr r0, _080A5020 + ldrb r0, [r0] + cmp r0, 0x5 + beq _080A502C + ldr r1, _080A5024 + ldr r0, _080A5028 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r2, r0, r1 + ldrb r0, [r2] + ldrb r1, [r2, 0x3] + cmp r0, r1 + bne _080A504E + ldrb r0, [r2, 0x1] + ldrb r1, [r2] + adds r0, r1 + ldrb r2, [r2, 0x2] + cmp r0, r2 + beq _080A5068 + movs r0, 0x1 + adds r1, r4, 0 + bl sub_80A4B14 + b _080A5068 + .align 2, 0 +_080A5020: .4byte gUnknown_03000701 +_080A5024: .4byte gUnknown_03005D10 +_080A5028: .4byte gUnknown_02038559 +_080A502C: + ldr r1, _080A5058 + ldr r0, _080A505C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r2, r0, r1 + ldrb r1, [r2, 0x1] + ldrb r3, [r2] + adds r1, r3 + ldrb r0, [r2, 0x2] + subs r0, 0x1 + cmp r1, r0 + beq _080A5068 + ldrb r2, [r2, 0x3] + cmp r3, r2 + beq _080A5060 +_080A504E: + movs r0, 0x1 + adds r1, r4, 0 + bl sub_80A4B58 + b _080A5068 + .align 2, 0 +_080A5058: .4byte gUnknown_03005D10 +_080A505C: .4byte gUnknown_02038559 +_080A5060: + movs r0, 0x1 + adds r1, r4, 0 + bl sub_80A4B14 +_080A5068: + movs r5, 0x1 + ldr r0, _080A5080 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A50C0 + ldr r1, _080A5084 + ldrh r0, [r1, 0x32] + cmp r0, 0x5 + bne _080A50C0 + movs r0, 0xB + strh r0, [r1, 0x32] + b _080A50C0 + .align 2, 0 +_080A5080: .4byte gLinkOpen +_080A5084: .4byte gMain +_080A5088: + ldr r0, _080A50B4 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A50BC + bl sub_80A4F0C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A50BC + bl sub_80A73F0 + ldr r0, _080A50B8 + str r0, [r4] +_080A50AE: + movs r5, 0x1 + b _080A50C0 + .align 2, 0 +_080A50B4: .4byte gTasks +_080A50B8: .4byte sub_80A4F68 +_080A50BC: + bl sub_80A73C0 +_080A50C0: + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A4F74 + + thumb_func_start sub_80A50C8 +sub_80A50C8: @ 80A50C8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A5148 + adds r5, r0, r1 + ldr r0, _080A514C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A50E6 + b _080A52BC +_080A50E6: + adds r0, r4, 0 + bl sub_80A4F74 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A50F6 + b _080A526A +_080A50F6: + ldr r2, _080A5150 + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080A5190 + ldr r3, _080A5154 + ldrb r0, [r3] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A5190 + ldr r0, _080A5158 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _080A5190 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A5160 + ldr r1, _080A515C + movs r0, 0 + ldrsb r0, [r3, r0] + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bne _080A5138 + b _080A526A +_080A5138: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80A3F50 + b _080A526A + .align 2, 0 +_080A5148: .4byte gUnknown_03004B28 +_080A514C: .4byte gPaletteFade +_080A5150: .4byte gMain +_080A5154: .4byte gUnknown_02038559 +_080A5158: .4byte gUnknown_03000701 +_080A515C: .4byte gUnknown_03005D10 +_080A5160: + ldr r1, _080A5184 + movs r0, 0 + ldrsb r0, [r3, r0] + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + beq _080A5188 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80A3E90 + b _080A526A + .align 2, 0 +_080A5184: .4byte gUnknown_03005D10 +_080A5188: + adds r0, r4, 0 + bl sub_80A3EF4 + b _080A526A +_080A5190: + ldrh r2, [r2, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080A5272 + ldr r7, _080A51D4 + ldr r6, _080A51D8 + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bne _080A51F0 + movs r0, 0x14 + ldrsh r1, [r5, r0] + cmp r1, 0 + bne _080A51E8 + ldr r0, _080A51DC + strh r1, [r0] + ldr r1, _080A51E0 + ldr r0, _080A51E4 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080A526A + .align 2, 0 +_080A51D4: .4byte gUnknown_03005D10 +_080A51D8: .4byte gUnknown_02038559 +_080A51DC: .4byte word_203855E +_080A51E0: .4byte gUnknown_083C16BC +_080A51E4: .4byte gUnknown_03000701 +_080A51E8: + adds r0, r4, 0 + bl sub_80A3EF4 + b _080A526A +_080A51F0: + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A5264 + movs r0, 0x5 + bl PlaySE + ldr r2, _080A5250 + movs r1, 0 + ldrsb r1, [r6, r1] + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + adds r0, r1 + strb r0, [r2] + ldr r3, _080A5254 + ldrb r0, [r2] + ldr r1, _080A5258 + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] + ldr r1, _080A525C + ldr r0, _080A5260 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + movs r0, 0 + bl sub_80F98A4 + movs r0, 0x1 + bl sub_80F98A4 + movs r0, 0x2 + bl sub_80F98A4 + movs r0, 0x3 + bl sub_80F98A4 + bl sub_80A797C + b _080A526A + .align 2, 0 +_080A5250: .4byte gUnknown_02038560 +_080A5254: .4byte word_203855E +_080A5258: .4byte gUnknown_03005D24 +_080A525C: .4byte gUnknown_083C16BC +_080A5260: .4byte gUnknown_03000701 +_080A5264: + adds r0, r4, 0 + bl sub_80A3E90 +_080A526A: + adds r0, r4, 0 + bl sub_808B5B4 + b _080A52BC +_080A5272: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080A52BC + movs r0, 0x14 + ldrsh r1, [r5, r0] + cmp r1, 0 + bne _080A52B0 + ldr r2, _080A52A4 + ldrb r0, [r2] + cmp r0, 0x5 + beq _080A52B6 + ldr r0, _080A52A8 + strh r1, [r0] + ldr r1, _080A52AC + ldrb r0, [r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080A52B6 + .align 2, 0 +_080A52A4: .4byte gUnknown_03000701 +_080A52A8: .4byte word_203855E +_080A52AC: .4byte gUnknown_083C16BC +_080A52B0: + adds r0, r4, 0 + bl sub_80A3EF4 +_080A52B6: + adds r0, r4, 0 + bl sub_808B5B4 +_080A52BC: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A50C8 + + thumb_func_start sub_80A52C4 +sub_80A52C4: @ 80A52C4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + adds r4, r3, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A52F4 + adds r1, r0 + ldr r0, _080A52F8 + ldrh r0, [r0, 0x30] + movs r2, 0xF0 + ands r2, r0 + cmp r2, 0x40 + bne _080A52FC + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, r3 + beq _080A533E + ldrh r0, [r1, 0x2] + adds r0, 0x1 + b _080A5340 + .align 2, 0 +_080A52F4: .4byte gUnknown_03004B28 +_080A52F8: .4byte gMain +_080A52FC: + cmp r2, 0x80 + bne _080A5312 + ldrh r2, [r1, 0x2] + movs r4, 0x2 + ldrsh r0, [r1, r4] + cmp r0, 0x1 + beq _080A530E + subs r0, r2, 0x1 + b _080A5340 +_080A530E: + strh r3, [r1, 0x2] + b _080A5342 +_080A5312: + cmp r2, 0x10 + bne _080A532A + movs r2, 0x2 + ldrsh r0, [r1, r2] + adds r0, 0xA + cmp r0, r3 + bge _080A5326 + ldrh r0, [r1, 0x2] + adds r0, 0xA + b _080A5340 +_080A5326: + strh r4, [r1, 0x2] + b _080A5342 +_080A532A: + cmp r2, 0x20 + bne _080A5346 + ldrh r2, [r1, 0x2] + movs r3, 0x2 + ldrsh r0, [r1, r3] + cmp r0, 0xA + ble _080A533E + adds r0, r2, 0 + subs r0, 0xA + b _080A5340 +_080A533E: + movs r0, 0x1 +_080A5340: + strh r0, [r1, 0x2] +_080A5342: + movs r0, 0x1 + b _080A5348 +_080A5346: + movs r0, 0 +_080A5348: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A52C4 + + thumb_func_start sub_80A5350 +sub_80A5350: @ 80A5350 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080A539C + adds r4, r1, r2 + ldr r1, _080A53A0 + ldrb r1, [r1] + ldr r2, _080A53A4 + ldr r2, [r2] + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x2] + bl sub_80A52C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A53C0 + ldr r0, _080A53A8 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _080A53AC + ldrh r0, [r4, 0x2] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + movs r1, 0x3 + str r1, [sp] + movs r1, 0x1 + bl sub_80A418C + b _080A53BC + .align 2, 0 +_080A539C: .4byte gUnknown_03004B28 +_080A53A0: .4byte gUnknown_02038560 +_080A53A4: .4byte gUnknown_03005D24 +_080A53A8: .4byte gUnknown_02038559 +_080A53AC: + ldrh r0, [r4, 0x2] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + movs r1, 0x2 + str r1, [sp] + movs r1, 0x1 + bl sub_80A418C +_080A53BC: + movs r0, 0x1 + b _080A53C2 +_080A53C0: + movs r0, 0 +_080A53C2: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A5350 + + thumb_func_start sub_80A53CC +sub_80A53CC: @ 80A53CC + push {lr} + bl sub_80A34B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A53EA + bl sub_80A3770 + ldr r0, _080A53F0 + movs r1, 0 + bl CreateTask + ldr r1, _080A53F4 + strb r0, [r1] +_080A53EA: + pop {r0} + bx r0 + .align 2, 0 +_080A53F0: .4byte sub_80A50C8 +_080A53F4: .4byte gUnknown_02038563 + thumb_func_end sub_80A53CC + + thumb_func_start sub_80A53F8 +sub_80A53F8: @ 80A53F8 + push {lr} + ldr r0, _080A540C + movs r1, 0 + strb r1, [r0] + ldr r0, _080A5410 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A540C: .4byte gUnknown_03000701 +_080A5410: .4byte sub_80A53CC + thumb_func_end sub_80A53F8 + + thumb_func_start sub_80A5414 +sub_80A5414: @ 80A5414 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + bl rfu_lacks_rfufunc + cmp r0, 0 + bne _080A5426 + b _080A5552 +_080A5426: + ldr r2, _080A5460 + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A546C + ldr r4, _080A5464 + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5440 + b _080A5552 +_080A5440: + ldrb r1, [r4] + ldr r0, _080A5468 + ldr r0, [r0] + adds r1, r0 + subs r1, 0x1 + ldrb r0, [r1] + cmp r0, 0x8 + bne _080A5452 + b _080A5552 +_080A5452: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080A54EE + .align 2, 0 +_080A5460: .4byte gMain +_080A5464: .4byte gUnknown_03000700 +_080A5468: .4byte gUnknown_03000704 +_080A546C: + cmp r1, 0x80 + bne _080A549C + ldr r4, _080A5494 + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5552 + ldrb r1, [r4] + ldr r0, _080A5498 + ldr r0, [r0] + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0x8 + beq _080A5552 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + b _080A54EE + .align 2, 0 +_080A5494: .4byte gUnknown_03000700 +_080A5498: .4byte gUnknown_03000704 +_080A549C: + cmp r1, 0x20 + bne _080A54CC + ldr r4, _080A54C4 + ldrb r0, [r4] + cmp r0, 0x1 + bls _080A5552 + adds r1, r0, 0 + ldr r0, _080A54C8 + ldr r0, [r0] + adds r1, r0 + subs r1, 0x2 + ldrb r0, [r1] + cmp r0, 0x8 + beq _080A5552 + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + negs r0, r0 + b _080A54EE + .align 2, 0 +_080A54C4: .4byte gUnknown_03000700 +_080A54C8: .4byte gUnknown_03000704 +_080A54CC: + cmp r1, 0x10 + bne _080A5500 + ldr r4, _080A54F8 + ldrb r0, [r4] + cmp r0, 0x1 + bhi _080A5552 + adds r1, r0, 0 + ldr r0, _080A54FC + ldr r0, [r0] + adds r1, r0 + ldrb r0, [r1, 0x2] + cmp r0, 0x8 + beq _080A5552 + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 +_080A54EE: + bl MoveMenuCursor3 + strb r0, [r4] + b _080A5552 + .align 2, 0 +_080A54F8: .4byte gUnknown_03000700 +_080A54FC: .4byte gUnknown_03000704 +_080A5500: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5590 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A5552 + ldr r1, _080A5570 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r1, _080A5574 + ldr r0, _080A5578 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 + ldr r0, _080A557C + bl sub_80A4DA4 + ldr r1, _080A5580 + ldr r0, _080A5584 + ldr r0, [r0] + ldrb r0, [r0, 0x3] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r5, [r0] + adds r0, r4, 0 + bl _call_via_r5 +_080A5552: + cmp r5, 0 + bne _080A55FA + ldr r0, _080A5588 + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A55E0 + ldr r0, _080A558C + ldrb r0, [r0] + cmp r0, 0 + bne _080A55D4 + movs r0, 0xC + bl sub_8072DDC + b _080A55FA + .align 2, 0 +_080A5570: .4byte gTasks +_080A5574: .4byte gUnknown_03005D10 +_080A5578: .4byte gUnknown_02038559 +_080A557C: .4byte gBG1TilemapBuffer +_080A5580: .4byte gUnknown_083C1640 +_080A5584: .4byte gUnknown_03000704 +_080A5588: .4byte gUnknown_03000701 +_080A558C: .4byte gUnknown_03000700 +_080A5590: + ldr r1, _080A55C0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r0, _080A55C4 + bl sub_80A4DA4 + ldr r1, _080A55C8 + ldr r0, _080A55CC + ldrb r2, [r0] + ldr r0, _080A55D0 + ldr r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r5, [r0] + adds r0, r4, 0 + bl _call_via_r5 + b _080A5552 + .align 2, 0 +_080A55C0: .4byte gTasks +_080A55C4: .4byte gBG1TilemapBuffer +_080A55C8: .4byte gUnknown_083C1640 +_080A55CC: .4byte gUnknown_03000700 +_080A55D0: .4byte gUnknown_03000704 +_080A55D4: + cmp r0, 0x1 + bls _080A55E8 + movs r0, 0x30 + bl sub_8072DCC + b _080A55FA +_080A55E0: + ldr r0, _080A55F0 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _080A55F4 +_080A55E8: + movs r0, 0x2F + bl sub_8072DCC + b _080A55FA + .align 2, 0 +_080A55F0: .4byte gUnknown_03000700 +_080A55F4: + movs r0, 0x30 + bl sub_8072DCC +_080A55FA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A5414 + + thumb_func_start sub_80A5600 +sub_80A5600: @ 80A5600 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + ldr r2, _080A563C + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A5648 + ldr r4, _080A5640 + ldrb r0, [r4] + cmp r0, 0 + bne _080A561E + b _080A5736 +_080A561E: + adds r1, r0, 0 + ldr r0, _080A5644 + ldr r0, [r0] + adds r1, r0 + subs r1, 0x1 + ldrb r0, [r1] + cmp r0, 0x8 + bne _080A5630 + b _080A5736 +_080A5630: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080A56D2 + .align 2, 0 +_080A563C: .4byte gMain +_080A5640: .4byte gUnknown_03000700 +_080A5644: .4byte gUnknown_03000704 +_080A5648: + cmp r1, 0x80 + bne _080A5680 + ldr r4, _080A5674 + ldrb r1, [r4] + ldr r0, _080A5678 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _080A5736 + cmp r1, 0x2 + beq _080A5736 + ldr r0, _080A567C + ldr r0, [r0] + adds r0, r1, r0 + ldrb r0, [r0, 0x1] + cmp r0, 0x8 + beq _080A5736 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + b _080A56D2 + .align 2, 0 +_080A5674: .4byte gUnknown_03000700 +_080A5678: .4byte gUnknown_02038564 +_080A567C: .4byte gUnknown_03000704 +_080A5680: + cmp r1, 0x20 + bne _080A56B0 + ldr r4, _080A56A8 + ldrb r0, [r4] + cmp r0, 0x2 + bls _080A5736 + adds r1, r0, 0 + ldr r0, _080A56AC + ldr r0, [r0] + adds r1, r0 + subs r1, 0x3 + ldrb r0, [r1] + cmp r0, 0x8 + beq _080A5736 + movs r0, 0x5 + bl PlaySE + movs r0, 0x3 + negs r0, r0 + b _080A56D2 + .align 2, 0 +_080A56A8: .4byte gUnknown_03000700 +_080A56AC: .4byte gUnknown_03000704 +_080A56B0: + cmp r1, 0x10 + bne _080A56E4 + ldr r4, _080A56DC + ldrb r0, [r4] + cmp r0, 0x2 + bhi _080A5736 + adds r1, r0, 0 + ldr r0, _080A56E0 + ldr r0, [r0] + adds r1, r0 + ldrb r0, [r1, 0x3] + cmp r0, 0x8 + beq _080A5736 + movs r0, 0x5 + bl PlaySE + movs r0, 0x3 +_080A56D2: + bl MoveMenuCursor3 + strb r0, [r4] + b _080A5736 + .align 2, 0 +_080A56DC: .4byte gUnknown_03000700 +_080A56E0: .4byte gUnknown_03000704 +_080A56E4: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5768 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A5736 + ldr r1, _080A574C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r1, _080A5750 + ldr r0, _080A5754 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 + ldr r0, _080A5758 + bl sub_80A4DA4 + ldr r1, _080A575C + ldr r0, _080A5760 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r5, [r0] + adds r0, r4, 0 + bl _call_via_r5 +_080A5736: + cmp r5, 0 + bne _080A57BE + ldr r0, _080A5764 + ldrb r0, [r0] + cmp r0, 0 + bne _080A57AC + movs r0, 0xC + bl sub_8072DDC + b _080A57BE + .align 2, 0 +_080A574C: .4byte gTasks +_080A5750: .4byte gUnknown_03005D10 +_080A5754: .4byte gUnknown_02038559 +_080A5758: .4byte gBG1TilemapBuffer +_080A575C: .4byte gUnknown_083C1640 +_080A5760: .4byte gUnknown_03000704 +_080A5764: .4byte gUnknown_03000700 +_080A5768: + ldr r1, _080A5798 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r0, _080A579C + bl sub_80A4DA4 + ldr r1, _080A57A0 + ldr r0, _080A57A4 + ldrb r2, [r0] + ldr r0, _080A57A8 + ldr r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r5, [r0] + adds r0, r4, 0 + bl _call_via_r5 + b _080A5736 + .align 2, 0 +_080A5798: .4byte gTasks +_080A579C: .4byte gBG1TilemapBuffer +_080A57A0: .4byte gUnknown_083C1640 +_080A57A4: .4byte gUnknown_03000700 +_080A57A8: .4byte gUnknown_03000704 +_080A57AC: + cmp r0, 0x2 + bhi _080A57B8 + movs r0, 0x2F + bl sub_8072DCC + b _080A57BE +_080A57B8: + movs r0, 0x30 + bl sub_8072DCC +_080A57BE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A5600 + + thumb_func_start sub_80A57C4 +sub_80A57C4: @ 80A57C4 + push {r4-r6,lr} + sub sp, 0x8 + ldr r5, _080A57EC + ldr r0, _080A57F0 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + ldr r4, _080A57F4 + adds r1, r4 + str r1, [r5] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bne _080A57FC + ldr r1, _080A57F8 + movs r0, 0x1 + strb r0, [r1] + movs r5, 0x9 + b _080A582C + .align 2, 0 +_080A57EC: .4byte gUnknown_03000704 +_080A57F0: .4byte gUnknown_02038559 +_080A57F4: .4byte gUnknown_083C16AE +_080A57F8: .4byte gUnknown_02038564 +_080A57FC: + ldr r0, _080A581C + ldrh r0, [r0] + bl sub_80F92F4 + lsls r0, 24 + cmp r0, 0 + bne _080A5824 + adds r0, r4, 0 + adds r0, 0x8 + str r0, [r5] + ldr r1, _080A5820 + movs r0, 0x1 + strb r0, [r1] + movs r5, 0x9 + b _080A582C + .align 2, 0 +_080A581C: .4byte word_203855E +_080A5820: .4byte gUnknown_02038564 +_080A5824: + ldr r1, _080A5880 + movs r0, 0x2 + strb r0, [r1] + movs r5, 0x7 +_080A582C: + adds r6, r1, 0 + ldr r0, _080A5884 + adds r4, r5, 0x1 + ldrb r1, [r6] + lsls r1, 25 + lsrs r1, 24 + str r1, [sp] + movs r1, 0x7 + adds r2, r4, 0 + movs r3, 0x6 + bl sub_80A4008 + ldrb r3, [r6] + lsls r3, 1 + adds r3, 0x1 + adds r3, r5, r3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x6 + adds r1, r5, 0 + movs r2, 0xD + bl MenuDrawTextWindow + movs r0, 0 + adds r1, r5, 0 + bl sub_80A7834 + ldrb r3, [r6] + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x7 + adds r2, r4, 0 + bl InitMenu + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5880: .4byte gUnknown_02038564 +_080A5884: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A57C4 + + thumb_func_start sub_80A5888 +sub_80A5888: @ 80A5888 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl rfu_lacks_rfufunc + cmp r0, 0 + beq _080A5988 + ldr r2, _080A58B8 + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080A58C0 + ldr r4, _080A58BC + ldrb r0, [r4] + cmp r0, 0 + beq _080A5988 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080A58E2 + .align 2, 0 +_080A58B8: .4byte gMain +_080A58BC: .4byte gUnknown_03000700 +_080A58C0: + movs r0, 0x80 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080A58F4 + ldr r4, _080A58EC + ldrb r1, [r4] + ldr r0, _080A58F0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _080A5988 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080A58E2: + bl MoveMenuCursor + strb r0, [r4] + b _080A5988 + .align 2, 0 +_080A58EC: .4byte gUnknown_03000700 +_080A58F0: .4byte gUnknown_02038564 +_080A58F4: + ldrh r1, [r2, 0x2E] + movs r2, 0x1 + ands r2, r1 + cmp r2, 0 + beq _080A5964 + ldr r1, _080A5948 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x1C] + ldr r1, _080A594C + ldr r0, _080A5950 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 + ldr r0, _080A5954 + bl sub_80A4DA4 + ldr r1, _080A5958 + ldr r0, _080A595C + ldrb r2, [r0] + ldr r0, _080A5960 + ldr r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080A5988 + .align 2, 0 +_080A5948: .4byte gTasks +_080A594C: .4byte gUnknown_03005D10 +_080A5950: .4byte gUnknown_02038559 +_080A5954: .4byte gBG1TilemapBuffer +_080A5958: .4byte gUnknown_083C1640 +_080A595C: .4byte gUnknown_03000700 +_080A5960: .4byte gUnknown_03000704 +_080A5964: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A5988 + ldr r1, _080A5990 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r0, _080A5994 + bl sub_80A4DA4 + ldr r0, _080A5998 + ldr r1, [r0, 0x14] + adds r0, r5, 0 + bl _call_via_r1 +_080A5988: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5990: .4byte gTasks +_080A5994: .4byte gBG1TilemapBuffer +_080A5998: .4byte gUnknown_083C1640 + thumb_func_end sub_80A5888 + + thumb_func_start sub_80A599C +sub_80A599C: @ 80A599C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A59C4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A59C8 + lsrs r2, r3, 16 + movs r4, 0 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + ldr r1, _080A59CC + strb r4, [r1] + bl sub_80A5AE4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A59C4: .4byte gTasks +_080A59C8: .4byte sub_805469C +_080A59CC: .4byte gUnknown_03005CE0 + thumb_func_end sub_80A599C + + thumb_func_start sub_80A59D0 +sub_80A59D0: @ 80A59D0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A5A3C + movs r0, 0 + strb r0, [r1] + ldr r7, _080A5A40 + ldrb r0, [r7] + cmp r0, 0x5 + bne _080A59E8 + movs r0, 0x1 + strb r0, [r1] +_080A59E8: + ldr r1, _080A5A44 + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r6, r0, r1 + ldr r3, _080A5A48 + ldr r2, _080A5A4C + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + adds r1, 0x1 + strh r1, [r6, 0x1C] + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80A48E8 + bl sub_80A73FC + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5A54 + ldrb r0, [r7] + cmp r0, 0x5 + beq _080A5A54 + bl sub_80A57C4 + ldr r0, _080A5A50 + str r0, [r6] + b _080A5A9C + .align 2, 0 +_080A5A3C: .4byte gUnknown_03000700 +_080A5A40: .4byte gUnknown_03000701 +_080A5A44: .4byte gTasks +_080A5A48: .4byte gUnknown_03005D10 +_080A5A4C: .4byte gUnknown_02038559 +_080A5A50: .4byte sub_80A5888 +_080A5A54: + ldr r0, _080A5A7C + bl sub_80A4BF0 + ldr r0, _080A5A80 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _080A5A6E + ldr r0, _080A5A84 + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A5A90 +_080A5A6E: + ldr r0, _080A5A88 + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A5A8C + b _080A5A9A + .align 2, 0 +_080A5A7C: .4byte gBG1TilemapBuffer +_080A5A80: .4byte gUnknown_02038559 +_080A5A84: .4byte gUnknown_03000701 +_080A5A88: .4byte gTasks +_080A5A8C: .4byte sub_80A5414 +_080A5A90: + ldr r0, _080A5AA4 + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A5AA8 +_080A5A9A: + str r0, [r1] +_080A5A9C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A5AA4: .4byte gTasks +_080A5AA8: .4byte sub_80A5600 + thumb_func_end sub_80A59D0 + + thumb_func_start sub_80A5AAC +sub_80A5AAC: @ 80A5AAC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080A5ADC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5AE0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5ADC: .4byte gTasks +_080A5AE0: .4byte sub_80A5B00 + thumb_func_end sub_80A5AAC + + thumb_func_start sub_80A5AE4 +sub_80A5AE4: @ 80A5AE4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80A5AAC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5AE4 + + thumb_func_start sub_80A5B00 +sub_80A5B00: @ 80A5B00 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A5B38 + adds r2, r0, r1 + ldr r0, _080A5B3C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A5B32 + ldrh r0, [r2, 0x10] + lsls r0, 16 + ldrh r1, [r2, 0x12] + orrs r0, r1 + bl SetMainCallback2 + bl gpu_pal_allocator_reset__manage_upper_four + adds r0, r4, 0 + bl DestroyTask +_080A5B32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5B38: .4byte gUnknown_03004B28 +_080A5B3C: .4byte gPaletteFade + thumb_func_end sub_80A5B00 + + thumb_func_start sub_80A5B40 +sub_80A5B40: @ 80A5B40 + push {lr} +_080A5B42: + bl sub_80A317C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5B68 + bl ResetTasks + ldr r0, _080A5B60 + movs r1, 0 + bl CreateTask + ldr r1, _080A5B64 + strb r0, [r1] + b _080A5B74 + .align 2, 0 +_080A5B60: .4byte sub_80A50C8 +_080A5B64: .4byte gUnknown_02038563 +_080A5B68: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5B42 +_080A5B74: + pop {r0} + bx r0 + thumb_func_end sub_80A5B40 + + thumb_func_start sub_80A5B78 +sub_80A5B78: @ 80A5B78 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _080A5BB0 + ldrh r0, [r5] + bl itemid_get_overworld_function + cmp r0, 0 + beq _080A5BF2 + movs r0, 0x5 + bl PlaySE + bl CalculatePlayerPartyCount + lsls r0, 24 + cmp r0, 0 + bne _080A5BB4 + ldrh r0, [r5] + bl itemid_get_type + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5BB4 + adds r0, r4, 0 + bl sub_80A5BF8 + b _080A5BF2 + .align 2, 0 +_080A5BB0: .4byte word_203855E +_080A5BB4: + ldr r1, _080A5BE0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r0, _080A5BE4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + beq _080A5BEC + ldr r0, _080A5BE8 + ldrh r0, [r0] + bl itemid_get_overworld_function + adds r1, r0, 0 + adds r0, r4, 0 + bl _call_via_r1 + b _080A5BF2 + .align 2, 0 +_080A5BE0: .4byte gTasks +_080A5BE4: .4byte gUnknown_02038559 +_080A5BE8: .4byte word_203855E +_080A5BEC: + adds r0, r4, 0 + bl sub_80C9C7C +_080A5BF2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A5B78 + + thumb_func_start sub_80A5BF8 +sub_80A5BF8: @ 80A5BF8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80A73FC + bl sub_80A7590 + ldr r1, _080A5C1C + ldr r2, _080A5C20 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5C1C: .4byte gOtherText_NoPokemon +_080A5C20: .4byte sub_80A5C48 + thumb_func_end sub_80A5BF8 + + thumb_func_start sub_80A5C24 +sub_80A5C24: @ 80A5C24 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5C24 + + thumb_func_start sub_80A5C48 +sub_80A5C48: @ 80A5C48 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080A5C90 + movs r1, 0x1F + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1F + bl sub_80A36B8 + movs r0, 0x7 + movs r1, 0x7 + movs r2, 0xD + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080A5C94 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5C98 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5C90: .4byte gBG1TilemapBuffer +_080A5C94: .4byte gTasks +_080A5C98: .4byte sub_80A5C24 + thumb_func_end sub_80A5C48 + + thumb_func_start sub_80A5C9C +sub_80A5C9C: @ 80A5C9C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl DestroyTask + bl sub_8064E2C + bl ScriptContext2_Disable + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5C9C + + thumb_func_start sub_80A5CC4 +sub_80A5CC4: @ 80A5CC4 + push {lr} + bl pal_fill_black + ldr r0, _080A5CD8 + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080A5CD8: .4byte Task_CallItemUseOnFieldCallback + thumb_func_end sub_80A5CC4 + + thumb_func_start Task_CallItemUseOnFieldCallback +Task_CallItemUseOnFieldCallback: @ 80A5CDC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5CF8 + ldr r0, _080A5D00 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_080A5CF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5D00: .4byte gUnknown_03005D00 + thumb_func_end Task_CallItemUseOnFieldCallback + + thumb_func_start sub_80A5D04 +sub_80A5D04: @ 80A5D04 + push {lr} +_080A5D06: + bl sub_80A317C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5D28 + ldr r0, _080A5D20 + movs r1, 0 + bl CreateTask + ldr r1, _080A5D24 + strb r0, [r1] + b _080A5D34 + .align 2, 0 +_080A5D20: .4byte sub_80A50C8 +_080A5D24: .4byte gUnknown_02038563 +_080A5D28: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5D06 +_080A5D34: + pop {r0} + bx r0 + thumb_func_end sub_80A5D04 + + thumb_func_start sub_80A5D38 +sub_80A5D38: @ 80A5D38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A5D70 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xA] + ldr r0, _080A5D74 + bl sub_80A4DA4 + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5D70: .4byte gTasks +_080A5D74: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A5D38 + + thumb_func_start sub_80A5D78 +sub_80A5D78: @ 80A5D78 + push {lr} + sub sp, 0x4 + ldr r0, _080A5D9C + movs r1, 0x4 + str r1, [sp] + movs r1, 0x8 + movs r2, 0x8 + movs r3, 0x5 + bl sub_80A4008 + movs r0, 0x7 + movs r1, 0x7 + movs r2, 0x1 + bl DisplayYesNoMenu + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080A5D9C: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A5D78 + + thumb_func_start sub_80A5DA0 +sub_80A5DA0: @ 80A5DA0 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + ldr r1, _080A5DC4 + bl itemid_copy_name + cmp r4, 0x63 + bls _080A5DCC + ldr r0, _080A5DC8 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + b _080A5DD8 + .align 2, 0 +_080A5DC4: .4byte gStringVar1 +_080A5DC8: .4byte gStringVar2 +_080A5DCC: + ldr r0, _080A5DF0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN +_080A5DD8: + ldr r0, _080A5DF4 + bl sub_80A4DA4 + movs r0, 0x5 + bl sub_80A7528 + bl sub_80A5D78 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5DF0: .4byte gStringVar2 +_080A5DF4: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A5DA0 + + thumb_func_start sub_80A5DF8 +sub_80A5DF8: @ 80A5DF8 + push {lr} + ldr r0, _080A5E18 + bl sub_80A4DA4 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xB + movs r3, 0xD + bl MenuZeroFillWindowRect + movs r0, 0x4 + bl sub_80A7528 + pop {r0} + bx r0 + .align 2, 0 +_080A5E18: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A5DF8 + + thumb_func_start sub_80A5E1C +sub_80A5E1C: @ 80A5E1C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A5E58 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5E36 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A5E50 +_080A5E36: + ldr r0, _080A5E5C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x1C] + adds r0, r4, 0 + bl sub_80A41D4 + adds r0, r4, 0 + bl sub_80A5D38 +_080A5E50: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5E58: .4byte gMain +_080A5E5C: .4byte gTasks + thumb_func_end sub_80A5E1C + + thumb_func_start sub_80A5E60 +sub_80A5E60: @ 80A5E60 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80A5DF8 + adds r0, r4, 0 + bl sub_80A3D5C + ldr r1, _080A5E88 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5E8C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5E88: .4byte gTasks +_080A5E8C: .4byte sub_80A5E1C + thumb_func_end sub_80A5E60 + + thumb_func_start sub_80A5E90 +sub_80A5E90: @ 80A5E90 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80A5D38 + pop {r0} + bx r0 + thumb_func_end sub_80A5E90 + + thumb_func_start sub_80A5EA0 +sub_80A5EA0: @ 80A5EA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + adds r0, r4, 0 + bl sub_80A5350 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A5F0C + ldr r0, _080A5EE8 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A5EF8 + movs r0, 0x5 + bl PlaySE + ldr r0, _080A5EEC + ldrh r0, [r0] + ldr r2, _080A5EF0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + ldrh r1, [r1, 0xA] + bl sub_80A5DA0 + ldr r1, _080A5EF4 + adds r0, r4, 0 + bl sub_80F914C + b _080A5F0C + .align 2, 0 +_080A5EE8: .4byte gMain +_080A5EEC: .4byte word_203855E +_080A5EF0: .4byte gTasks +_080A5EF4: .4byte gUnknown_083C16F4 +_080A5EF8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A5F0C + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_80A5D38 +_080A5F0C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A5EA0 + + thumb_func_start sub_80A5F14 +sub_80A5F14: @ 80A5F14 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r1, _080A5F58 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5F5C + str r1, [r0] + movs r0, 0x3 + bl sub_80A7528 + ldr r0, _080A5F60 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _080A5F64 + movs r0, 0x3 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0x6 + movs r2, 0x9 + movs r3, 0x7 + bl sub_80A4DD8 + b _080A5F78 + .align 2, 0 +_080A5F58: .4byte gTasks +_080A5F5C: .4byte sub_80A5EA0 +_080A5F60: .4byte gUnknown_02038559 +_080A5F64: + movs r0, 0x3 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x9 + movs r3, 0x6 + bl sub_80A4DD8 +_080A5F78: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5F14 + + thumb_func_start sub_80A5F80 +sub_80A5F80: @ 80A5F80 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5F80 + + thumb_func_start sub_80A5FAC +sub_80A5FAC: @ 80A5FAC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r0, _080A5FD0 + ldr r1, _080A5FD4 + adds r4, r0, r1 + ldr r5, _080A5FD8 + ldrh r0, [r4] + ldrh r1, [r5] + cmp r0, r1 + bne _080A5FDC + bl sub_80A40D0 + movs r0, 0 + b _080A5FE2 + .align 2, 0 +_080A5FD0: .4byte gSaveBlock1 +_080A5FD4: .4byte 0x00000496 +_080A5FD8: .4byte word_203855E +_080A5FDC: + bl sub_80A413C + ldrh r0, [r5] +_080A5FE2: + strh r0, [r4] + movs r0, 0 + bl sub_80A7528 + adds r0, r6, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r6, 0 + bl sub_80A37C0 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A5FAC + + thumb_func_start sub_80A6000 +sub_80A6000: @ 80A6000 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6000 + + thumb_func_start sub_80A6024 +sub_80A6024: @ 80A6024 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A606C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A6062 + ldr r0, _080A6070 + movs r1, 0x1F + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1F + bl sub_80A36B8 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080A6074 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A6078 + str r1, [r0] +_080A6062: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A606C: .4byte gMain +_080A6070: .4byte gBG1TilemapBuffer +_080A6074: .4byte gTasks +_080A6078: .4byte sub_80A6000 + thumb_func_end sub_80A6024 + + thumb_func_start DisplayCannotDismountBikeMessage +DisplayCannotDismountBikeMessage: @ 80A607C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80A73FC + ldr r0, _080A60B4 + ldrh r0, [r0] + ldr r1, _080A60B8 + bl itemid_copy_name + ldr r5, _080A60BC + ldr r1, _080A60C0 + adds r0, r5, 0 + bl StringExpandPlaceholders + bl sub_80A7590 + ldr r2, _080A60C4 + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A60B4: .4byte word_203855E +_080A60B8: .4byte gStringVar1 +_080A60BC: .4byte gStringVar4 +_080A60C0: .4byte gOtherText_CantBeHeld +_080A60C4: .4byte sub_80A6024 + thumb_func_end DisplayCannotDismountBikeMessage + + thumb_func_start ItemMenu_Give +ItemMenu_Give: @ 80A60C8 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + movs r0, 0x5 + bl PlaySE + ldr r5, _080A60FC + ldrh r0, [r5] + bl sub_80F931C + lsls r0, 24 + cmp r0, 0 + bne _080A6108 + bl sub_80A73FC + bl sub_80A7590 + ldr r1, _080A6100 + ldr r2, _080A6104 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage + b _080A616E + .align 2, 0 +_080A60FC: .4byte word_203855E +_080A6100: .4byte gOtherText_CantWriteMail +_080A6104: .4byte sub_80A6024 +_080A6108: + ldrh r0, [r5] + bl itemid_is_unique + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A6168 + bl CalculatePlayerPartyCount + lsls r0, 24 + cmp r0, 0 + bne _080A6128 + adds r0, r4, 0 + bl sub_80A5BF8 + b _080A616E +_080A6128: + ldr r1, _080A6158 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A615C + lsrs r1, r2, 16 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + ldr r1, _080A6160 + str r1, [r0] + ldr r1, _080A6164 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080A616E + .align 2, 0 +_080A6158: .4byte gTasks +_080A615C: .4byte sub_808B020 +_080A6160: .4byte sub_80A5B00 +_080A6164: .4byte gUnknown_02038561 +_080A6168: + adds r0, r6, 0 + bl DisplayCannotDismountBikeMessage +_080A616E: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end ItemMenu_Give + + thumb_func_start sub_80A6178 +sub_80A6178: @ 80A6178 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80A5AE4 + ldr r1, _080A61A0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A61A4 + lsrs r1, r2, 16 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A61A0: .4byte gTasks +_080A61A4: .4byte sub_814625C + thumb_func_end sub_80A6178 + + thumb_func_start sub_80A61A8 +sub_80A61A8: @ 80A61A8 + push {lr} + bl sub_80A34B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A61C2 + ldr r0, _080A61C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A61CC + strb r0, [r1] +_080A61C2: + pop {r0} + bx r0 + .align 2, 0 +_080A61C8: .4byte sub_80A50C8 +_080A61CC: .4byte gUnknown_02038563 + thumb_func_end sub_80A61A8 + + thumb_func_start sub_80A61D0 +sub_80A61D0: @ 80A61D0 + push {lr} + ldr r0, _080A61E4 + movs r1, 0x2 + strb r1, [r0] + ldr r0, _080A61E8 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A61E4: .4byte gUnknown_03000701 +_080A61E8: .4byte sub_80A61A8 + thumb_func_end sub_80A61D0 + + thumb_func_start sub_80A61EC +sub_80A61EC: @ 80A61EC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A620C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6210 + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AE4 + pop {r0} + bx r0 + .align 2, 0 +_080A620C: .4byte gTasks +_080A6210: .4byte sub_808A3F8 + thumb_func_end sub_80A61EC + + thumb_func_start sub_80A6214 +sub_80A6214: @ 80A6214 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080A6244 + ldrb r0, [r0] + adds r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080A6248 + ldrh r0, [r4] + bl sub_80F931C + lsls r0, 24 + cmp r0, 0 + bne _080A6254 + bl sub_80A73FC + bl sub_80A7590 + ldr r1, _080A624C + ldr r2, _080A6250 + adds r0, r5, 0 + b _080A6280 + .align 2, 0 +_080A6244: .4byte gUnknown_02038559 +_080A6248: .4byte word_203855E +_080A624C: .4byte gOtherText_CantWriteMail +_080A6250: .4byte sub_80A6024 +_080A6254: + ldrh r0, [r4] + bl sub_80F92F4 + lsls r0, 24 + cmp r0, 0 + bne _080A6298 + bl sub_80A73FC + ldrh r0, [r4] + ldr r1, _080A6288 + bl itemid_copy_name + ldr r4, _080A628C + ldr r1, _080A6290 + adds r0, r4, 0 + bl StringExpandPlaceholders + bl sub_80A7590 + ldr r2, _080A6294 + adds r0, r5, 0 + adds r1, r4, 0 +_080A6280: + movs r3, 0x1 + bl DisplayCannotUseItemMessage + b _080A62D2 + .align 2, 0 +_080A6288: .4byte gStringVar1 +_080A628C: .4byte gStringVar4 +_080A6290: .4byte gOtherText_CantBeHeldHere +_080A6294: .4byte sub_80A6024 +_080A6298: + cmp r6, 0x5 + beq _080A62CC + ldrh r0, [r4] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _080A62CC + ldr r1, _080A62C4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A62C8 + lsrs r1, r2, 16 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + adds r0, r5, 0 + bl sub_80A5AAC + b _080A62D2 + .align 2, 0 +_080A62C4: .4byte gTasks +_080A62C8: .4byte sub_808A3F8 +_080A62CC: + adds r0, r5, 0 + bl DisplayCannotDismountBikeMessage +_080A62D2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A6214 + + thumb_func_start sub_80A62D8 +sub_80A62D8: @ 80A62D8 + push {lr} + bl sub_80A34B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A62F2 + ldr r0, _080A62F8 + movs r1, 0 + bl CreateTask + ldr r1, _080A62FC + strb r0, [r1] +_080A62F2: + pop {r0} + bx r0 + .align 2, 0 +_080A62F8: .4byte sub_80A50C8 +_080A62FC: .4byte gUnknown_02038563 + thumb_func_end sub_80A62D8 + + thumb_func_start sub_80A6300 +sub_80A6300: @ 80A6300 + push {lr} + ldr r0, _080A6314 + movs r1, 0x3 + strb r1, [r0] + ldr r0, _080A6318 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A6314: .4byte gUnknown_03000701 +_080A6318: .4byte sub_80A62D8 + thumb_func_end sub_80A6300 + + thumb_func_start sub_80A631C +sub_80A631C: @ 80A631C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6344 + ldr r1, _080A6348 + str r1, [r2] + ldr r2, _080A634C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6350 + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AE4 + pop {r0} + bx r0 + .align 2, 0 +_080A6344: .4byte gUnknown_0300485C +_080A6348: .4byte sub_80B3050 +_080A634C: .4byte gTasks +_080A6350: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80A631C + + thumb_func_start sub_80A6354 +sub_80A6354: @ 80A6354 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_80A7590 + ldr r0, _080A63C4 + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r0 + ldr r4, _080A63C8 + ldr r3, _080A63CC + movs r0, 0 + ldrsb r0, [r3, r0] + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + adds r1, 0x1 + strh r1, [r2, 0x1C] + movs r0, 0 + ldrsb r0, [r3, r0] + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80A48E8 + bl sub_80A73FC + ldr r4, _080A63D0 + ldrh r0, [r4] + ldr r1, _080A63D4 + bl itemid_copy_name + ldrh r0, [r4] + bl itemid_get_market_price + lsls r0, 16 + cmp r0, 0 + bne _080A63E4 + ldr r4, _080A63D8 + ldr r1, _080A63DC + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A63E0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage + b _080A63FA + .align 2, 0 +_080A63C4: .4byte gTasks +_080A63C8: .4byte gUnknown_03005D10 +_080A63CC: .4byte gUnknown_02038559 +_080A63D0: .4byte word_203855E +_080A63D4: .4byte gStringVar2 +_080A63D8: .4byte gStringVar4 +_080A63DC: .4byte gOtherText_CantBuyThat +_080A63E0: .4byte sub_80A6444 +_080A63E4: + ldr r4, _080A6400 + ldr r1, _080A6404 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A6408 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage +_080A63FA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6400: .4byte gStringVar4 +_080A6404: .4byte gOtherText_HowManyToSell +_080A6408: .4byte sub_80A648C + thumb_func_end sub_80A6354 + + thumb_func_start sub_80A640C +sub_80A640C: @ 80A640C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A6440 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6440: .4byte gTasks + thumb_func_end sub_80A640C + + thumb_func_start sub_80A6444 +sub_80A6444: @ 80A6444 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080A6480 + movs r1, 0x1F + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1F + bl sub_80A36B8 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080A6484 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A6488 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6480: .4byte gBG1TilemapBuffer +_080A6484: .4byte gTasks +_080A6488: .4byte sub_80A640C + thumb_func_end sub_80A6444 + + thumb_func_start sub_80A648C +sub_80A648C: @ 80A648C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A64E8 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r0, _080A64EC + str r0, [r4] + ldr r0, _080A64F0 + movs r5, 0x2 + str r5, [sp] + movs r1, 0x1 + movs r2, 0xB + movs r3, 0xC + bl sub_80A4008 + movs r0, 0 + movs r1, 0xA + movs r2, 0xD + movs r3, 0xD + bl MenuDrawTextWindow + movs r0, 0x1 + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + movs r0, 0xB + strh r0, [r4, 0xE] + ldr r0, _080A64F4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _080A64F8 + movs r0, 0x3 + str r0, [sp] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0xB + bl sub_80A418C + b _080A6506 + .align 2, 0 +_080A64E8: .4byte gTasks +_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput +_080A64F0: .4byte gBG1TilemapBuffer +_080A64F4: .4byte gUnknown_02038559 +_080A64F8: + str r5, [sp] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0xB + bl sub_80A418C +_080A6506: + ldr r0, _080A651C + ldrh r0, [r0] + movs r1, 0x1 + bl BuyMenuDisplayMessage + bl sub_80A683C + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A651C: .4byte word_203855E + thumb_func_end sub_80A648C + + thumb_func_start sub_80A6520 +sub_80A6520: @ 80A6520 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A6544 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A653E + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl BuyMenuPrintItemQuantityAndPrice +_080A653E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6544: .4byte gMain + thumb_func_end sub_80A6520 + + thumb_func_start sub_80A6548 +sub_80A6548: @ 80A6548 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80A48F8 + ldr r1, _080A656C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A6570 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A656C: .4byte gTasks +_080A6570: .4byte sub_80A6520 + thumb_func_end sub_80A6548 + + thumb_func_start sub_80A6574 +sub_80A6574: @ 80A6574 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x5F + bl PlaySE + ldr r0, _080A65A0 + ldrh r0, [r0] + ldr r1, _080A65A4 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r1 + ldrb r1, [r4, 0xA] + bl sub_80A6870 + ldr r0, _080A65A8 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A65A0: .4byte word_203855E +_080A65A4: .4byte gTasks +_080A65A8: .4byte sub_80A6548 + thumb_func_end sub_80A6574 + + thumb_func_start sub_80A65AC +sub_80A65AC: @ 80A65AC + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xD + movs r3, 0xC + bl MenuZeroFillWindowRect + ldr r0, _080A6600 + movs r1, 0x6 + str r1, [sp] + movs r1, 0x7 + movs r2, 0x6 + movs r3, 0x6 + bl sub_80A36B8 + ldr r0, _080A6604 + ldrh r0, [r0] + ldr r1, _080A6608 + bl itemid_copy_name + ldr r4, _080A660C + ldr r1, _080A6610 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A6614 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage + adds r0, r5, 0 + bl sub_80A3D5C + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6600: .4byte gBG1TilemapBuffer +_080A6604: .4byte word_203855E +_080A6608: .4byte gStringVar2 +_080A660C: .4byte gStringVar4 +_080A6610: .4byte gOtherText_SoldItem +_080A6614: .4byte sub_80A6574 + thumb_func_end sub_80A65AC + + thumb_func_start sub_80A6618 +sub_80A6618: @ 80A6618 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xD + movs r3, 0xC + bl MenuZeroFillWindowRect + ldr r0, _080A664C + movs r1, 0x6 + str r1, [sp] + movs r1, 0x7 + movs r2, 0x6 + movs r3, 0x6 + bl sub_80A36B8 + adds r0, r4, 0 + bl BuyMenuPrintItemQuantityAndPrice + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A664C: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A6618 + + thumb_func_start sub_80A6650 +sub_80A6650: @ 80A6650 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80A5D78 + ldr r1, _080A666C + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A666C: .4byte gUnknown_083C16FC + thumb_func_end sub_80A6650 + + thumb_func_start Task_BuyHowManyDialogueHandleInput +Task_BuyHowManyDialogueHandleInput: @ 80A6670 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + adds r0, r5, 0 + bl sub_80A5350 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A66B4 + movs r0, 0x6 + movs r1, 0xB + movs r2, 0xC + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r0, _080A66AC + ldrh r0, [r0] + ldr r2, _080A66B0 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + ldrh r1, [r1, 0xA] + bl BuyMenuDisplayMessage + b _080A6758 + .align 2, 0 +_080A66AC: .4byte word_203855E +_080A66B0: .4byte gTasks +_080A66B4: + ldr r0, _080A6724 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A6744 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0xA + movs r2, 0xD + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _080A6728 + movs r1, 0x3 + str r1, [sp] + movs r1, 0 + movs r2, 0xA + movs r3, 0xD + bl sub_80A36B8 + ldr r4, _080A672C + ldr r0, _080A6730 + ldrh r0, [r0] + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + ldr r2, _080A6734 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + movs r2, 0xA + ldrsh r1, [r1, r2] + muls r1, r0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x6 + bl ConvertIntToDecimalStringN + ldr r4, _080A6738 + ldr r1, _080A673C + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A6740 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayCannotUseItemMessage + b _080A6758 + .align 2, 0 +_080A6724: .4byte gMain +_080A6728: .4byte gBG1TilemapBuffer +_080A672C: .4byte gStringVar1 +_080A6730: .4byte word_203855E +_080A6734: .4byte gTasks +_080A6738: .4byte gStringVar4 +_080A673C: .4byte gOtherText_CanPay +_080A6740: .4byte sub_80A6650 +_080A6744: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A6758 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl BuyMenuPrintItemQuantityAndPrice +_080A6758: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end Task_BuyHowManyDialogueHandleInput + + thumb_func_start sub_80A6760 +sub_80A6760: @ 80A6760 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A6794 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6794: .4byte gTasks + thumb_func_end sub_80A6760 + + thumb_func_start BuyMenuPrintItemQuantityAndPrice +BuyMenuPrintItemQuantityAndPrice: @ 80A6798 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080A67E8 + movs r1, 0x1F + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1F + bl sub_80A36B8 + movs r0, 0 + movs r1, 0 + bl RemoveMoneyLabelObject + movs r0, 0 + movs r1, 0x4 + movs r2, 0xD + movs r3, 0xD + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080A67EC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A67F0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A67E8: .4byte gBG1TilemapBuffer +_080A67EC: .4byte gTasks +_080A67F0: .4byte sub_80A6760 + thumb_func_end BuyMenuPrintItemQuantityAndPrice + + thumb_func_start BuyMenuDisplayMessage +BuyMenuDisplayMessage: @ 80A67F4 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + muls r0, r5 + movs r1, 0x6 + movs r2, 0x6 + movs r3, 0xB + bl sub_80B7A94 + ldr r6, _080A6838 + adds r0, r4, 0 + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + adds r1, r0, 0 + muls r1, r5 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x6 + bl ConvertIntToDecimalStringN + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6838: .4byte gStringVar1 + thumb_func_end BuyMenuDisplayMessage + + thumb_func_start sub_80A683C +sub_80A683C: @ 80A683C + push {lr} + sub sp, 0x4 + ldr r0, _080A6868 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + movs r2, 0 + bl sub_80B7C14 + ldr r0, _080A686C + movs r1, 0x2 + str r1, [sp] + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0xC + bl sub_80A4008 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080A6868: .4byte gSaveBlock1 +_080A686C: .4byte gBG1TilemapBuffer + thumb_func_end sub_80A683C + + thumb_func_start sub_80A6870 +sub_80A6870: @ 80A6870 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080A68A0 + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + adds r1, r0, 0 + muls r1, r4 + adds r0, r5, 0 + bl sub_80B79B8 + ldr r0, [r5] + movs r1, 0 + movs r2, 0 + bl sub_80B7BEC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A68A0: .4byte gSaveBlock1 + 0x490 + thumb_func_end sub_80A6870 + + thumb_func_start sub_80A68A4 +sub_80A68A4: @ 80A68A4 + push {lr} + bl sub_80A34B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A68BE + ldr r0, _080A68C4 + movs r1, 0 + bl CreateTask + ldr r1, _080A68C8 + strb r0, [r1] +_080A68BE: + pop {r0} + bx r0 + .align 2, 0 +_080A68C4: .4byte sub_80A50C8 +_080A68C8: .4byte gUnknown_02038563 + thumb_func_end sub_80A68A4 + + thumb_func_start sub_80A68CC +sub_80A68CC: @ 80A68CC + push {lr} + ldr r1, _080A68E4 + movs r0, 0x3 + strb r0, [r1] + ldr r1, _080A68E8 + movs r0, 0x4 + strb r0, [r1] + ldr r0, _080A68EC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A68E4: .4byte gUnknown_02038559 +_080A68E8: .4byte gUnknown_03000701 +_080A68EC: .4byte sub_80A68A4 + thumb_func_end sub_80A68CC + + thumb_func_start sub_80A68F0 +sub_80A68F0: @ 80A68F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6910 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6914 + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AE4 + pop {r0} + bx r0 + .align 2, 0 +_080A6910: .4byte gTasks +_080A6914: .4byte sub_80546B8 + thumb_func_end sub_80A68F0 + + thumb_func_start sub_80A6918 +sub_80A6918: @ 80A6918 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6938 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A693C + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AAC + pop {r0} + bx r0 + .align 2, 0 +_080A6938: .4byte gTasks +_080A693C: .4byte sub_80546B8 + thumb_func_end sub_80A6918 + + thumb_func_start sub_80A6940 +sub_80A6940: @ 80A6940 + push {lr} +_080A6942: + bl sub_80A317C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6968 + ldr r0, _080A6960 + movs r1, 0 + bl CreateTask + ldr r1, _080A6964 + strb r0, [r1] + bl sub_80A699C + b _080A6974 + .align 2, 0 +_080A6960: .4byte sub_80A50C8 +_080A6964: .4byte gUnknown_02038563 +_080A6968: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6942 +_080A6974: + pop {r0} + bx r0 + thumb_func_end sub_80A6940 + + thumb_func_start sub_80A6978 +sub_80A6978: @ 80A6978 + push {lr} + ldr r1, _080A6990 + movs r0, 0x3 + strb r0, [r1] + ldr r1, _080A6994 + movs r0, 0x5 + strb r0, [r1] + ldr r0, _080A6998 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A6990: .4byte gUnknown_02038559 +_080A6994: .4byte gUnknown_03000701 +_080A6998: .4byte sub_80A6940 + thumb_func_end sub_80A6978 + + thumb_func_start sub_80A699C +sub_80A699C: @ 80A699C + ldr r1, _080A69AC + ldr r0, _080A69B0 + str r0, [r1] + ldr r1, _080A69B4 + movs r0, 0x4 + strb r0, [r1] + bx lr + .align 2, 0 +_080A69AC: .4byte gUnknown_03000704 +_080A69B0: .4byte gUnknown_083C16B8 +_080A69B4: .4byte gUnknown_02038564 + thumb_func_end sub_80A699C + + thumb_func_start sub_80A69B8 +sub_80A69B8: @ 80A69B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A69D8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A69DC + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AE4 + pop {r0} + bx r0 + .align 2, 0 +_080A69D8: .4byte gTasks +_080A69DC: .4byte sub_804E990 + thumb_func_end sub_80A69B8 + + thumb_func_start sub_80A69E0 +sub_80A69E0: @ 80A69E0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6A00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6A04 + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AAC + pop {r0} + bx r0 + .align 2, 0 +_080A6A00: .4byte gTasks +_080A6A04: .4byte sub_804E990 + thumb_func_end sub_80A69E0 + + thumb_func_start sub_80A6A08 +sub_80A6A08: @ 80A6A08 + push {lr} + bl sub_80A34B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6A22 + ldr r0, _080A6A28 + movs r1, 0 + bl CreateTask + ldr r1, _080A6A2C + strb r0, [r1] +_080A6A22: + pop {r0} + bx r0 + .align 2, 0 +_080A6A28: .4byte sub_80A50C8 +_080A6A2C: .4byte gUnknown_02038563 + thumb_func_end sub_80A6A08 + + thumb_func_start sub_80A6A30 +sub_80A6A30: @ 80A6A30 + push {lr} + ldr r0, _080A6A44 + movs r1, 0x6 + strb r1, [r0] + ldr r0, _080A6A48 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A6A44: .4byte gUnknown_03000701 +_080A6A48: .4byte sub_80A6A08 + thumb_func_end sub_80A6A30 + + thumb_func_start sub_80A6A4C +sub_80A6A4C: @ 80A6A4C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6A74 + ldr r1, _080A6A78 + str r1, [r2] + ldr r2, _080A6A7C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6A80 + lsrs r2, r3, 16 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + bl sub_80A5AE4 + pop {r0} + bx r0 + .align 2, 0 +_080A6A74: .4byte gUnknown_0300485C +_080A6A78: .4byte sub_813A0F8 +_080A6A7C: .4byte gTasks +_080A6A80: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80A6A4C + + thumb_func_start sub_80A6A84 +sub_80A6A84: @ 80A6A84 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r6, _080A6AE8 + adds r0, r4, r6 + mov r8, r0 + ldr r0, _080A6AEC + bl sub_80A4DA4 + ldr r0, _080A6AF0 + ldrh r0, [r0] + ldr r1, _080A6AF4 + bl itemid_copy_name + ldr r0, _080A6AF8 + mov r2, r8 + movs r3, 0x2 + ldrsh r1, [r2, r3] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xB + movs r3, 0xD + bl MenuZeroFillWindowRect + movs r0, 0x7 + bl sub_80A7528 + adds r0, r5, 0 + bl sub_80A3D5C + subs r6, 0x8 + adds r4, r6 + ldr r0, _080A6AFC + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6AE8: .4byte gUnknown_03004B28 +_080A6AEC: .4byte gBG1TilemapBuffer +_080A6AF0: .4byte word_203855E +_080A6AF4: .4byte gStringVar1 +_080A6AF8: .4byte gStringVar2 +_080A6AFC: .4byte sub_80A5E1C + thumb_func_end sub_80A6A84 + + thumb_func_start sub_80A6B00 +sub_80A6B00: @ 80A6B00 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A6B54 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A6B1A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A6B4C +_080A6B1A: + ldr r1, _080A6B58 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r1, _080A6B5C + ldr r0, _080A6B60 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80A5D38 +_080A6B4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6B54: .4byte gMain +_080A6B58: .4byte gTasks +_080A6B5C: .4byte gUnknown_03005D10 +_080A6B60: .4byte gUnknown_02038559 + thumb_func_end sub_80A6B00 + + thumb_func_start sub_80A6B64 +sub_80A6B64: @ 80A6B64 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r5, r0, 3 + ldr r6, _080A6B9C + adds r7, r5, r6 + ldr r0, _080A6BA0 + mov r8, r0 + ldrh r0, [r0] + bl itemid_is_unique + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080A6BA8 + adds r0, r6, 0 + subs r0, 0x8 + adds r0, r5, r0 + ldr r1, _080A6BA4 + str r1, [r0] + movs r0, 0x9 + bl sub_80A7528 + b _080A6BD2 + .align 2, 0 +_080A6B9C: .4byte gUnknown_03004B28 +_080A6BA0: .4byte word_203855E +_080A6BA4: .4byte sub_80A6B00 +_080A6BA8: + mov r1, r8 + ldrh r0, [r1] + ldrh r1, [r7, 0x2] + bl sub_80A9760 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6BC2 + adds r0, r4, 0 + bl sub_80A6A84 + b _080A6BD2 +_080A6BC2: + adds r0, r6, 0 + subs r0, 0x8 + adds r0, r5, r0 + ldr r1, _080A6BDC + str r1, [r0] + movs r0, 0x8 + bl sub_80A7528 +_080A6BD2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6BDC: .4byte sub_80A6B00 + thumb_func_end sub_80A6B64 + + thumb_func_start sub_80A6BE0 +sub_80A6BE0: @ 80A6BE0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + adds r0, r4, 0 + bl sub_80A5350 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A6C58 + ldr r0, _080A6C18 + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + ands r2, r1 + cmp r2, 0 + beq _080A6C20 + movs r0, 0x5 + bl PlaySE + ldr r0, _080A6C1C + bl sub_80A4DA4 + adds r0, r4, 0 + bl sub_80A6B64 + b _080A6C58 + .align 2, 0 +_080A6C18: .4byte gMain +_080A6C1C: .4byte gBG1TilemapBuffer +_080A6C20: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A6C58 + ldr r1, _080A6C60 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r1, _080A6C64 + ldr r0, _080A6C68 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80A48E8 + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_80A5D38 +_080A6C58: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6C60: .4byte gTasks +_080A6C64: .4byte gUnknown_03005D10 +_080A6C68: .4byte gUnknown_02038559 + thumb_func_end sub_80A6BE0 + + thumb_func_start sub_80A6C6C +sub_80A6C6C: @ 80A6C6C + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A6CE4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldr r2, _080A6CE8 + ldr r6, _080A6CEC + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + adds r1, 0x1 + strh r1, [r5, 0x1C] + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 + bl sub_80A73FC + movs r0, 0x5 + bl PlaySE + bl sub_80A7590 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0x4 + beq _080A6D0A + ldr r0, _080A6CF0 + str r0, [r5] + movs r0, 0x6 + bl sub_80A7528 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0x3 + bne _080A6CF4 + movs r0, 0x3 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0x6 + movs r2, 0x9 + movs r3, 0x7 + bl sub_80A4DD8 + b _080A6D14 + .align 2, 0 +_080A6CE4: .4byte gTasks +_080A6CE8: .4byte gUnknown_03005D10 +_080A6CEC: .4byte gUnknown_02038559 +_080A6CF0: .4byte sub_80A6BE0 +_080A6CF4: + movs r0, 0x3 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x9 + movs r3, 0x6 + bl sub_80A4DD8 + b _080A6D14 +_080A6D0A: + movs r0, 0x1 + strh r0, [r5, 0xA] + adds r0, r4, 0 + bl sub_80A6B64 +_080A6D14: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A6C6C + + thumb_func_start sub_80A6D1C +sub_80A6D1C: @ 80A6D1C + push {r4,r5,lr} + bl HideMapNamePopUpWindow + ldr r0, _080A6D70 + ldr r1, _080A6D74 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080A6D84 + movs r1, 0x1 + bl sub_80A92D4 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080A6D80 + bl ScriptContext2_Enable + bl player_bitmagic + bl sub_80594C0 + bl sub_80597F4 + ldr r1, _080A6D78 + ldrh r0, [r4] + strh r0, [r1] + ldrh r0, [r4] + bl itemid_get_overworld_function + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6D7C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0xC] + b _080A6D8A + .align 2, 0 +_080A6D70: .4byte gSaveBlock1 +_080A6D74: .4byte 0x00000496 +_080A6D78: .4byte word_203855E +_080A6D7C: .4byte gTasks +_080A6D80: + movs r0, 0 + strh r0, [r4] +_080A6D84: + ldr r0, _080A6D94 + bl ScriptContext1_SetupScript +_080A6D8A: + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080A6D94: .4byte Event_NoRegisteredItem + thumb_func_end sub_80A6D1C + + thumb_func_start sub_80A6D98 +sub_80A6D98: @ 80A6D98 + push {lr} +_080A6D9A: + bl sub_80A317C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6DBC + ldr r0, _080A6DB4 + movs r1, 0 + bl CreateTask + ldr r1, _080A6DB8 + strb r0, [r1] + b _080A6DC8 + .align 2, 0 +_080A6DB4: .4byte sub_80A50C8 +_080A6DB8: .4byte gUnknown_02038563 +_080A6DBC: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6D9A +_080A6DC8: + pop {r0} + bx r0 + thumb_func_end sub_80A6D98 + + thumb_func_start sub_80A6DCC +sub_80A6DCC: @ 80A6DCC + push {lr} + ldr r1, _080A6DE4 + movs r0, 0 + strb r0, [r1] + ldr r1, _080A6DE8 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080A6DEC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A6DE4: .4byte gUnknown_03000700 +_080A6DE8: .4byte gUnknown_03000701 +_080A6DEC: .4byte sub_80A6D98 + thumb_func_end sub_80A6DCC + + thumb_func_start sub_80A6DF0 +sub_80A6DF0: @ 80A6DF0 + push {r4-r6,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldr r4, _080A6E4C + ldrb r0, [r4] + subs r0, 0x1 + lsls r0, 25 + lsrs r6, r0, 24 + movs r1, 0x9 + subs r1, r6 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x7 + movs r2, 0xD + movs r3, 0xC + bl MenuDrawTextWindow + movs r2, 0xA + subs r2, r6 + lsls r2, 24 + lsrs r2, 24 + adds r0, r6, 0x2 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x8 + movs r3, 0x5 + bl sub_80A4008 + ldrb r0, [r4] + cmp r0, 0x1 + bne _080A6E58 + ldr r1, _080A6E50 + ldr r0, _080A6E54 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x8 + movs r2, 0xA + bl MenuPrint + b _080A6E80 + .align 2, 0 +_080A6E4C: .4byte gUnknown_02038564 +_080A6E50: .4byte gUnknown_083C1640 +_080A6E54: .4byte gUnknown_03000704 +_080A6E58: + ldr r5, _080A6EAC + ldr r4, _080A6EB0 + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, 3 + adds r0, r5 + ldr r0, [r0] + movs r1, 0x8 + movs r2, 0x8 + bl MenuPrint + ldr r0, [r4] + ldrb r0, [r0, 0x1] + lsls r0, 3 + adds r0, r5 + ldr r0, [r0] + movs r1, 0x8 + movs r2, 0xA + bl MenuPrint +_080A6E80: + movs r2, 0xA + subs r2, r6 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _080A6EB4 + ldrb r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x8 + bl InitMenu + movs r0, 0x2 + bl sub_80A7528 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6EAC: .4byte gUnknown_083C1640 +_080A6EB0: .4byte gUnknown_03000704 +_080A6EB4: .4byte gUnknown_02038564 + thumb_func_end sub_80A6DF0 + + thumb_func_start sub_80A6EB8 +sub_80A6EB8: @ 80A6EB8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r2, _080A6EE0 + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A6EE8 + ldr r4, _080A6EE4 + ldrb r0, [r4] + cmp r0, 0x1 + bne _080A6FC0 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080A6F02 + .align 2, 0 +_080A6EE0: .4byte gMain +_080A6EE4: .4byte gUnknown_03000700 +_080A6EE8: + cmp r1, 0x80 + bne _080A6F14 + ldr r4, _080A6F0C + ldrb r0, [r4] + adds r0, 0x1 + ldr r1, _080A6F10 + ldrb r1, [r1] + cmp r0, r1 + bge _080A6FC0 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080A6F02: + bl MoveMenuCursor + strb r0, [r4] + b _080A6FC0 + .align 2, 0 +_080A6F0C: .4byte gUnknown_03000700 +_080A6F10: .4byte gUnknown_02038564 +_080A6F14: + ldrh r1, [r2, 0x2E] + movs r2, 0x1 + ands r2, r1 + cmp r2, 0 + beq _080A6F84 + ldr r1, _080A6F68 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r1, _080A6F6C + ldr r0, _080A6F70 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80A48E8 + ldr r0, _080A6F74 + bl sub_80A4DA4 + ldr r1, _080A6F78 + ldr r0, _080A6F7C + ldrb r2, [r0] + ldr r0, _080A6F80 + ldr r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080A6FC0 + .align 2, 0 +_080A6F68: .4byte gTasks +_080A6F6C: .4byte gUnknown_03005D10 +_080A6F70: .4byte gUnknown_02038559 +_080A6F74: .4byte gBG1TilemapBuffer +_080A6F78: .4byte gUnknown_083C1640 +_080A6F7C: .4byte gUnknown_03000700 +_080A6F80: .4byte gUnknown_03000704 +_080A6F84: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A6FC0 + ldr r1, _080A6FC8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r1, _080A6FCC + ldr r0, _080A6FD0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80A48E8 + ldr r0, _080A6FD4 + bl sub_80A4DA4 + ldr r0, _080A6FD8 + ldr r1, [r0, 0x2C] + adds r0, r5, 0 + bl _call_via_r1 +_080A6FC0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6FC8: .4byte gTasks +_080A6FCC: .4byte gUnknown_03005D10 +_080A6FD0: .4byte gUnknown_02038559 +_080A6FD4: .4byte gBG1TilemapBuffer +_080A6FD8: .4byte gUnknown_083C1640 + thumb_func_end sub_80A6EB8 + + thumb_func_start sub_80A6FDC +sub_80A6FDC: @ 80A6FDC + push {lr} + ldr r0, _080A6FF8 + ldrh r0, [r0] + bl itemid_get_usage + lsls r0, 24 + cmp r0, 0 + beq _080A7008 + ldr r1, _080A6FFC + ldr r0, _080A7000 + str r0, [r1] + ldr r1, _080A7004 + movs r0, 0x2 + b _080A7012 + .align 2, 0 +_080A6FF8: .4byte word_203855E +_080A6FFC: .4byte gUnknown_03000704 +_080A7000: .4byte gUnknown_083C1708 +_080A7004: .4byte gUnknown_02038564 +_080A7008: + ldr r1, _080A7018 + ldr r0, _080A701C + str r0, [r1] + ldr r1, _080A7020 + movs r0, 0x1 +_080A7012: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A7018: .4byte gUnknown_03000704 +_080A701C: .4byte gUnknown_083C170A +_080A7020: .4byte gUnknown_02038564 + thumb_func_end sub_80A6FDC + + thumb_func_start sub_80A7024 +sub_80A7024: @ 80A7024 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080A707C + movs r0, 0 + strb r0, [r1] + bl sub_80A6FDC + ldr r0, _080A7080 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldr r3, _080A7084 + ldr r2, _080A7088 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + adds r1, 0x1 + strh r1, [r4, 0x1C] + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80A48E8 + bl sub_80A73FC + ldr r0, _080A708C + bl sub_80A6DF0 + ldr r0, _080A7090 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A707C: .4byte gUnknown_03000700 +_080A7080: .4byte gTasks +_080A7084: .4byte gUnknown_03005D10 +_080A7088: .4byte gUnknown_02038559 +_080A708C: .4byte gBG1TilemapBuffer +_080A7090: .4byte sub_80A6EB8 + thumb_func_end sub_80A7024 + + thumb_func_start sub_80A7094 +sub_80A7094: @ 80A7094 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A70CC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080A70D0 + lsrs r0, r2, 16 + movs r3, 0 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080A70D4 + str r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080A70CC: .4byte gTasks +_080A70D0: .4byte sub_802E424 +_080A70D4: .4byte sub_80A5B00 + thumb_func_end sub_80A7094 + + thumb_func_start sub_80A70D8 +sub_80A70D8: @ 80A70D8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80A7094 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A70D8 + + thumb_func_start ItemMenu_UseInBattle +ItemMenu_UseInBattle: @ 80A70F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A7120 + ldrh r0, [r4] + bl itemid_get_battle_function + cmp r0, 0 + beq _080A711A + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + bl itemid_get_battle_function + adds r1, r0, 0 + adds r0, r5, 0 + bl _call_via_r1 +_080A711A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7120: .4byte word_203855E + thumb_func_end ItemMenu_UseInBattle + + thumb_func_start sub_80A7124 +sub_80A7124: @ 80A7124 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl sub_80A736C + adds r0, r4, 0 + bl sub_80A37C0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7124 + + thumb_func_start sub_80A7150 +sub_80A7150: @ 80A7150 + push {r4,r5,lr} + ldr r4, _080A7158 + ldr r5, _080A715C + b _080A716C + .align 2, 0 +_080A7158: .4byte gUnknown_02038563 +_080A715C: .4byte gTasks +_080A7160: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A7190 +_080A716C: + bl sub_80A317C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A7160 + ldr r0, _080A7198 + movs r1, 0 + bl CreateTask + strb r0, [r4] + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + movs r1, 0 + strh r1, [r0, 0x26] +_080A7190: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7198: .4byte sub_80A7230 + thumb_func_end sub_80A7150 + + thumb_func_start PrepareBagForWallyTutorial +PrepareBagForWallyTutorial: @ 80A719C + push {r4,r5,lr} + ldr r0, _080A7214 + movs r1, 0 + strb r1, [r0] + ldr r0, _080A7218 + strb r1, [r0] + movs r1, 0 + ldr r4, _080A721C + ldr r5, _080A7220 + ldr r3, _080A7224 + movs r2, 0 +_080A71B2: + lsls r0, r1, 2 + adds r0, r3 + strb r2, [r0] + strb r2, [r0, 0x1] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080A71B2 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x50 + bl memcpy + movs r1, 0x80 + lsls r1, 5 + adds r0, r4, r1 + adds r4, r5, 0 + adds r4, 0xA0 + adds r1, r4, 0 + movs r2, 0x40 + bl memcpy + adds r0, r5, 0 + movs r1, 0x14 + bl sub_80A9684 + adds r0, r4, 0 + movs r1, 0x10 + bl sub_80A9684 + movs r0, 0xD + movs r1, 0x1 + bl sub_80A9424 + movs r0, 0x4 + movs r1, 0x1 + bl sub_80A9424 + ldr r1, _080A7228 + movs r0, 0x7 + strb r0, [r1] + ldr r0, _080A722C + bl SetMainCallback2 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7214: .4byte gUnknown_03000700 +_080A7218: .4byte gUnknown_02038559 +_080A721C: .4byte 0x0201e000 +_080A7220: .4byte gSaveBlock1 + 0x560 +_080A7224: .4byte gUnknown_03005D10 +_080A7228: .4byte gUnknown_03000701 +_080A722C: .4byte sub_80A7150 + thumb_func_end PrepareBagForWallyTutorial + + thumb_func_start sub_80A7230 +sub_80A7230: @ 80A7230 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r0, _080A725C + mov r8, r0 + adds r7, r6, r0 + movs r0, 0x1E + ldrsh r1, [r7, r0] + cmp r1, 0xCC + beq _080A727A + cmp r1, 0xCC + bgt _080A7260 + cmp r1, 0x66 + beq _080A726A + b _080A7358 + .align 2, 0 +_080A725C: .4byte gUnknown_03004B28 +_080A7260: + movs r0, 0x99 + lsls r0, 1 + cmp r1, r0 + beq _080A72F4 + b _080A7358 +_080A726A: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + movs r1, 0x2 + bl sub_80A4E8C + b _080A7358 +_080A727A: + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + bl sub_80F98A4 + movs r0, 0x3 + bl sub_80F98A4 + ldr r1, _080A72D8 + movs r0, 0x4 + strh r0, [r1] + ldr r1, _080A72DC + ldr r0, _080A72E0 + str r0, [r1] + ldr r1, _080A72E4 + movs r0, 0x2 + strb r0, [r1] + mov r0, r8 + adds r4, r0, r6 + ldr r3, _080A72E8 + ldr r2, _080A72EC + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + adds r1, 0x1 + strh r1, [r4, 0x14] + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80A48E8 + bl sub_80A73FC + ldr r0, _080A72F0 + bl sub_80A6DF0 + b _080A7358 + .align 2, 0 +_080A72D8: .4byte word_203855E +_080A72DC: .4byte gUnknown_03000704 +_080A72E0: .4byte gUnknown_083C1708 +_080A72E4: .4byte gUnknown_02038564 +_080A72E8: .4byte gUnknown_03005D10 +_080A72EC: .4byte gUnknown_02038559 +_080A72F0: .4byte gBG1TilemapBuffer +_080A72F4: + movs r0, 0x5 + bl PlaySE + ldr r0, _080A7344 + bl sub_80A4DA4 + ldr r4, _080A7348 + ldr r5, _080A734C + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x50 + bl memcpy + adds r4, 0xA0 + movs r0, 0x80 + lsls r0, 5 + adds r5, r0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x40 + bl memcpy + ldr r1, _080A7350 + lsrs r0, r1, 16 + strh r0, [r7, 0x10] + strh r1, [r7, 0x12] + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _080A7354 + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080A735E + .align 2, 0 +_080A7344: .4byte gBG1TilemapBuffer +_080A7348: .4byte gSaveBlock1 + 0x560 +_080A734C: .4byte 0x0201e000 +_080A7350: .4byte sub_802E424 +_080A7354: .4byte sub_80A5B00 +_080A7358: + ldrh r0, [r7, 0x1E] + adds r0, 0x1 + strh r0, [r7, 0x1E] +_080A735E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A7230 + + thumb_func_start sub_80A736C +sub_80A736C: @ 80A736C + push {lr} + sub sp, 0x8 + ldr r1, _080A73B0 + ldr r0, _080A73B4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r3, [r0, 0x3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + movs r1, 0xE + movs r2, 0x2 + bl InitMenu + ldr r1, _080A73B8 + ldr r3, _080A73BC + movs r0, 0xF + str r0, [sp] + movs r0, 0x10 + movs r2, 0xC + bl sub_814AC58 + bl sub_80A73C0 + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080A73B0: .4byte gUnknown_03005D10 +_080A73B4: .4byte gUnknown_02038559 +_080A73B8: .4byte 0x0000ffff +_080A73BC: .4byte 0x00002d9f + thumb_func_end sub_80A736C + + thumb_func_start sub_80A73C0 +sub_80A73C0: @ 80A73C0 + push {lr} + ldr r1, _080A73E8 + ldr r0, _080A73EC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + lsls r1, 28 + movs r0, 0x80 + lsls r0, 21 + adds r1, r0 + lsrs r1, 24 + movs r0, 0x70 + bl sub_814AD7C + pop {r0} + bx r0 + .align 2, 0 +_080A73E8: .4byte gUnknown_03005D10 +_080A73EC: .4byte gUnknown_02038559 + thumb_func_end sub_80A73C0 + + thumb_func_start sub_80A73F0 +sub_80A73F0: @ 80A73F0 + push {lr} + bl sub_814ADC8 + pop {r0} + bx r0 + thumb_func_end sub_80A73F0 + + thumb_func_start sub_80A73FC +sub_80A73FC: @ 80A73FC + push {lr} + bl sub_8072DEC + bl sub_814AD44 + pop {r0} + bx r0 + thumb_func_end sub_80A73FC + + thumb_func_start sub_80A740C +sub_80A740C: @ 80A740C + push {lr} + bl sub_80A75E4 + bl sub_80A7768 + bl sub_80A7420 + pop {r0} + bx r0 + thumb_func_end sub_80A740C + + thumb_func_start sub_80A7420 +sub_80A7420: @ 80A7420 + push {r4,lr} + ldr r4, _080A7438 + ldrb r0, [r4] + cmp r0, 0x2 + beq _080A743C + cmp r0, 0x3 + beq _080A7430 + b _080A7512 +_080A7430: + movs r0, 0x2 + strb r0, [r4] + b _080A7512 + .align 2, 0 +_080A7438: .4byte gUnknown_0203853C +_080A743C: + ldrb r0, [r4, 0x2] + cmp r0, 0x9 + bhi _080A74FC + lsls r0, 2 + ldr r1, _080A744C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A744C: .4byte _080A7450 + .align 2, 0 +_080A7450: + .4byte _080A7478 + .4byte _080A74AC + .4byte _080A74B4 + .4byte _080A74BC + .4byte _080A74C4 + .4byte _080A74CC + .4byte _080A74D4 + .4byte _080A74DC + .4byte _080A74E4 + .4byte _080A74F4 +_080A7478: + ldr r1, _080A74A0 + ldr r0, _080A74A4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + ldr r0, _080A74A8 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + ldrb r1, [r4, 0x1] + bl sub_80A49AC + b _080A74FC + .align 2, 0 +_080A74A0: .4byte gUnknown_03005D10 +_080A74A4: .4byte gUnknown_02038559 +_080A74A8: .4byte gUnknown_03005D24 +_080A74AC: + ldr r0, _080A74B0 + b _080A74E6 + .align 2, 0 +_080A74B0: .4byte gOtherText_SwitchWhichItem +_080A74B4: + ldr r0, _080A74B8 + b _080A74E6 + .align 2, 0 +_080A74B8: .4byte gOtherText_WhatWillYouDo2 +_080A74BC: + ldr r0, _080A74C0 + b _080A74E6 + .align 2, 0 +_080A74C0: .4byte gOtherText_HowManyToToss +_080A74C4: + ldr r0, _080A74C8 + b _080A74E6 + .align 2, 0 +_080A74C8: .4byte gOtherText_ThrewAwayItem +_080A74CC: + ldr r0, _080A74D0 + b _080A74E6 + .align 2, 0 +_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt +_080A74D4: + ldr r0, _080A74D8 + b _080A74E6 + .align 2, 0 +_080A74D8: .4byte gOtherText_HowManyToDeposit +_080A74DC: + ldr r0, _080A74E0 + b _080A74E6 + .align 2, 0 +_080A74E0: .4byte gOtherText_DepositedItems +_080A74E4: + ldr r0, _080A74F0 +_080A74E6: + ldrb r1, [r4, 0x1] + bl sub_80A4A98 + b _080A74FC + .align 2, 0 +_080A74F0: .4byte gOtherText_NoRoomForItems +_080A74F4: + ldr r0, _080A7518 + ldrb r1, [r4, 0x1] + bl sub_80A4A98 +_080A74FC: + ldrb r0, [r4, 0x1] + adds r0, 0x1 + strb r0, [r4, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _080A7512 + movs r0, 0 + strb r0, [r4] + bl sub_80A7918 +_080A7512: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7518: .4byte gOtherText_CantStoreSomeoneItem + thumb_func_end sub_80A7420 + + thumb_func_start sub_80A751C +sub_80A751C: @ 80A751C + ldr r1, _080A7524 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080A7524: .4byte gUnknown_0203853C + thumb_func_end sub_80A751C + + thumb_func_start sub_80A7528 +sub_80A7528: @ 80A7528 + push {r4,lr} + ldr r4, _080A7544 + movs r1, 0 + strb r1, [r4, 0x1] + strb r0, [r4, 0x2] + bl sub_80A78F4 + cmp r0, 0x1 + beq _080A755E + cmp r0, 0x1 + bgt _080A7548 + cmp r0, 0 + beq _080A754E + b _080A7566 + .align 2, 0 +_080A7544: .4byte gUnknown_0203853C +_080A7548: + cmp r0, 0x2 + beq _080A7562 + b _080A7566 +_080A754E: + movs r0, 0x2 + strb r0, [r4] +_080A7552: + bl sub_80A7420 + ldrb r0, [r4] + cmp r0, 0 + bne _080A7552 + b _080A7566 +_080A755E: + movs r0, 0x3 + b _080A7564 +_080A7562: + movs r0, 0x1 +_080A7564: + strb r0, [r4] +_080A7566: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7528 + + thumb_func_start sub_80A756C +sub_80A756C: @ 80A756C + push {r4,lr} + ldr r4, _080A758C + ldrb r0, [r4] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080A7580 + bl sub_80A7918 +_080A7580: + movs r0, 0 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A758C: .4byte gUnknown_0203853C + thumb_func_end sub_80A756C + + thumb_func_start sub_80A7590 +sub_80A7590: @ 80A7590 + push {lr} + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + bl sub_80A756C + pop {r0} + bx r0 + thumb_func_end sub_80A7590 + + thumb_func_start sub_80A75A8 +sub_80A75A8: @ 80A75A8 + push {lr} + ldr r1, _080A75C0 + ldrb r0, [r1] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080A75BC + movs r0, 0x1 + strb r0, [r1] +_080A75BC: + pop {r0} + bx r0 + .align 2, 0 +_080A75C0: .4byte gUnknown_0203853C + thumb_func_end sub_80A75A8 + + thumb_func_start sub_80A75C4 +sub_80A75C4: @ 80A75C4 + push {lr} + ldr r1, _080A75D8 + ldrb r0, [r1] + cmp r0, 0 + beq _080A75DC + cmp r0, 0x1 + bne _080A75E0 + movs r0, 0x3 + strb r0, [r1] + b _080A75E0 + .align 2, 0 +_080A75D8: .4byte gUnknown_0203853C +_080A75DC: + bl sub_80A7918 +_080A75E0: + pop {r0} + bx r0 + thumb_func_end sub_80A75C4 + + thumb_func_start sub_80A75E4 +sub_80A75E4: @ 80A75E4 + push {r4,r5,lr} + ldr r4, _080A7628 + ldrb r0, [r4] + cmp r0, 0x1 + bne _080A7622 + bl sub_80A7988 + adds r5, r0, 0 + cmp r5, 0 + bne _080A7622 + ldr r0, _080A762C + ldrb r0, [r0] + ldrb r2, [r4, 0x1] + adds r1, r2, 0 + movs r3, 0x1 + bl sub_80A47E8 + ldrb r0, [r4, 0x1] + adds r0, 0x1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x2] + movs r1, 0x7 + cmp r0, 0 + beq _080A7616 + movs r1, 0x5 +_080A7616: + ldrb r0, [r4, 0x1] + cmp r1, r0 + bge _080A7622 + strb r5, [r4] + bl sub_80A78E8 +_080A7622: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7628: .4byte gUnknown_02038540 +_080A762C: .4byte gUnknown_02038563 + thumb_func_end sub_80A75E4 + + thumb_func_start sub_80A7630 +sub_80A7630: @ 80A7630 + ldr r1, _080A7638 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080A7638: .4byte gUnknown_02038540 + thumb_func_end sub_80A7630 + + thumb_func_start sub_80A763C +sub_80A763C: @ 80A763C + push {r4,lr} + ldr r4, _080A7650 + bl sub_80A78C4 + adds r1, r0, 0 + cmp r1, 0 + beq _080A7654 + cmp r1, 0x1 + beq _080A7668 + b _080A7670 + .align 2, 0 +_080A7650: .4byte gUnknown_02038540 +_080A7654: + ldr r0, _080A7664 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0x7 + bl sub_80A48E8 + b _080A7670 + .align 2, 0 +_080A7664: .4byte gUnknown_02038563 +_080A7668: + movs r0, 0 + strb r1, [r4] + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] +_080A7670: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A763C + + thumb_func_start sub_80A7678 +sub_80A7678: @ 80A7678 + push {r4,lr} + ldr r4, _080A7690 + ldrb r0, [r4] + cmp r0, 0x1 + bne _080A7686 + bl sub_80A78E8 +_080A7686: + movs r0, 0 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7690: .4byte gUnknown_02038540 + thumb_func_end sub_80A7678 + + thumb_func_start sub_80A7694 +sub_80A7694: @ 80A7694 + ldr r1, _080A769C + movs r0, 0x1 + strb r0, [r1, 0x2] + bx lr + .align 2, 0 +_080A769C: .4byte gUnknown_02038540 + thumb_func_end sub_80A7694 + + thumb_func_start sub_80A76A0 +sub_80A76A0: @ 80A76A0 + push {lr} + movs r0, 0xE + movs r1, 0x2 + movs r2, 0x1D + movs r3, 0x12 + bl MenuZeroFillWindowRect + bl sub_80A7678 + pop {r0} + bx r0 + thumb_func_end sub_80A76A0 + + thumb_func_start sub_80A76B8 +sub_80A76B8: @ 80A76B8 + push {lr} + ldr r0, _080A76CC + movs r1, 0 + ldrb r0, [r0] + cmp r0, 0 + bne _080A76C6 + movs r1, 0x1 +_080A76C6: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A76CC: .4byte gUnknown_02038540 + thumb_func_end sub_80A76B8 + + thumb_func_start sub_80A76D0 +sub_80A76D0: @ 80A76D0 + push {lr} + ldr r0, _080A76E4 + movs r1, 0 + ldrb r0, [r0, 0x1] + cmp r0, 0x5 + bls _080A76DE + movs r1, 0x1 +_080A76DE: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A76E4: .4byte gUnknown_02038540 + thumb_func_end sub_80A76D0 + + thumb_func_start sub_80A76E8 +sub_80A76E8: @ 80A76E8 + push {r4,lr} + ldr r4, _080A7708 + ldrb r0, [r4] + cmp r0, 0x1 + bne _080A7702 + ldrb r0, [r4, 0x1] + ldr r1, [r4, 0x4] + ldr r2, [r4, 0x8] + ldrh r3, [r4, 0x2] + bl DisplayItemMessageOnField + movs r0, 0 + strb r0, [r4] +_080A7702: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7708: .4byte gUnknown_02038544 + thumb_func_end sub_80A76E8 + + thumb_func_start sub_80A770C +sub_80A770C: @ 80A770C + ldr r1, _080A7714 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080A7714: .4byte gUnknown_02038544 + thumb_func_end sub_80A770C + + thumb_func_start DisplayCannotUseItemMessage +DisplayCannotUseItemMessage: @ 80A7718 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r7, r1, 0 + mov r8, r2 + adds r6, r3, 0 + ldr r4, _080A7738 + bl sub_80A7924 + cmp r0, 0 + beq _080A773C + cmp r0, 0x2 + beq _080A774E + b _080A775C + .align 2, 0 +_080A7738: .4byte gUnknown_02038544 +_080A773C: + lsls r0, r5, 24 + lsrs r0, 24 + lsls r3, r6, 16 + lsrs r3, 16 + adds r1, r7, 0 + mov r2, r8 + bl DisplayItemMessageOnField + b _080A775C +_080A774E: + movs r0, 0x1 + strb r0, [r4] + strb r5, [r4, 0x1] + str r7, [r4, 0x4] + mov r0, r8 + str r0, [r4, 0x8] + strh r6, [r4, 0x2] +_080A775C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end DisplayCannotUseItemMessage + + thumb_func_start sub_80A7768 +sub_80A7768: @ 80A7768 + push {r4,lr} + ldr r4, _080A77A8 + ldrb r0, [r4] + cmp r0, 0x2 + bne _080A7814 + ldrb r1, [r4, 0x1] + cmp r1, 0 + beq _080A780E + ldrb r0, [r4, 0x2] + cmp r0, 0x1 + beq _080A77B4 + ldr r2, _080A77AC + ldr r0, _080A77B0 + ldr r0, [r0] + adds r0, r1, r0 + subs r0, 0x1 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r2 + ldr r0, [r0] + subs r1, 0x1 + lsls r1, 1 + adds r1, 0x1 + ldrb r2, [r4, 0x3] + adds r2, r1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x7 + bl MenuPrint + b _080A77FC + .align 2, 0 +_080A77A8: .4byte gUnknown_02038550 +_080A77AC: .4byte gUnknown_083C1640 +_080A77B0: .4byte gUnknown_03000704 +_080A77B4: + cmp r1, 0x1 + bne _080A77C8 + ldr r0, _080A77C4 + ldrh r0, [r0] + bl sub_80A4B90 + adds r3, r0, 0 + b _080A77DC + .align 2, 0 +_080A77C4: .4byte word_203855E +_080A77C8: + ldr r2, _080A781C + ldrb r0, [r4, 0x1] + ldr r1, _080A7820 + ldr r1, [r1] + adds r0, r1 + subs r0, 0x1 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r2 + ldr r3, [r0] +_080A77DC: + ldrb r2, [r4, 0x1] + subs r2, 0x1 + asrs r0, r2, 1 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + ands r2, r0 + lsls r2, 1 + adds r2, 0x8 + adds r0, r3, 0 + bl MenuPrint +_080A77FC: + ldr r1, _080A7824 + ldrb r0, [r4, 0x1] + ldrb r1, [r1] + cmp r0, r1 + bne _080A780E + movs r0, 0 + strb r0, [r4] + bl sub_80A7970 +_080A780E: + ldrb r0, [r4, 0x1] + adds r0, 0x1 + strb r0, [r4, 0x1] +_080A7814: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A781C: .4byte gUnknown_083C1640 +_080A7820: .4byte gUnknown_03000704 +_080A7824: .4byte gUnknown_02038564 + thumb_func_end sub_80A7768 + + thumb_func_start sub_80A7828 +sub_80A7828: @ 80A7828 + ldr r1, _080A7830 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080A7830: .4byte gUnknown_02038550 + thumb_func_end sub_80A7828 + + thumb_func_start sub_80A7834 +sub_80A7834: @ 80A7834 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r4, _080A784C + bl sub_80A7958 + cmp r0, 0x1 + beq _080A7850 + cmp r0, 0x2 + beq _080A7856 + b _080A7862 + .align 2, 0 +_080A784C: .4byte gUnknown_02038550 +_080A7850: + movs r1, 0 + movs r0, 0x2 + b _080A785A +_080A7856: + movs r1, 0 + movs r0, 0x1 +_080A785A: + strb r0, [r4] + strb r1, [r4, 0x1] + strb r5, [r4, 0x2] + strb r6, [r4, 0x3] +_080A7862: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A7834 + + thumb_func_start sub_80A7868 +sub_80A7868: @ 80A7868 + push {lr} + ldr r1, _080A787C + ldrb r0, [r1] + cmp r0, 0x2 + bne _080A7876 + movs r0, 0x1 + strb r0, [r1] +_080A7876: + pop {r0} + bx r0 + .align 2, 0 +_080A787C: .4byte gUnknown_02038550 + thumb_func_end sub_80A7868 + + thumb_func_start sub_80A7880 +sub_80A7880: @ 80A7880 + push {lr} + ldr r1, _080A7894 + ldrb r0, [r1] + cmp r0, 0 + beq _080A7898 + cmp r0, 0x1 + bne _080A789C + movs r0, 0x2 + strb r0, [r1] + b _080A789C + .align 2, 0 +_080A7894: .4byte gUnknown_02038550 +_080A7898: + bl sub_80A7970 +_080A789C: + pop {r0} + bx r0 + thumb_func_end sub_80A7880 + + thumb_func_start rfu_lacks_rfufunc +rfu_lacks_rfufunc: @ 80A78A0 + push {lr} + ldr r0, _080A78B4 + movs r1, 0 + ldrb r0, [r0] + cmp r0, 0 + bne _080A78AE + movs r1, 0x1 +_080A78AE: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A78B4: .4byte gUnknown_02038550 + thumb_func_end rfu_lacks_rfufunc + + thumb_func_start sub_80A78B8 +sub_80A78B8: @ 80A78B8 + ldr r1, _080A78C0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080A78C0: .4byte gUnknown_02038554 + thumb_func_end sub_80A78B8 + + thumb_func_start sub_80A78C4 +sub_80A78C4: @ 80A78C4 + push {lr} + ldr r0, _080A78DC + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A78E0 + bl sub_80A7868 + bl sub_80A75A8 + movs r0, 0x1 + b _080A78E2 + .align 2, 0 +_080A78DC: .4byte gLinkOpen +_080A78E0: + movs r0, 0 +_080A78E2: + pop {r1} + bx r1 + thumb_func_end sub_80A78C4 + + thumb_func_start sub_80A78E8 +sub_80A78E8: @ 80A78E8 + push {lr} + bl sub_80A7880 + pop {r0} + bx r0 + thumb_func_end sub_80A78E8 + + thumb_func_start sub_80A78F4 +sub_80A78F4: @ 80A78F4 + push {lr} + ldr r0, _080A790C + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A7910 + bl sub_80A76B8 + movs r1, 0x2 + cmp r0, 0 + beq _080A7912 + movs r1, 0x1 + b _080A7912 + .align 2, 0 +_080A790C: .4byte gLinkOpen +_080A7910: + movs r1, 0 +_080A7912: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_80A78F4 + + thumb_func_start sub_80A7918 +sub_80A7918: @ 80A7918 + push {lr} + bl sub_80A76E8 + pop {r0} + bx r0 + thumb_func_end sub_80A7918 + + thumb_func_start sub_80A7924 +sub_80A7924: @ 80A7924 + push {lr} + ldr r0, _080A7948 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A7942 + bl sub_80A76B8 + cmp r0, 0 + bne _080A7942 + bl sub_80A76D0 + cmp r0, 0 + beq _080A794C + bl sub_80A7678 +_080A7942: + movs r0, 0 + b _080A7952 + .align 2, 0 +_080A7948: .4byte gLinkOpen +_080A794C: + bl sub_80A7694 + movs r0, 0x2 +_080A7952: + pop {r1} + bx r1 + thumb_func_end sub_80A7924 + + thumb_func_start sub_80A7958 +sub_80A7958: @ 80A7958 + push {lr} + bl sub_80A76B8 + cmp r0, 0 + beq _080A796A + bl sub_80A75A8 + movs r0, 0x1 + b _080A796C +_080A796A: + movs r0, 0x2 +_080A796C: + pop {r1} + bx r1 + thumb_func_end sub_80A7958 + + thumb_func_start sub_80A7970 +sub_80A7970: @ 80A7970 + push {lr} + bl sub_80A75C4 + pop {r0} + bx r0 + thumb_func_end sub_80A7970 + + thumb_func_start sub_80A797C +sub_80A797C: @ 80A797C + ldr r1, _080A7984 + movs r0, 0x1 + strb r0, [r1] + bx lr + .align 2, 0 +_080A7984: .4byte gUnknown_02038554 + thumb_func_end sub_80A797C + + thumb_func_start sub_80A7988 +sub_80A7988: @ 80A7988 + ldr r1, _080A7994 + ldrb r0, [r1] + movs r2, 0 + strb r2, [r1] + bx lr + .align 2, 0 +_080A7994: .4byte gUnknown_02038554 + thumb_func_end sub_80A7988 + + thumb_func_start sub_80A7998 +sub_80A7998: @ 80A7998 + adds r2, r0, 0 + adds r2, 0x2A + movs r1, 0 + strb r1, [r2] + strh r1, [r0, 0x2E] + strh r1, [r0, 0x30] + strh r1, [r0, 0x32] + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + ldr r1, _080A79B0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A79B0: .4byte sub_80A79B4 + thumb_func_end sub_80A7998 + + thumb_func_start sub_80A79B4 +sub_80A79B4: @ 80A79B4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A79E4 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080A79CC + adds r0, r4, 0 + bl sub_80A79EC +_080A79CC: + ldr r0, _080A79E8 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080A79DE + adds r0, r4, 0 + bl sub_80A7A94 +_080A79DE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A79E4: .4byte gUnknown_0203855B +_080A79E8: .4byte gUnknown_0203855C + thumb_func_end sub_80A79B4 + + thumb_func_start sub_80A79EC +sub_80A79EC: @ 80A79EC + push {r4-r6,lr} + adds r2, r0, 0 + movs r0, 0x34 + ldrsh r4, [r2, r0] + cmp r4, 0 + beq _080A79FE + cmp r4, 0x1 + beq _080A7A54 + b _080A7A8A +_080A79FE: + ldr r5, _080A7A28 + ldrb r6, [r5] + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0x6 + beq _080A7A2C + adds r3, r2, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x2A + strb r6, [r0] + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 + strb r0, [r5] + b _080A7A8A + .align 2, 0 +_080A7A28: .4byte gUnknown_0203855B +_080A7A2C: + adds r3, r2, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x2A + strb r4, [r0] + ldrh r0, [r2, 0x22] + subs r0, 0x4 + strh r0, [r2, 0x22] + movs r0, 0x4 + strh r0, [r2, 0x2E] + movs r0, 0x1 + strh r0, [r2, 0x34] + adds r0, r2, 0 + bl sub_80A7AE4 + b _080A7A8A +_080A7A54: + ldrh r4, [r2, 0x2E] + movs r0, 0x2E + ldrsh r3, [r2, r0] + cmp r3, 0 + beq _080A7A7C + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080A7A72 + ldrh r0, [r2, 0x22] + adds r0, 0x1 + strh r0, [r2, 0x22] + subs r0, r4, 0x1 + strh r0, [r2, 0x2E] +_080A7A72: + adds r0, r1, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r2, 0x30] + b _080A7A8A +_080A7A7C: + ldr r1, _080A7A90 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + strb r0, [r1] + strh r3, [r2, 0x30] + strh r3, [r2, 0x34] +_080A7A8A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A7A90: .4byte gUnknown_0203855B + thumb_func_end sub_80A79EC + + thumb_func_start sub_80A7A94 +sub_80A7A94: @ 80A7A94 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A7AA6 + cmp r0, 0x1 + beq _080A7AC8 + b _080A7ADC +_080A7AA6: + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080A7AC4 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + movs r0, 0x1 + strh r0, [r4, 0x36] + b _080A7ADC + .align 2, 0 +_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4 +_080A7AC8: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080A7ADC + adds r0, r4, 0 + bl sub_80A7AE4 +_080A7ADC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7A94 + + thumb_func_start sub_80A7AE4 +sub_80A7AE4: @ 80A7AE4 + push {lr} + ldr r2, _080A7B0C + movs r1, 0 + strb r1, [r2] + ldrb r2, [r0, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x1] + movs r1, 0 + strh r1, [r0, 0x32] + strh r1, [r0, 0x36] + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + pop {r0} + bx r0 + .align 2, 0 +_080A7B0C: .4byte gUnknown_0203855C + thumb_func_end sub_80A7AE4 + + thumb_func_start sub_80A7B10 +sub_80A7B10: @ 80A7B10 + push {lr} + ldr r0, _080A7B24 + movs r1, 0x3A + movs r2, 0x28 + movs r3, 0 + bl CreateSprite + pop {r0} + bx r0 + .align 2, 0 +_080A7B24: .4byte gSpriteTemplate_83C1CE0 + thumb_func_end sub_80A7B10 + + thumb_func_start sub_80A7B28 +sub_80A7B28: @ 80A7B28 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + strh r0, [r4, 0x34] + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80A7B6C + ldr r0, _080A7B44 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7B44: .4byte sub_80A7B6C + thumb_func_end sub_80A7B28 + + thumb_func_start sub_80A7B48 +sub_80A7B48: @ 80A7B48 + ldrh r2, [r0, 0x38] + ldrh r1, [r0, 0x2E] + adds r1, 0x1 + movs r3, 0x1 + ands r1, r3 + subs r2, r1 + adds r1, r0, 0 + adds r1, 0x28 + strb r2, [r1] + ldrh r2, [r0, 0x3A] + ldrh r1, [r0, 0x2E] + adds r1, 0x1 + ands r1, r3 + subs r2, r1 + adds r0, 0x29 + strb r2, [r0] + bx lr + thumb_func_end sub_80A7B48 + + thumb_func_start sub_80A7B6C +sub_80A7B6C: @ 80A7B6C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _080A7C16 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A7B86 + cmp r0, 0x1 + beq _080A7BD4 + b _080A7C16 +_080A7B86: + ldrb r0, [r4, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strb r1, [r4, 0x1] + cmp r2, 0x1 + bne _080A7BA0 + ldr r0, _080A7B9C + b _080A7BA2 + .align 2, 0 +_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20 +_080A7BA0: + ldr r0, _080A7BD0 +_080A7BA2: + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + movs r0, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x38] + adds r0, r4, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x3A] + adds r0, r4, 0 + bl sub_80A7B48 + b _080A7C16 + .align 2, 0 +_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4 +_080A7BD4: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80A7B48 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _080A7C16 + strh r5, [r4, 0x2E] + strh r5, [r4, 0x34] + ldrh r1, [r4, 0x38] + adds r0, r4, 0 + adds r0, 0x28 + strb r1, [r0] + ldrh r0, [r4, 0x3A] + adds r1, r4, 0 + adds r1, 0x29 + strb r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080A7C1C + str r0, [r4, 0x1C] +_080A7C16: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7C1C: .4byte SpriteCallbackDummy + thumb_func_end sub_80A7B6C + + thumb_func_start sub_80A7C20 +sub_80A7C20: @ 80A7C20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080A7C54 + bl LoadSpritePalette + ldr r0, _080A7C58 + movs r1, 0x10 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + ldr r1, _080A7C5C + strb r0, [r1] + ldr r2, _080A7C60 + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x3C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7C54: .4byte gUnknown_083C1D30 +_080A7C58: .4byte gSpriteTemplate_83C1D38 +_080A7C5C: .4byte gUnknown_02038568 +_080A7C60: .4byte gSprites + thumb_func_end sub_80A7C20 + + thumb_func_start sub_80A7C64 +sub_80A7C64: @ 80A7C64 + push {r4,r5,lr} + movs r0, 0x8 + bl FreeSpritePaletteByTag + ldr r5, _080A7C98 + ldr r4, _080A7C9C + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7C98: .4byte gSprites +_080A7C9C: .4byte gUnknown_02038568 + thumb_func_end sub_80A7C64 + + thumb_func_start sub_80A7CA0 +sub_80A7CA0: @ 80A7CA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + movs r2, 0x80 + lsls r2, 4 + adds r0, r4, 0 + movs r1, 0 + bl memset + movs r0, 0x80 + lsls r0, 1 + adds r4, r0 + movs r7, 0 +_080A7CBE: + adds r4, 0x20 + movs r5, 0 + adds r1, r7, 0x1 + mov r8, r1 +_080A7CC6: + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x20 + bl memcpy + adds r4, 0x20 + adds r6, 0x20 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080A7CC6 + cmp r7, 0x5 + beq _080A7CE4 + adds r4, 0x20 +_080A7CE4: + mov r1, r8 + lsls r0, r1, 24 + lsrs r7, r0, 24 + cmp r7, 0x5 + bls _080A7CBE + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A7CA0 + + thumb_func_start sub_80A7CF8 +sub_80A7CF8: @ 80A7CF8 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2A + bne _080A7D44 + bl sub_80B4940 + cmp r0, 0x1 + bne _080A7D44 + ldr r4, _080A7D34 + ldr r1, _080A7D38 + adds r0, r4, 0 + bl sub_80A7CA0 + movs r0, 0x90 + lsls r0, 3 + adds r4, r0 + str r4, [sp] + ldr r1, _080A7D3C + ldr r0, [sp, 0x4] + ands r0, r1 + ldr r1, _080A7D40 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + b _080A7D72 + .align 2, 0 +_080A7D34: .4byte gSaveBlock1 + 0x317C +_080A7D38: .4byte 0x02000000 +_080A7D3C: .4byte 0xffff0000 +_080A7D40: .4byte 0x00007544 +_080A7D44: + ldr r5, _080A7D7C + lsls r4, 3 + adds r0, r5, 0x4 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp] + mov r1, sp + ldr r0, _080A7D80 + strh r0, [r1, 0x4] + mov r0, sp + bl LoadCompressedObjectPalette + adds r4, r5 + ldr r0, [r4] + ldr r4, _080A7D84 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _080A7D88 + adds r1, r4, r0 + adds r0, r4, 0 + bl sub_80A7CA0 +_080A7D72: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7D7C: .4byte gBerryGraphicsTable +_080A7D80: .4byte 0x00007544 +_080A7D84: .4byte 0x02001000 +_080A7D88: .4byte 0xfffff000 + thumb_func_end sub_80A7CF8 + + thumb_func_start sub_80A7D8C +sub_80A7D8C: @ 80A7D8C + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + bl sub_80A7CF8 + ldr r0, _080A7DC0 + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080A7DC0: .4byte gSpriteTemplate_83C1D74 + thumb_func_end sub_80A7D8C + + thumb_func_start sub_80A7DC4 +sub_80A7DC4: @ 80A7DC4 + ldr r1, _080A7DD0 + ldrh r1, [r1] + negs r1, r1 + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_080A7DD0: .4byte gUnknown_030041B4 + thumb_func_end sub_80A7DC4 + + thumb_func_start sub_80A7DD4 +sub_80A7DD4: @ 80A7DD4 + push {lr} + ldr r0, _080A7DE8 + bl FreeSpritePaletteByTag + movs r0, 0x8 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080A7DE8: .4byte 0x00007544 + thumb_func_end sub_80A7DD4 + + thumb_func_start sub_80A7DEC +sub_80A7DEC: @ 80A7DEC + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _080A7E50 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl sub_80A7CF8 + ldr r0, _080A7E54 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + adds r4, r1, 0 + mov r0, r8 + cmp r0, 0x1 + bne _080A7E42 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A7E58 + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080A7E42: + adds r0, r4, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080A7E50: .4byte 0x00007544 +_080A7E54: .4byte gSpriteTemplate_83C1E04 +_080A7E58: .4byte gSprites + thumb_func_end sub_80A7DEC + + thumb_func_start sub_80A7E5C +sub_80A7E5C: @ 80A7E5C + push {lr} + adds r1, r0, 0 + ldr r0, _080A7E78 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x63 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080A7E78: .4byte gSpriteTemplate_83C1F98 + thumb_func_end sub_80A7E5C + + thumb_func_start sub_80A7E7C +sub_80A7E7C: @ 80A7E7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A7E9C + ldrb r0, [r4] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _080A7EA0 + adds r0, r5, 0 + bl move_anim_task_del + b _080A7EDC + .align 2, 0 +_080A7E9C: .4byte gUnknown_03004B00 +_080A7EA0: + ldr r1, _080A7EE4 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r4, 0x2] + strh r1, [r0, 0x24] + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x26] + ldr r1, _080A7EE8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x8] + ldrh r1, [r4, 0x6] + strh r1, [r0, 0xA] + ldrh r1, [r4, 0x8] + strh r1, [r0, 0xC] + ldrh r1, [r4, 0x8] + strh r1, [r0, 0xE] + ldrh r1, [r4, 0x2] + strh r1, [r0, 0x10] + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x12] + ldr r1, _080A7EEC + str r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 +_080A7EDC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7EE4: .4byte gSprites +_080A7EE8: .4byte gTasks +_080A7EEC: .4byte sub_80A7EF0 + thumb_func_end sub_80A7E7C + + thumb_func_start sub_80A7EF0 +sub_80A7EF0: @ 80A7EF0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A7F2C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0xE] + movs r2, 0xE + ldrsh r5, [r3, r2] + adds r7, r1, 0 + cmp r5, 0 + bne _080A7F96 + ldr r2, _080A7F30 + movs r6, 0x8 + ldrsh r1, [r3, r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + movs r6, 0x24 + ldrsh r0, [r1, r6] + adds r6, r2, 0 + cmp r0, 0 + bne _080A7F34 + ldrh r0, [r3, 0x10] + strh r0, [r1, 0x24] + b _080A7F36 + .align 2, 0 +_080A7F2C: .4byte gTasks +_080A7F30: .4byte gSprites +_080A7F34: + strh r5, [r1, 0x24] +_080A7F36: + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r7 + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r6 + movs r5, 0x26 + ldrsh r0, [r1, r5] + cmp r0, 0 + bne _080A7F56 + ldrh r0, [r3, 0x12] + b _080A7F58 +_080A7F56: + movs r0, 0 +_080A7F58: + strh r0, [r1, 0x26] + adds r0, r2, r4 + lsls r0, 3 + adds r2, r0, r7 + ldrh r0, [r2, 0xC] + strh r0, [r2, 0xE] + ldrh r0, [r2, 0xA] + subs r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r3, r0, 16 + cmp r3, 0 + bne _080A7F9A + movs r0, 0x8 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r3, [r0, 0x24] + movs r5, 0x8 + ldrsh r1, [r2, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r3, [r0, 0x26] + adds r0, r4, 0 + bl move_anim_task_del + b _080A7F9A +_080A7F96: + subs r0, 0x1 + strh r0, [r3, 0xE] +_080A7F9A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A7EF0 + + thumb_func_start sub_80A7FA0 +sub_80A7FA0: @ 80A7FA0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _080A7FC8 + ldrh r0, [r2] + movs r3, 0 + ldrsh r1, [r2, r3] + cmp r1, 0x3 + bgt _080A7FCC + lsls r0, 24 + lsrs r0, 24 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + bne _080A8022 + b _080A8026 + .align 2, 0 +_080A7FC8: .4byte gUnknown_03004B00 +_080A7FCC: + cmp r1, 0x8 + beq _080A8018 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x5 + beq _080A7FEC + cmp r0, 0x5 + bgt _080A7FE2 + cmp r0, 0x4 + beq _080A7FE8 + b _080A7FF4 +_080A7FE2: + cmp r0, 0x6 + beq _080A7FF0 + b _080A7FF4 +_080A7FE8: + movs r0, 0 + b _080A7FF6 +_080A7FEC: + movs r0, 0x2 + b _080A7FF6 +_080A7FF0: + movs r0, 0x1 + b _080A7FF6 +_080A7FF4: + movs r0, 0x3 +_080A7FF6: + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080A800C + movs r6, 0x1 +_080A800C: + ldr r0, _080A8014 + adds r0, r4, r0 + b _080A8020 + .align 2, 0 +_080A8014: .4byte gUnknown_02024BE0 +_080A8018: + ldr r1, _080A8030 + ldr r0, _080A8034 + ldrb r0, [r0] + adds r0, r1 +_080A8020: + ldrb r3, [r0] +_080A8022: + cmp r6, 0 + beq _080A8038 +_080A8026: + adds r0, r5, 0 + bl move_anim_task_del + b _080A8076 + .align 2, 0 +_080A8030: .4byte gUnknown_02024BE0 +_080A8034: .4byte gUnknown_0202F7C8 +_080A8038: + ldr r1, _080A807C + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldr r2, _080A8080 + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x24] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x26] + ldr r1, _080A8084 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x8] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0xE] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x10] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x12] + ldr r1, _080A8088 + str r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 +_080A8076: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A807C: .4byte gSprites +_080A8080: .4byte gUnknown_03004B00 +_080A8084: .4byte gTasks +_080A8088: .4byte sub_80A808C + thumb_func_end sub_80A7FA0 + + thumb_func_start sub_80A808C +sub_80A808C: @ 80A808C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A80D0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + mov r12, r1 + cmp r0, 0 + bne _080A8144 + ldr r2, _080A80D4 + movs r7, 0x8 + ldrsh r1, [r3, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r0, 0x24 + ldrsh r1, [r4, r0] + ldrh r5, [r3, 0x10] + movs r7, 0x10 + ldrsh r0, [r3, r7] + adds r7, r2, 0 + cmp r1, r0 + bne _080A80D8 + negs r0, r5 + strh r0, [r4, 0x24] + b _080A80DA + .align 2, 0 +_080A80D0: .4byte gTasks +_080A80D4: .4byte gSprites +_080A80D8: + strh r5, [r4, 0x24] +_080A80DA: + lsls r3, r6, 2 + adds r1, r3, r6 + lsls r1, 3 + add r1, r12 + movs r0, 0x8 + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r7 + movs r0, 0x26 + ldrsh r2, [r4, r0] + mov r8, r2 + ldrh r5, [r1, 0x12] + movs r2, 0x12 + ldrsh r0, [r1, r2] + cmp r8, r0 + bne _080A8104 + negs r0, r5 + strh r0, [r4, 0x26] + b _080A8106 +_080A8104: + strh r5, [r4, 0x26] +_080A8106: + adds r0, r3, r6 + lsls r0, 3 + mov r4, r12 + adds r3, r0, r4 + ldrh r0, [r3, 0xC] + strh r0, [r3, 0xE] + ldrh r0, [r3, 0xA] + subs r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bne _080A8148 + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x24] + movs r4, 0x8 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + adds r0, r6, 0 + bl move_anim_task_del + b _080A8148 +_080A8144: + subs r0, r2, 0x1 + strh r0, [r3, 0xE] +_080A8148: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A808C + + thumb_func_start sub_80A8154 +sub_80A8154: @ 80A8154 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A8174 + ldrb r0, [r4] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + bne _080A8178 + adds r0, r5, 0 + bl move_anim_task_del + b _080A81C6 + .align 2, 0 +_080A8174: .4byte gUnknown_03004B00 +_080A8178: + ldr r0, _080A81CC + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x2] + ldrh r2, [r1, 0x24] + adds r0, r2 + movs r2, 0 + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x4] + ldrh r6, [r1, 0x26] + adds r0, r6 + strh r0, [r1, 0x26] + ldr r0, _080A81D0 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + strh r3, [r1, 0x8] + strh r2, [r1, 0xA] + ldrh r0, [r4, 0x6] + strh r0, [r1, 0xC] + strh r2, [r1, 0xE] + ldrh r0, [r4, 0x8] + strh r0, [r1, 0x10] + movs r2, 0x2 + ldrsh r0, [r4, r2] + lsls r0, 1 + strh r0, [r1, 0x12] + movs r6, 0x4 + ldrsh r0, [r4, r6] + lsls r0, 1 + strh r0, [r1, 0x14] + ldr r2, _080A81D4 + str r2, [r1] + adds r0, r5, 0 + bl _call_via_r2 +_080A81C6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A81CC: .4byte gSprites +_080A81D0: .4byte gTasks +_080A81D4: .4byte sub_80A81D8 + thumb_func_end sub_80A8154 + + thumb_func_start sub_80A81D8 +sub_80A81D8: @ 80A81D8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A8230 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r0, [r4, r3] + adds r6, r1, 0 + cmp r0, 0 + beq _080A81F6 + b _080A8308 +_080A81F6: + ldrh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A8238 + ldr r2, _080A8234 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x12] + ldrh r3, [r0, 0x24] + adds r1, r3 + strh r1, [r0, 0x24] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x14] + ldrh r3, [r0, 0x26] + adds r1, r3 + strh r1, [r0, 0x26] + adds r3, r2, 0 + b _080A8262 + .align 2, 0 +_080A8230: .4byte gTasks +_080A8234: .4byte gSprites +_080A8238: + ldr r3, _080A82C4 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + ldrh r2, [r4, 0x12] + subs r1, r2 + strh r1, [r0, 0x24] + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + ldrh r2, [r4, 0x14] + subs r1, r2 + strh r1, [r0, 0x26] +_080A8262: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r6 + ldrh r0, [r4, 0x10] + strh r0, [r4, 0xE] + ldrh r0, [r4, 0xA] + adds r2, r0, 0x1 + strh r2, [r4, 0xA] + lsls r0, r2, 16 + asrs r0, 16 + movs r6, 0xC + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080A830C + movs r0, 0x1 + ands r2, r0 + cmp r2, 0 + beq _080A82C8 + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r2, 0x12 + ldrsh r0, [r4, r2] + lsrs r2, r0, 31 + adds r0, r2 + asrs r0, 1 + ldrh r6, [r1, 0x24] + adds r0, r6 + strh r0, [r1, 0x24] + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r2, 0x14 + ldrsh r0, [r4, r2] + lsrs r2, r0, 31 + adds r0, r2 + asrs r0, 1 + ldrh r3, [r1, 0x26] + adds r0, r3 + strh r0, [r1, 0x26] + b _080A8300 + .align 2, 0 +_080A82C4: .4byte gSprites +_080A82C8: + movs r6, 0x8 + ldrsh r0, [r4, r6] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r0, [r2, 0x24] + subs r0, r1 + strh r0, [r2, 0x24] + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + movs r3, 0x14 + ldrsh r1, [r4, r3] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r0, [r2, 0x26] + subs r0, r1 + strh r0, [r2, 0x26] +_080A8300: + adds r0, r5, 0 + bl move_anim_task_del + b _080A830C +_080A8308: + subs r0, r2, 0x1 + strh r0, [r4, 0xE] +_080A830C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A81D8 + + thumb_func_start sub_80A8314 +sub_80A8314: @ 80A8314 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080A8364 + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A8368 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r5, 0x2] + strh r2, [r1, 0x24] + ldr r2, _080A836C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0x8] + ldrh r0, [r5, 0x2] + strh r0, [r1, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r1, 0xC] + ldrh r0, [r5, 0x6] + strh r0, [r1, 0xE] + ldrh r0, [r5, 0x8] + strh r0, [r1, 0x10] + ldr r2, _080A8370 + str r2, [r1] + adds r0, r4, 0 + bl _call_via_r2 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8364: .4byte gUnknown_03004B00 +_080A8368: .4byte gSprites +_080A836C: .4byte gTasks +_080A8370: .4byte sub_80A8374 + thumb_func_end sub_80A8314 + + thumb_func_start sub_80A8374 +sub_80A8374: @ 80A8374 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080A8400 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r2 + ldrb r5, [r3, 0x8] + ldrh r4, [r3, 0xA] + ldrh r1, [r3, 0x18] + adds r0, r1, 0x1 + strh r0, [r3, 0x18] + movs r7, 0xC + ldrsh r0, [r3, r7] + lsls r1, 16 + asrs r1, 16 + mov r12, r2 + ldr r7, _080A8404 + cmp r0, r1 + bne _080A83C6 + movs r0, 0 + strh r0, [r3, 0x18] + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, r0, r7 + ldrh r3, [r1, 0x24] + movs r0, 0x24 + ldrsh r2, [r1, r0] + lsls r0, r4, 16 + asrs r0, 16 + cmp r2, r0 + bne _080A83BE + negs r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_080A83BE: + lsls r0, r4, 16 + asrs r0, 16 + adds r0, r3 + strh r0, [r1, 0x24] +_080A83C6: + lsls r2, r6, 2 + adds r2, r6 + lsls r2, 3 + add r2, r12 + strh r4, [r2, 0xA] + ldrh r1, [r2, 0xE] + ldrh r0, [r2, 0x1A] + adds r1, r0 + strh r1, [r2, 0x1A] + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r7 + lsls r1, 16 + asrs r1, 24 + strh r1, [r0, 0x26] + ldrh r0, [r2, 0x10] + subs r0, 0x1 + strh r0, [r2, 0x10] + lsls r0, 16 + cmp r0, 0 + bne _080A83F8 + adds r0, r6, 0 + bl move_anim_task_del +_080A83F8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8400: .4byte gTasks +_080A8404: .4byte gSprites + thumb_func_end sub_80A8374 + + thumb_func_start sub_80A8408 +sub_80A8408: @ 80A8408 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0x1 + ldr r4, _080A847C + ldrb r0, [r4] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r7, r0, 24 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + ble _080A842C + movs r0, 0x5 + strh r0, [r4, 0x8] +_080A842C: + movs r1, 0 + movs r2, 0x8 + ldrsh r0, [r4, r2] + adds r3, r4, 0 + ldr r2, _080A8480 + mov r12, r2 + lsls r4, r5, 2 + ldr r2, _080A8484 + mov r8, r2 + cmp r1, r0 + bge _080A8452 + adds r2, r0, 0 +_080A8444: + lsls r0, r6, 25 + lsrs r6, r0, 24 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r2 + blt _080A8444 +_080A8452: + adds r0, r4, r5 + lsls r0, 3 + add r0, r12 + strh r7, [r0, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r0, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0xE] + strh r6, [r0, 0x10] + mov r1, r8 + str r1, [r0] + adds r0, r5, 0 + bl _call_via_r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A847C: .4byte gUnknown_03004B00 +_080A8480: .4byte gTasks +_080A8484: .4byte sub_80A8488 + thumb_func_end sub_80A8408 + + thumb_func_start sub_80A8488 +sub_80A8488: @ 80A8488 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080A84F8 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrb r4, [r5, 0x8] + movs r1, 0x12 + ldrsh r0, [r5, r1] + movs r2, 0xA + ldrsh r1, [r5, r2] + bl Sin + ldr r2, _080A84FC + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r4, r1, r2 + strh r0, [r4, 0x24] + movs r1, 0x12 + ldrsh r0, [r5, r1] + movs r2, 0xC + ldrsh r1, [r5, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r5, 0xC] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r5, 0x10] + ldrh r1, [r5, 0x12] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x12] + cmp r0, 0 + bne _080A84E0 + ldrh r0, [r5, 0xE] + subs r0, 0x1 + strh r0, [r5, 0xE] +_080A84E0: + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080A84F2 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl move_anim_task_del +_080A84F2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A84F8: .4byte gTasks +_080A84FC: .4byte gSprites + thumb_func_end sub_80A8488 + + thumb_func_start sub_80A8500 +sub_80A8500: @ 80A8500 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A8528 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A851C + ldr r1, _080A852C + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A851C: + adds r0, r4, 0 + bl sub_80A8408 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8528: .4byte gUnknown_0202F7C8 +_080A852C: .4byte gUnknown_03004B00 + thumb_func_end sub_80A8500 + + thumb_func_start sub_80A8530 +sub_80A8530: @ 80A8530 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A8558 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8560 + ldr r1, _080A855C + ldrh r0, [r1, 0x2] + negs r0, r0 + b _080A8564 + .align 2, 0 +_080A8558: .4byte gUnknown_0202F7C8 +_080A855C: .4byte gUnknown_03004B00 +_080A8560: + ldr r1, _080A8590 + ldrh r0, [r1, 0x2] +_080A8564: + strh r0, [r4, 0x30] + ldrh r2, [r1] + movs r0, 0 + strh r2, [r4, 0x2E] + strh r0, [r4, 0x32] + ldr r1, _080A8594 + ldr r0, _080A8598 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + strh r2, [r4, 0x36] + ldr r1, _080A859C + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080A85A0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8590: .4byte gUnknown_03004B00 +_080A8594: .4byte gUnknown_02024BE0 +_080A8598: .4byte gUnknown_0202F7C8 +_080A859C: .4byte sub_80A85A4 +_080A85A0: .4byte sub_8078458 + thumb_func_end sub_80A8530 + + thumb_func_start sub_80A85A4 +sub_80A85A4: @ 80A85A4 + push {lr} + ldrh r1, [r0, 0x36] + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x30] + negs r1, r1 + strh r1, [r0, 0x30] + ldr r1, _080A85C0 + str r1, [r0, 0x1C] + ldr r1, _080A85C4 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080A85C0: .4byte sub_8078458 +_080A85C4: .4byte move_anim_8072740 + thumb_func_end sub_80A85A4 + + thumb_func_start sub_80A85C8 +sub_80A85C8: @ 80A85C8 + push {r4,r5,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r5, _080A8608 + ldrb r0, [r5, 0x4] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r5] + movs r1, 0 + strh r2, [r4, 0x2E] + strh r1, [r4, 0x30] + ldrh r1, [r5, 0x2] + strh r1, [r4, 0x32] + strh r0, [r4, 0x34] + strh r2, [r4, 0x36] + ldr r1, _080A860C + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080A8610 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8608: .4byte gUnknown_03004B00 +_080A860C: .4byte sub_80A8614 +_080A8610: .4byte sub_8078458 + thumb_func_end sub_80A85C8 + + thumb_func_start sub_80A8614 +sub_80A8614: @ 80A8614 + push {lr} + ldrh r1, [r0, 0x36] + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x32] + negs r1, r1 + strh r1, [r0, 0x32] + ldr r1, _080A8630 + str r1, [r0, 0x1C] + ldr r1, _080A8634 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080A8630: .4byte sub_8078458 +_080A8634: .4byte move_anim_8072740 + thumb_func_end sub_80A8614 + + thumb_func_start sub_80A8638 +sub_80A8638: @ 80A8638 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r0, _080A8650 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A865C + ldr r1, _080A8654 + ldr r0, _080A8658 + b _080A8660 + .align 2, 0 +_080A8650: .4byte gUnknown_03004B00 +_080A8654: .4byte gUnknown_02024BE0 +_080A8658: .4byte gUnknown_0202F7C8 +_080A865C: + ldr r1, _080A86C0 + ldr r0, _080A86C4 +_080A8660: + ldrb r0, [r0] + adds r0, r1 + ldrb r7, [r0] + ldr r5, _080A86C8 + ldrh r0, [r5, 0x4] + movs r3, 0 + strh r0, [r6, 0x2E] + ldr r0, _080A86CC + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r4, r0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r6, 0x30] + ldrh r0, [r4, 0x20] + strh r0, [r6, 0x32] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r6, 0x34] + ldrh r0, [r4, 0x22] + strh r0, [r6, 0x36] + adds r0, r6, 0 + str r3, [sp] + bl sub_8078A5C + ldr r3, [sp] + strh r3, [r6, 0x34] + strh r3, [r6, 0x36] + ldrh r0, [r4, 0x24] + strh r0, [r6, 0x38] + ldrh r0, [r4, 0x26] + strh r0, [r6, 0x3A] + adds r2, r6, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080A86D0 + strh r3, [r6, 0x32] + b _080A86D6 + .align 2, 0 +_080A86C0: .4byte gUnknown_02024BE0 +_080A86C4: .4byte gUnknown_0202F7C9 +_080A86C8: .4byte gUnknown_03004B00 +_080A86CC: .4byte gSprites +_080A86D0: + cmp r0, 0x2 + bne _080A86D6 + strh r3, [r6, 0x30] +_080A86D6: + ldr r0, _080A86EC + ldrh r1, [r0, 0x2] + lsls r0, r7, 8 + orrs r0, r1 + strh r0, [r6, 0x3C] + ldr r0, _080A86F0 + str r0, [r6, 0x1C] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A86EC: .4byte gUnknown_03004B00 +_080A86F0: .4byte sub_80A86F4 + thumb_func_end sub_80A8638 + + thumb_func_start sub_80A86F4 +sub_80A86F4: @ 80A86F4 + push {r4-r6,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x3C] + lsls r1, r0, 24 + lsrs r4, r1, 24 + adds r5, r4, 0 + lsls r0, 16 + asrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _080A8730 + adds r3, r1, r0 + ldrh r0, [r2, 0x2E] + movs r6, 0x2E + ldrsh r1, [r2, r6] + cmp r1, 0 + bne _080A8734 + cmp r4, 0x1 + bhi _080A871E + strh r1, [r3, 0x24] +_080A871E: + cmp r5, 0x2 + beq _080A8726 + cmp r5, 0 + bne _080A8728 +_080A8726: + strh r1, [r3, 0x26] +_080A8728: + adds r0, r2, 0 + bl move_anim_8072740 + b _080A875E + .align 2, 0 +_080A8730: .4byte gSprites +_080A8734: + subs r0, 0x1 + strh r0, [r2, 0x2E] + ldrh r1, [r2, 0x30] + ldrh r0, [r2, 0x34] + adds r1, r0 + strh r1, [r2, 0x34] + ldrh r0, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r0, r4 + strh r0, [r2, 0x36] + lsls r1, 16 + asrs r1, 24 + ldrh r6, [r2, 0x38] + adds r1, r6 + strh r1, [r3, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + ldrh r2, [r2, 0x3A] + adds r0, r2 + strh r0, [r3, 0x26] +_080A875E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A86F4 + + thumb_func_start sub_80A8764 +sub_80A8764: @ 80A8764 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080A8778 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A8780 + ldr r0, _080A877C + b _080A8782 + .align 2, 0 +_080A8778: .4byte gUnknown_03004B00 +_080A877C: .4byte gUnknown_0202F7C8 +_080A8780: + ldr r0, _080A8800 +_080A8782: + ldrb r2, [r0] + ldr r0, _080A8804 + adds r0, r2, r0 + ldrb r6, [r0] + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A87AC + ldr r1, _080A8808 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _080A87AC + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A87AC: + ldr r2, _080A8808 + ldrh r0, [r2, 0x8] + movs r4, 0 + strh r0, [r5, 0x2E] + ldr r0, _080A880C + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r2, 0x2] + ldrh r3, [r1, 0x20] + adds r0, r3 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x22] + strh r0, [r5, 0x34] + ldrh r0, [r2, 0x4] + ldrh r1, [r1, 0x22] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078A5C + strh r4, [r5, 0x34] + strh r4, [r5, 0x36] + strh r6, [r5, 0x38] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080A8810 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080A8814 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8800: .4byte gUnknown_0202F7C9 +_080A8804: .4byte gUnknown_02024BE0 +_080A8808: .4byte gUnknown_03004B00 +_080A880C: .4byte gSprites +_080A8810: .4byte move_anim_8072740 +_080A8814: .4byte sub_80784A8 + thumb_func_end sub_80A8764 + + thumb_func_start sub_80A8818 +sub_80A8818: @ 80A8818 + push {r4-r7,lr} + adds r6, r0, 0 + adds r2, r6, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A8838 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A8840 + ldr r0, _080A883C + b _080A8842 + .align 2, 0 +_080A8838: .4byte gUnknown_03004B00 +_080A883C: .4byte gUnknown_0202F7C8 +_080A8840: + ldr r0, _080A88C0 +_080A8842: + ldrb r1, [r0] + ldr r0, _080A88C4 + adds r0, r1, r0 + ldrb r7, [r0] + adds r0, r1, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A886C + ldr r1, _080A88C8 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _080A886C + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A886C: + ldr r5, _080A88C8 + ldrh r0, [r5, 0x8] + strh r0, [r6, 0x2E] + ldr r0, _080A88CC + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r4, r0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r6, 0x30] + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r6, 0x34] + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl sub_8078A5C + ldrh r0, [r4, 0x24] + lsls r0, 8 + strh r0, [r6, 0x34] + ldrh r0, [r4, 0x26] + lsls r0, 8 + strh r0, [r6, 0x36] + strh r7, [r6, 0x38] + ldrh r0, [r5, 0xA] + strh r0, [r6, 0x3A] + lsls r0, 16 + cmp r0, 0 + bne _080A88D4 + ldr r1, _080A88D0 + adds r0, r6, 0 + bl oamt_set_x3A_32 + b _080A88DC + .align 2, 0 +_080A88C0: .4byte gUnknown_0202F7C9 +_080A88C4: .4byte gUnknown_02024BE0 +_080A88C8: .4byte gUnknown_03004B00 +_080A88CC: .4byte gSprites +_080A88D0: .4byte move_anim_8072740 +_080A88D4: + ldr r1, _080A88E8 + adds r0, r6, 0 + bl oamt_set_x3A_32 +_080A88DC: + ldr r0, _080A88EC + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A88E8: .4byte sub_80A88F0 +_080A88EC: .4byte sub_80784A8 + thumb_func_end sub_80A8818 + + thumb_func_start sub_80A88F0 +sub_80A88F0: @ 80A88F0 + push {r4,lr} + ldr r4, _080A891C + movs r1, 0x38 + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + movs r3, 0 + strh r3, [r1, 0x24] + movs r1, 0x38 + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r3, [r1, 0x26] + bl move_anim_8072740 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A891C: .4byte gSprites + thumb_func_end sub_80A88F0 + + thumb_func_start sub_80A8920 +sub_80A8920: @ 80A8920 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080A89A4 + movs r0, 0x6 + ldrsh r1, [r5, r0] + movs r0, 0x80 + lsls r0, 8 + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080A89A8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8952 + ldrh r0, [r5, 0x2] + negs r0, r0 + strh r0, [r5, 0x2] + ldrh r0, [r5, 0xA] + negs r0, r0 + strh r0, [r5, 0xA] +_080A8952: + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + ldr r1, _080A89AC + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + movs r1, 0x2 + ldrsh r0, [r5, r1] + lsls r0, 8 + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0xE] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r5, r1] + lsls r0, 8 + movs r2, 0xC + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x12] + ldrh r0, [r5, 0xC] + strh r0, [r4, 0x14] + strh r7, [r4, 0x16] + ldr r0, _080A89B0 + str r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A89A4: .4byte gUnknown_03004B00 +_080A89A8: .4byte gUnknown_0202F7C8 +_080A89AC: .4byte gTasks +_080A89B0: .4byte sub_80A89B4 + thumb_func_end sub_80A8920 + + thumb_func_start sub_80A89B4 +sub_80A89B4: @ 80A89B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A8A0C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrb r1, [r5, 0x8] + ldrh r0, [r5, 0xA] + ldrh r2, [r5, 0x1E] + adds r0, r2 + strh r0, [r5, 0x1E] + ldr r2, _080A8A10 + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r2 + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x1C] + lsrs r0, 8 + movs r2, 0xC + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r5, 0x16] + ldrh r1, [r5, 0x1C] + adds r0, r1 + strh r0, [r5, 0x1C] + ldrh r0, [r5, 0xE] + subs r0, 0x1 + strh r0, [r5, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080A8A04 + ldr r0, _080A8A14 + str r0, [r5] +_080A8A04: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8A0C: .4byte gTasks +_080A8A10: .4byte gSprites +_080A8A14: .4byte sub_80A8A18 + thumb_func_end sub_80A89B4 + + thumb_func_start sub_80A8A18 +sub_80A8A18: @ 80A8A18 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080A8A3C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A8A40 + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + b _080A8A74 + .align 2, 0 +_080A8A3C: .4byte gTasks +_080A8A40: + ldrb r0, [r4, 0x8] + ldrh r2, [r4, 0x12] + ldrh r1, [r4, 0x20] + adds r2, r1 + strh r2, [r4, 0x20] + ldr r3, _080A8A7C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + lsls r2, 16 + asrs r2, 24 + ldrh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 24 + adds r2, r0 + strh r2, [r1, 0x24] + ldrh r0, [r4, 0x14] + subs r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080A8A74 + adds r0, r5, 0 + bl move_anim_task_del +_080A8A74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8A7C: .4byte gSprites + thumb_func_end sub_80A8A18 + + thumb_func_start sub_80A8A80 +sub_80A8A80: @ 80A8A80 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A8AA4 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x2 + beq _080A8AAE + cmp r0, 0x2 + bgt _080A8AA8 + cmp r0, 0 + blt _080A8AE0 + ldrb r0, [r1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + b _080A8AE8 + .align 2, 0 +_080A8AA4: .4byte gUnknown_03004B00 +_080A8AA8: + cmp r0, 0x3 + beq _080A8AB8 + b _080A8AE0 +_080A8AAE: + ldr r5, _080A8AB4 + b _080A8ABA + .align 2, 0 +_080A8AB4: .4byte gUnknown_0202F7C8 +_080A8AB8: + ldr r5, _080A8AD8 +_080A8ABA: + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A8AE0 + ldr r1, _080A8ADC + ldrb r0, [r5] + eors r0, r4 + adds r0, r1 + ldrb r2, [r0] + b _080A8AE8 + .align 2, 0 +_080A8AD8: .4byte gUnknown_0202F7C9 +_080A8ADC: .4byte gUnknown_02024BE0 +_080A8AE0: + adds r0, r6, 0 + bl move_anim_task_del + b _080A8B28 +_080A8AE8: + ldr r1, _080A8B08 + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r0, 3 + adds r5, r0, r1 + strh r2, [r5, 0x8] + ldr r0, _080A8B0C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8B14 + ldr r0, _080A8B10 + ldrh r0, [r0, 0x2] + b _080A8B1A + .align 2, 0 +_080A8B08: .4byte gTasks +_080A8B0C: .4byte gUnknown_0202F7C9 +_080A8B10: .4byte gUnknown_03004B00 +_080A8B14: + ldr r0, _080A8B30 + ldrh r0, [r0, 0x2] + negs r0, r0 +_080A8B1A: + strh r0, [r5, 0xA] + ldr r0, _080A8B34 + adds r1, r4, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A8B38 + str r0, [r1] +_080A8B28: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8B30: .4byte gUnknown_03004B00 +_080A8B34: .4byte gTasks +_080A8B38: .4byte sub_80A8B3C + thumb_func_end sub_80A8A80 + + thumb_func_start sub_80A8B3C +sub_80A8B3C: @ 80A8B3C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A8B80 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r2, [r1, 0x8] + ldr r3, _080A8B84 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r1, 0xA] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + movs r2, 0x24 + ldrsh r1, [r0, r2] + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r1, r0 + adds r1, 0x20 + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + bls _080A8B7A + adds r0, r4, 0 + bl move_anim_task_del +_080A8B7A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8B80: .4byte gTasks +_080A8B84: .4byte gSprites + thumb_func_end sub_80A8B3C + + thumb_func_start sub_80A8B88 +sub_80A8B88: @ 80A8B88 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _080A8BD8 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8BA4 + ldr r1, _080A8BDC + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A8BA4: + ldr r4, _080A8BDC + ldrb r0, [r4, 0x8] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A8BE0 + lsls r3, r5, 2 + adds r1, r3, r5 + lsls r1, 3 + adds r2, r1, r2 + ldrh r1, [r4] + strh r1, [r2, 0x8] + ldrh r1, [r4, 0x2] + strh r1, [r2, 0xA] + ldrh r1, [r4, 0x4] + strh r1, [r2, 0xC] + ldrh r1, [r4, 0x6] + strh r1, [r2, 0xE] + strh r0, [r2, 0x10] + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A8BE4 + ldrb r0, [r6] + b _080A8BE8 + .align 2, 0 +_080A8BD8: .4byte gUnknown_0202F7C8 +_080A8BDC: .4byte gUnknown_03004B00 +_080A8BE0: .4byte gTasks +_080A8BE4: + ldr r0, _080A8C00 + ldrb r0, [r0] +_080A8BE8: + strh r0, [r2, 0x12] + ldr r1, _080A8C04 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x20] + ldr r1, _080A8C08 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8C00: .4byte gUnknown_0202F7C9 +_080A8C04: .4byte gTasks +_080A8C08: .4byte sub_80A8C0C + thumb_func_end sub_80A8B88 + + thumb_func_start sub_80A8C0C +sub_80A8C0C: @ 80A8C0C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A8C5C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrb r7, [r4, 0x10] + ldrh r0, [r4, 0xC] + ldrh r1, [r4, 0x1C] + adds r0, r1 + lsls r1, r0, 16 + strh r0, [r4, 0x1C] + lsrs r1, 24 + mov r8, r1 + mov r0, r8 + movs r2, 0xA + ldrsh r1, [r4, r2] + bl Sin + lsls r0, 16 + lsrs r5, r0, 16 + mov r9, r5 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A8C64 + ldr r0, _080A8C60 + lsls r2, r7, 4 + adds r1, r2, r7 + lsls r1, 2 + adds r1, r0 + strh r5, [r1, 0x24] + mov r9, r0 + adds r4, r2, 0 + b _080A8CAA + .align 2, 0 +_080A8C5C: .4byte gTasks +_080A8C60: .4byte gSprites +_080A8C64: + ldrb r0, [r4, 0x12] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080A8C8C + ldr r1, _080A8C88 + lsls r2, r7, 4 + adds r0, r2, r7 + lsls r0, 2 + adds r3, r0, r1 + lsls r0, r5, 16 + asrs r0, 16 + mov r9, r1 + adds r4, r2, 0 + cmp r0, 0 + bge _080A8CA8 + b _080A8CA6 + .align 2, 0 +_080A8C88: .4byte gSprites +_080A8C8C: + ldr r1, _080A8D2C + lsls r2, r7, 4 + adds r0, r2, r7 + lsls r0, 2 + adds r3, r0, r1 + mov r4, r9 + lsls r0, r4, 16 + asrs r0, 16 + mov r9, r1 + adds r4, r2, 0 + cmp r0, 0 + bge _080A8CA6 + negs r0, r0 +_080A8CA6: + negs r0, r0 +_080A8CA8: + strh r0, [r3, 0x26] +_080A8CAA: + mov r5, r8 + cmp r5, 0x7F + bls _080A8CCC + ldr r1, _080A8D30 + lsls r2, r6, 2 + adds r0, r2, r6 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0x1E + ldrsh r0, [r3, r5] + adds r5, r1, 0 + cmp r0, 0 + bne _080A8CCC + movs r1, 0x20 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080A8CEE +_080A8CCC: + mov r2, r8 + cmp r2, 0x7E + bhi _080A8D20 + ldr r1, _080A8D30 + lsls r2, r6, 2 + adds r0, r2, r6 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0x1E + ldrsh r0, [r3, r5] + adds r5, r1, 0 + cmp r0, 0x1 + bne _080A8D20 + movs r1, 0x20 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080A8D20 +_080A8CEE: + adds r1, r2, r6 + lsls r1, 3 + adds r1, r5 + ldrh r0, [r1, 0x1E] + movs r2, 0x1 + eors r0, r2 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + eors r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0xE] + subs r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r3, r0, 16 + cmp r3, 0 + bne _080A8D20 + adds r0, r4, r7 + lsls r0, 2 + add r0, r9 + strh r3, [r0, 0x24] + strh r3, [r0, 0x26] + adds r0, r6, 0 + bl move_anim_task_del +_080A8D20: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8D2C: .4byte gSprites +_080A8D30: .4byte gTasks + thumb_func_end sub_80A8C0C + + thumb_func_start sub_80A8D34 +sub_80A8D34: @ 80A8D34 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _080A8D80 + ldrb r0, [r6, 0x6] + bl obj_id_for_side_relative_to_move + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r1, [r6, 0x8] + adds r0, r5, 0 + bl sub_8078E70 + ldr r1, _080A8D84 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r6] + strh r1, [r0, 0x8] + ldrh r1, [r6, 0x2] + strh r1, [r0, 0xA] + ldrh r1, [r6, 0x4] + strh r1, [r0, 0xC] + ldrh r1, [r6, 0x4] + strh r1, [r0, 0xE] + strh r5, [r0, 0x10] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r0, 0x1C] + strh r1, [r0, 0x1E] + ldr r1, _080A8D88 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8D80: .4byte gUnknown_03004B00 +_080A8D84: .4byte gTasks +_080A8D88: .4byte sub_80A8D8C + thumb_func_end sub_80A8D34 + + thumb_func_start sub_80A8D8C +sub_80A8D8C: @ 80A8D8C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080A8DEC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x8] + ldrh r1, [r4, 0x1C] + adds r0, r1 + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0xA] + ldrh r3, [r4, 0x1E] + adds r0, r3 + strh r0, [r4, 0x1E] + ldrb r0, [r4, 0x10] + adds r6, r0, 0 + movs r0, 0x1C + ldrsh r1, [r4, r0] + movs r3, 0x1E + ldrsh r2, [r4, r3] + adds r0, r6, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _080A8DFC + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + ble _080A8DF0 + ldrh r0, [r4, 0x8] + negs r0, r0 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + negs r0, r0 + strh r0, [r4, 0xA] + strh r2, [r4, 0xC] + strh r1, [r4, 0xE] + b _080A8DFC + .align 2, 0 +_080A8DEC: .4byte gTasks +_080A8DF0: + adds r0, r6, 0 + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del +_080A8DFC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A8D8C + + thumb_func_start sub_80A8E04 +sub_80A8E04: @ 80A8E04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _080A8E40 + ldrb r0, [r4, 0x4] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r1, 0 + bl sub_8078E70 + ldr r1, _080A8E44 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2, 0xA] + ldrh r0, [r4] + strh r0, [r2, 0xC] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + beq _080A8E48 + strh r1, [r2, 0xE] + b _080A8E54 + .align 2, 0 +_080A8E40: .4byte gUnknown_03004B00 +_080A8E44: .4byte gTasks +_080A8E48: + ldrh r0, [r4] + ldrh r1, [r4, 0x2] + adds r3, r0, 0 + muls r3, r1 + adds r0, r3, 0 + strh r0, [r2, 0xE] +_080A8E54: + ldr r1, _080A8E80 + lsls r4, r7, 2 + adds r0, r4, r7 + lsls r0, 3 + adds r5, r0, r1 + ldr r6, _080A8E84 + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x10] + mov r0, r8 + strh r0, [r5, 0x12] + ldrh r0, [r6, 0x6] + strh r0, [r5, 0x14] + bl sub_8076BE0 + lsls r0, 24 + mov r8, r4 + cmp r0, 0 + beq _080A8E88 + movs r0, 0x1 + strh r0, [r5, 0x16] + b _080A8EAC + .align 2, 0 +_080A8E80: .4byte gTasks +_080A8E84: .4byte gUnknown_03004B00 +_080A8E88: + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A8E98 + ldr r0, _080A8E94 + b _080A8E9A + .align 2, 0 +_080A8E94: .4byte gUnknown_0202F7C8 +_080A8E98: + ldr r0, _080A8EF0 +_080A8E9A: + ldrb r0, [r0] + bl battle_side_get_owner + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080A8EAA + movs r1, 0x1 +_080A8EAA: + strh r1, [r5, 0x16] +_080A8EAC: + ldr r0, _080A8EF4 + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r4, r1, r0 + movs r3, 0x16 + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A8ED8 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080A8ED8 + movs r1, 0xE + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0xE] + movs r2, 0x10 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x10] +_080A8ED8: + ldr r0, _080A8EF4 + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A8EF8 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8EF0: .4byte gUnknown_0202F7C9 +_080A8EF4: .4byte gTasks +_080A8EF8: .4byte sub_80A8FD8 + thumb_func_end sub_80A8E04 + + thumb_func_start sub_80A8EFC +sub_80A8EFC: @ 80A8EFC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A8F38 + ldrb r0, [r4, 0x4] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r1, 0 + bl sub_8078E70 + ldr r1, _080A8F3C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xA] + ldrh r1, [r4] + strh r1, [r0, 0xC] + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A8F44 + ldr r0, _080A8F40 + b _080A8F46 + .align 2, 0 +_080A8F38: .4byte gUnknown_03004B00 +_080A8F3C: .4byte gTasks +_080A8F40: .4byte gUnknown_0202F7C8 +_080A8F44: + ldr r0, _080A8F74 +_080A8F46: + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8F58 + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] +_080A8F58: + ldr r0, _080A8F78 + movs r2, 0x6 + ldrsh r1, [r0, r2] + adds r6, r0, 0 + cmp r1, 0x1 + beq _080A8F80 + ldr r2, _080A8F7C + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0xE] + b _080A8F9A + .align 2, 0 +_080A8F74: .4byte gUnknown_0202F7C9 +_080A8F78: .4byte gUnknown_03004B00 +_080A8F7C: .4byte gTasks +_080A8F80: + ldr r3, _080A8FD0 + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r0, r3 + ldrh r2, [r6] + ldrh r1, [r6, 0x2] + adds r7, r2, 0 + muls r7, r1 + adds r1, r7, 0 + strh r1, [r0, 0xE] + adds r2, r3, 0 + adds r3, r4, 0 +_080A8F9A: + adds r1, r3, r5 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r6, 0x2] + strh r0, [r1, 0x10] + mov r0, r8 + strh r0, [r1, 0x12] + ldrh r0, [r6, 0x6] + strh r0, [r1, 0x14] + movs r0, 0x1 + strh r0, [r1, 0x16] + movs r2, 0xE + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0xE] + movs r7, 0x10 + ldrsh r0, [r1, r7] + negs r0, r0 + strh r0, [r1, 0x10] + ldr r0, _080A8FD4 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8FD0: .4byte gTasks +_080A8FD4: .4byte sub_80A8FD8 + thumb_func_end sub_80A8EFC + + thumb_func_start sub_80A8FD8 +sub_80A8FD8: @ 80A8FD8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A9030 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] + ldrb r0, [r4, 0x12] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0xE] + adds r1, r2, 0 + bl obj_id_set_rotscale + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080A900C + ldrb r0, [r4, 0x12] + bl sub_8078F9C +_080A900C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xC + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080A9052 + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080A9034 + cmp r0, 0x1 + ble _080A903A + cmp r0, 0x2 + beq _080A9042 + b _080A903A + .align 2, 0 +_080A9030: .4byte gTasks +_080A9034: + ldrb r0, [r4, 0x12] + bl sub_8078F40 +_080A903A: + adds r0, r5, 0 + bl move_anim_task_del + b _080A9052 +_080A9042: + movs r0, 0 + strh r0, [r4, 0xA] + movs r2, 0x10 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x10] + movs r0, 0x1 + strh r0, [r4, 0x14] +_080A9052: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A8FD8 + + thumb_func_start sub_80A9058 +sub_80A9058: @ 80A9058 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080A9084 + movs r2, 0 + ldrsh r1, [r0, r2] + mov r8, r0 + cmp r1, 0 + bne _080A9090 + ldr r4, _080A9088 + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r6, r0, r4 + ldr r0, _080A908C + ldrh r0, [r0] + movs r1, 0xC + bl __udivsi3 + b _080A90A4 + .align 2, 0 +_080A9084: .4byte gUnknown_03004B00 +_080A9088: .4byte gTasks +_080A908C: .4byte gUnknown_0202F7BC +_080A9090: + ldr r4, _080A912C + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r6, r0, r4 + ldr r0, _080A9130 + ldr r0, [r0] + movs r1, 0xC + bl __divsi3 +_080A90A4: + strh r0, [r6, 0x26] + lsls r0, 16 + adds r1, r4, 0 + cmp r0, 0 + bgt _080A90B2 + movs r0, 0x1 + strh r0, [r6, 0x26] +_080A90B2: + movs r2, 0x26 + ldrsh r0, [r6, r2] + cmp r0, 0x10 + ble _080A90BE + movs r0, 0x10 + strh r0, [r6, 0x26] +_080A90BE: + adds r4, r5, r7 + lsls r4, 3 + adds r4, r1 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + movs r5, 0 + strh r1, [r4, 0x24] + ldrh r2, [r4, 0x26] + movs r0, 0x1 + ands r0, r2 + adds r1, r0 + strh r1, [r4, 0x22] + strh r5, [r4, 0x20] + mov r1, r8 + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x1C] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x1E] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x16] + ldr r2, _080A9134 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x18] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x26] + strh r0, [r4, 0x1A] + strh r5, [r4, 0x8] + mov r1, r8 + ldrh r0, [r1, 0x2] + strh r0, [r4, 0xA] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0xC] + ldr r0, _080A9138 + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A912C: .4byte gTasks +_080A9130: .4byte gUnknown_0202F7B8 +_080A9134: .4byte gSprites +_080A9138: .4byte sub_80A913C + thumb_func_end sub_80A9058 + + thumb_func_start sub_80A913C +sub_80A913C: @ 80A913C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A9190 + adds r3, r0, r1 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xA + ldrsh r1, [r3, r2] + cmp r0, r1 + ble _080A921A + movs r0, 0 + strh r0, [r3, 0x8] + ldrh r0, [r3, 0x20] + adds r1, r0, 0x1 + movs r0, 0x1 + ands r1, r0 + strh r1, [r3, 0x20] + movs r2, 0x1C + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080A91AE + cmp r1, 0 + beq _080A9198 + ldr r2, _080A9194 + movs r0, 0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x18] + adds r1, r2 + b _080A91AC + .align 2, 0 +_080A9190: .4byte gTasks +_080A9194: .4byte gSprites +_080A9198: + ldr r2, _080A91D4 + movs r0, 0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x18] + ldrh r2, [r3, 0x24] + subs r1, r2 +_080A91AC: + strh r1, [r0, 0x24] +_080A91AE: + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080A91E8 + movs r2, 0x20 + ldrsh r4, [r3, r2] + cmp r4, 0 + beq _080A91D8 + ldr r2, _080A91D4 + movs r0, 0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x26] + strh r1, [r0, 0x26] + b _080A91E8 + .align 2, 0 +_080A91D4: .4byte gSprites +_080A91D8: + ldr r2, _080A9220 + movs r0, 0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x26] +_080A91E8: + ldrh r0, [r3, 0xC] + subs r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0 + bne _080A921A + ldr r2, _080A9220 + movs r0, 0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x24] + movs r0, 0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x26] + adds r0, r5, 0 + bl move_anim_task_del +_080A921A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9220: .4byte gSprites + thumb_func_end sub_80A913C + + thumb_func_start itemid_copy_name +itemid_copy_name: @ 80A9224 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _080A924C + movs r0, 0x2B + bl GetBerryInfo + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r1, _080A9248 + adds r0, r4, 0 + bl StringAppend + b _080A9258 + .align 2, 0 +_080A9248: .4byte gOtherText_Berry2 +_080A924C: + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy +_080A9258: + pop {r4} + pop {r0} + bx r0 + thumb_func_end itemid_copy_name + + thumb_func_start unref_sub_80A9260 +unref_sub_80A9260: @ 80A9260 + push {lr} + lsls r0, 24 + movs r2, 0 + ldr r1, _080A9284 + lsrs r0, 21 + adds r0, r1 + ldrb r1, [r0, 0x4] + cmp r2, r1 + bcs _080A9292 + ldr r3, [r0] +_080A9274: + lsls r0, r2, 2 + adds r0, r3 + ldrh r0, [r0] + cmp r0, 0 + bne _080A9288 + lsls r0, r2, 24 + asrs r0, 24 + b _080A9296 + .align 2, 0 +_080A9284: .4byte gUnknown_083C1618 +_080A9288: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r1 + bcc _080A9274 +_080A9292: + movs r0, 0x1 + negs r0, r0 +_080A9296: + pop {r1} + bx r1 + thumb_func_end unref_sub_80A9260 + + thumb_func_start IsBagPocketNonEmpty +IsBagPocketNonEmpty: @ 80A929C + push {lr} + lsls r0, 24 + movs r2, 0 + ldr r1, _080A92C0 + lsrs r0, 21 + subs r0, 0x8 + adds r0, r1 + ldrb r1, [r0, 0x4] + cmp r2, r1 + bcs _080A92CE + ldr r3, [r0] +_080A92B2: + lsls r0, r2, 2 + adds r0, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080A92C4 + movs r0, 0x1 + b _080A92D0 + .align 2, 0 +_080A92C0: .4byte gUnknown_083C1618 +_080A92C4: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r1 + bcc _080A92B2 +_080A92CE: + movs r0, 0 +_080A92D0: + pop {r1} + bx r1 + thumb_func_end IsBagPocketNonEmpty + + thumb_func_start sub_80A92D4 +sub_80A92D4: @ 80A92D4 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + adds r0, r5, 0 + bl itemid_get_pocket_number + lsls r0, 24 + cmp r0, 0 + bne _080A92F0 + b _080A9336 +_080A92EC: + movs r0, 0x1 + b _080A9338 +_080A92F0: + adds r0, r5, 0 + bl itemid_get_pocket_number + subs r0, 0x1 + lsls r0, 24 + movs r3, 0 + ldr r6, _080A9340 + lsrs r2, r0, 21 + adds r0, r2, r6 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcs _080A9336 + adds r7, r6, 0 +_080A930A: + adds r0, r2, r7 + ldr r1, [r0] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r5 + bne _080A9328 + ldrh r0, [r1, 0x2] + cmp r0, r4 + bcs _080A92EC + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080A92EC +_080A9328: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r2, r6 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcc _080A930A +_080A9336: + movs r0, 0 +_080A9338: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080A9340: .4byte gUnknown_083C1618 + thumb_func_end sub_80A92D4 + + thumb_func_start sub_80A9344 +sub_80A9344: @ 80A9344 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + adds r0, r6, 0 + bl itemid_get_pocket_number + lsls r0, 24 + cmp r0, 0 + beq _080A9408 + adds r0, r6, 0 + bl itemid_get_pocket_number + subs r0, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r5, _080A940C + cmp r1, 0x3 + beq _080A9376 + movs r5, 0x63 +_080A9376: + movs r3, 0 + ldr r0, _080A9410 + mov r8, r0 + lsls r2, r1, 3 + adds r0, r2, r0 + mov r12, r8 + mov r9, r2 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcs _080A93CA + mov r10, r12 + subs r0, r1, 0x2 + lsls r0, 24 + lsrs r7, r0, 24 +_080A9392: + mov r1, r10 + adds r0, r2, r1 + ldr r1, [r0] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r6 + bne _080A93BA + ldrh r1, [r1, 0x2] + adds r0, r1, r4 + cmp r0, r5 + ble _080A9414 + cmp r7, 0x1 + bls _080A9408 + subs r0, r5, r1 + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080A9414 +_080A93BA: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + mov r1, r8 + adds r0, r2, r1 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcc _080A9392 +_080A93CA: + cmp r4, 0 + beq _080A9414 + movs r3, 0 + mov r6, r12 + mov r2, r9 + adds r0, r2, r6 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcs _080A9404 + adds r7, r6, 0 +_080A93DE: + adds r0, r2, r7 + ldr r1, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080A93F6 + cmp r4, r5 + bls _080A9414 + subs r0, r4, r5 + lsls r0, 16 + lsrs r4, r0, 16 +_080A93F6: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r2, r6 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcc _080A93DE +_080A9404: + cmp r4, 0 + beq _080A9414 +_080A9408: + movs r0, 0 + b _080A9416 + .align 2, 0 +_080A940C: .4byte 0x000003e7 +_080A9410: .4byte gUnknown_083C1618 +_080A9414: + movs r0, 0x1 +_080A9416: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A9344 + + thumb_func_start sub_80A9424 +sub_80A9424: @ 80A9424 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x100 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 16 + lsrs r4, r1, 16 + bl itemid_get_pocket_number + lsls r0, 24 + cmp r0, 0 + beq _080A9510 + mov r0, r8 + bl itemid_get_pocket_number + subs r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A94F8 + lsls r0, r6, 3 + adds r5, r0, r1 + ldr r1, [r5] + ldrb r2, [r5, 0x4] + lsls r2, 2 + mov r0, sp + bl memcpy + ldr r7, _080A94FC + cmp r6, 0x3 + beq _080A9468 + movs r7, 0x63 +_080A9468: + movs r1, 0 + ldrb r0, [r5, 0x4] + cmp r1, r0 + bcs _080A94B2 + subs r0, r6, 0x2 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 +_080A9478: + lsls r0, r1, 2 + mov r2, sp + adds r3, r2, r0 + ldrh r0, [r3] + cmp r0, r8 + bne _080A94A6 + ldrh r2, [r3, 0x2] + adds r0, r2, r4 + cmp r0, r7 + ble _080A9500 + mov r0, r12 + cmp r0, 0x1 + bls _080A9510 + subs r0, r7, r2 + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + strh r7, [r3, 0x2] + ldr r2, _080A94F8 + mov r9, r2 + lsls r3, r6, 3 + cmp r4, 0 + beq _080A9516 +_080A94A6: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + ldrb r0, [r5, 0x4] + cmp r1, r0 + bcc _080A9478 +_080A94B2: + ldr r2, _080A94F8 + mov r9, r2 + lsls r3, r6, 3 + cmp r4, 0 + beq _080A9516 + movs r1, 0 + adds r0, r3, r2 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcs _080A94F2 + mov r6, r9 + adds r5, r3, r6 +_080A94CA: + lsls r0, r1, 2 + mov r6, sp + adds r2, r6, r0 + ldrh r0, [r2] + cmp r0, 0 + bne _080A94E6 + mov r0, r8 + strh r0, [r2] + cmp r4, r7 + bls _080A9514 + subs r0, r4, r7 + lsls r0, 16 + lsrs r4, r0, 16 + strh r7, [r2, 0x2] +_080A94E6: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + ldrb r2, [r5, 0x4] + cmp r1, r2 + bcc _080A94CA +_080A94F2: + cmp r4, 0 + beq _080A9516 + b _080A9510 + .align 2, 0 +_080A94F8: .4byte gUnknown_083C1618 +_080A94FC: .4byte 0x000003e7 +_080A9500: + strh r0, [r3, 0x2] + ldr r0, _080A950C + lsls r1, r6, 3 + adds r1, r0 + b _080A951A + .align 2, 0 +_080A950C: .4byte gUnknown_083C1618 +_080A9510: + movs r0, 0 + b _080A9528 +_080A9514: + strh r4, [r2, 0x2] +_080A9516: + mov r6, r9 + adds r1, r3, r6 +_080A951A: + ldr r0, [r1] + ldrb r2, [r1, 0x4] + lsls r2, 2 + mov r1, sp + bl memcpy + movs r0, 0x1 +_080A9528: + add sp, 0x100 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A9424 + + thumb_func_start sub_80A9538 +sub_80A9538: @ 80A9538 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + movs r7, 0 + adds r0, r6, 0 + bl itemid_get_pocket_number + lsls r0, 24 + cmp r0, 0 + beq _080A959E + cmp r6, 0 + beq _080A959E + adds r0, r6, 0 + bl itemid_get_pocket_number + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r5, 0 + ldr r1, _080A95A4 + lsls r2, r0, 3 + adds r0, r2, r1 + ldrb r0, [r0, 0x4] + cmp r5, r0 + bcs _080A959A + mov r8, r1 +_080A9576: + mov r0, r8 + adds r3, r2, r0 + ldr r0, [r3] + lsls r1, r5, 2 + adds r1, r0 + ldrh r0, [r1] + cmp r0, r6 + bne _080A958E + ldrh r0, [r1, 0x2] + adds r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 +_080A958E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r3, [r3, 0x4] + cmp r5, r3 + bcc _080A9576 +_080A959A: + cmp r7, r4 + bcs _080A95A8 +_080A959E: + movs r0, 0 + b _080A9664 + .align 2, 0 +_080A95A4: .4byte gUnknown_083C1618 +_080A95A8: + ldr r0, _080A95DC + mov r2, r12 + lsls r1, r2, 3 + adds r5, r1, r0 + ldr r2, _080A95E0 + ldrb r3, [r5, 0x4] + mov r8, r0 + adds r7, r1, 0 + ldrb r0, [r2] + cmp r3, r0 + bls _080A9606 + ldrb r0, [r2] + ldr r1, [r5] + lsls r0, 2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r6 + bne _080A9606 + ldrh r0, [r1, 0x2] + cmp r0, r4 + bcc _080A95E4 + subs r0, r4 + strh r0, [r1, 0x2] + movs r4, 0 + b _080A95EE + .align 2, 0 +_080A95DC: .4byte gUnknown_083C1618 +_080A95E0: .4byte gUnknown_02038560 +_080A95E4: + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + strh r0, [r1, 0x2] +_080A95EE: + mov r1, r8 + adds r0, r7, r1 + ldrb r1, [r2] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A9602 + strh r0, [r1] +_080A9602: + cmp r4, 0 + beq _080A9662 +_080A9606: + movs r5, 0 + adds r1, r7, 0 + mov r2, r8 + adds r0, r1, r2 + ldrb r2, [r0, 0x4] + cmp r5, r2 + bcs _080A9662 + mov r12, r8 + adds r3, r0, 0 +_080A9618: + mov r2, r12 + adds r0, r1, r2 + ldr r0, [r0] + lsls r1, r5, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r6 + bne _080A9650 + ldrh r0, [r2, 0x2] + cmp r0, r4 + bcc _080A9636 + subs r0, r4 + strh r0, [r2, 0x2] + movs r4, 0 + b _080A9640 +_080A9636: + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + strh r0, [r2, 0x2] +_080A9640: + ldr r0, [r3] + adds r1, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A964C + strh r0, [r1] +_080A964C: + cmp r4, 0 + beq _080A9662 +_080A9650: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r1, r7, 0 + mov r2, r8 + adds r0, r1, r2 + ldrb r0, [r0, 0x4] + cmp r5, r0 + bcc _080A9618 +_080A9662: + movs r0, 0x1 +_080A9664: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A9538 + + thumb_func_start sub_80A9670 +sub_80A9670: @ 80A9670 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl itemid_get_pocket_number + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80A9670 + + thumb_func_start sub_80A9684 +sub_80A9684: @ 80A9684 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + movs r2, 0 + lsrs r1, 24 + cmp r2, r1 + bcs _080A96A6 + movs r3, 0 +_080A9694: + lsls r0, r2, 2 + adds r0, r4 + strh r3, [r0] + strh r3, [r0, 0x2] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r1 + bcc _080A9694 +_080A96A6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9684 + + thumb_func_start sub_80A96AC +sub_80A96AC: @ 80A96AC + push {lr} + movs r1, 0 + ldr r3, _080A96CC + movs r2, 0x93 + lsls r2, 3 +_080A96B6: + lsls r0, r1, 24 + asrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _080A96D0 + adds r0, r1, 0 + b _080A96E0 + .align 2, 0 +_080A96CC: .4byte gSaveBlock1 +_080A96D0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0x31 + ble _080A96B6 + movs r0, 0x1 + negs r0, r0 +_080A96E0: + pop {r1} + bx r1 + thumb_func_end sub_80A96AC + + thumb_func_start sub_80A96E4 +sub_80A96E4: @ 80A96E4 + push {r4,lr} + movs r2, 0 + movs r1, 0 + ldr r4, _080A9714 + movs r3, 0x93 + lsls r3, 3 +_080A96F0: + lsls r0, r1, 2 + adds r0, r4 + adds r0, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080A9702 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080A9702: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x31 + bls _080A96F0 + adds r0, r2, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9714: .4byte gSaveBlock1 + thumb_func_end sub_80A96E4 + + thumb_func_start sub_80A9718 +sub_80A9718: @ 80A9718 + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r1, 16 + movs r3, 0 + ldr r7, _080A9744 + movs r6, 0x93 + lsls r6, 3 + ldr r5, _080A9748 +_080A972C: + lsls r0, r3, 2 + adds r2, r0, r7 + adds r0, r2, r6 + ldrh r0, [r0] + cmp r0, r4 + bne _080A974C + adds r0, r2, r5 + ldrh r0, [r0] + cmp r0, r1 + bcc _080A974C + movs r0, 0x1 + b _080A9758 + .align 2, 0 +_080A9744: .4byte gSaveBlock1 +_080A9748: .4byte 0x0000049a +_080A974C: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x31 + bls _080A972C + movs r0, 0 +_080A9758: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A9718 + + thumb_func_start sub_80A9760 +sub_80A9760: @ 80A9760 + push {r4-r7,lr} + sub sp, 0xC8 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + ldr r1, _080A97C4 + mov r0, sp + movs r2, 0xC8 + bl memcpy + movs r5, 0 + ldr r0, _080A97C8 + adds r7, r0, 0 +_080A977C: + lsls r0, r5, 2 + mov r1, sp + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r6 + bne _080A97A0 + ldrh r1, [r2, 0x2] + adds r0, r1, r4 + ldr r3, _080A97CC + cmp r0, r3 + ble _080A97D0 + adds r0, r4, r7 + adds r0, r1, r0 + lsls r0, 16 + lsrs r4, r0, 16 + strh r3, [r2, 0x2] + cmp r4, 0 + beq _080A97DC +_080A97A0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x31 + bls _080A977C + cmp r4, 0 + beq _080A97DC + bl sub_80A96AC + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080A97D4 + movs r0, 0 + b _080A97E8 + .align 2, 0 +_080A97C4: .4byte gSaveBlock1 + 0x498 +_080A97C8: .4byte 0x0000fc19 +_080A97CC: .4byte 0x000003e7 +_080A97D0: + strh r0, [r2, 0x2] + b _080A97DC +_080A97D4: + lsls r0, r1, 2 + add r0, sp + strh r6, [r0] + strh r4, [r0, 0x2] +_080A97DC: + ldr r0, _080A97F0 + mov r1, sp + movs r2, 0xC8 + bl memcpy + movs r0, 0x1 +_080A97E8: + add sp, 0xC8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080A97F0: .4byte gSaveBlock1 + 0x498 + thumb_func_end sub_80A9760 + + thumb_func_start sub_80A97F4 +sub_80A97F4: @ 80A97F4 + push {lr} + lsls r0, 24 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080A9824 + lsrs r0, 22 + adds r3, r0, r2 + ldr r0, _080A9828 + adds r2, r3, r0 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080A9820 + movs r2, 0x93 + lsls r2, 3 + adds r0, r3, r2 + strh r1, [r0] + bl sub_80A982C +_080A9820: + pop {r0} + bx r0 + .align 2, 0 +_080A9824: .4byte gSaveBlock1 +_080A9828: .4byte 0x0000049a + thumb_func_end sub_80A97F4 + + thumb_func_start sub_80A982C +sub_80A982C: @ 80A982C + push {r4-r7,lr} + movs r2, 0 + ldr r0, _080A987C + mov r12, r0 +_080A9834: + adds r1, r2, 0x1 + lsls r0, r1, 16 + lsrs r3, r0, 16 + adds r7, r1, 0 + cmp r3, 0x31 + bhi _080A986C + lsls r1, r2, 2 + mov r2, r12 + adds r0, r1, r2 + movs r2, 0x93 + lsls r2, 3 + adds r5, r0, r2 + ldr r6, _080A9880 + adds r4, r1, r6 +_080A9850: + ldrh r0, [r5] + cmp r0, 0 + bne _080A9862 + ldr r2, [r4] + lsls r1, r3, 2 + adds r1, r6 + ldr r0, [r1] + str r0, [r4] + str r2, [r1] +_080A9862: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x31 + bls _080A9850 +_080A986C: + lsls r0, r7, 16 + lsrs r2, r0, 16 + cmp r2, 0x30 + bls _080A9834 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A987C: .4byte gSaveBlock1 +_080A9880: .4byte gSaveBlock1 + 0x498 + thumb_func_end sub_80A982C + + thumb_func_start sub_80A9884 +sub_80A9884: @ 80A9884 + push {lr} + ldr r0, _080A98A0 + ldr r1, _080A98A4 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r3, _080A98A8 + cmp r1, r3 + beq _080A98AC + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + beq _080A98B4 + b _080A98B6 + .align 2, 0 +_080A98A0: .4byte gSaveBlock1 +_080A98A4: .4byte 0x00000496 +_080A98A8: .4byte 0x00000103 +_080A98AC: + movs r0, 0x88 + lsls r0, 1 + strh r0, [r2] + b _080A98B6 +_080A98B4: + strh r3, [r2] +_080A98B6: + pop {r0} + bx r0 + thumb_func_end sub_80A9884 + + thumb_func_start itemid_sanitize +itemid_sanitize: @ 80A98BC + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xAE + lsls r0, 1 + cmp r1, r0 + bhi _080A98CE + adds r0, r1, 0 + b _080A98D0 +_080A98CE: + movs r0, 0 +_080A98D0: + pop {r1} + bx r1 + thumb_func_end itemid_sanitize + + thumb_func_start itemid_get_item +itemid_get_item: @ 80A98D4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + ldr r1, _080A98F0 + adds r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_080A98F0: .4byte gItems + thumb_func_end itemid_get_item + + thumb_func_start itemid_get_number +itemid_get_number: @ 80A98F4 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9914 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrh r0, [r0, 0xE] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9914: .4byte gItems + thumb_func_end itemid_get_number + + thumb_func_start itemid_get_market_price +itemid_get_market_price: @ 80A9918 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9938 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrh r0, [r0, 0x10] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9938: .4byte gItems + thumb_func_end itemid_get_market_price + + thumb_func_start itemid_get_x12 +itemid_get_x12: @ 80A993C + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A995C + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x12] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A995C: .4byte gItems + thumb_func_end itemid_get_x12 + + thumb_func_start itemid_get_quality +itemid_get_quality: @ 80A9960 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9980 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x13] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9980: .4byte gItems + thumb_func_end itemid_get_quality + + thumb_func_start itemid_get_description +itemid_get_description: @ 80A9984 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A99A4 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r4, 0x14 + adds r0, r4 + ldr r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A99A4: .4byte gItems + thumb_func_end itemid_get_description + + thumb_func_start sub_80A99A8 +sub_80A99A8: @ 80A99A8 + push {r4-r6,lr} + adds r6, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0x1 + ldr r4, _080A99E4 + lsls r0, 16 + lsrs r0, 16 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r4, 0x14 + adds r0, r4 + ldr r3, [r0] + adds r2, r6, 0 +_080A99CA: + ldrb r1, [r3] + adds r0, r1, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080A99FA + subs r5, 0x1 + cmp r5, 0 + bne _080A99E8 + movs r0, 0xFF + strb r0, [r2] + movs r0, 0x1 + b _080A9A02 + .align 2, 0 +_080A99E4: .4byte gItems +_080A99E8: + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080A99F4 + movs r0, 0 + b _080A9A02 +_080A99F4: + adds r2, r6, 0 + adds r3, 0x1 + b _080A99CA +_080A99FA: + strb r1, [r2] + adds r3, 0x1 + adds r2, 0x1 + b _080A99CA +_080A9A02: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A99A8 + + thumb_func_start itemid_is_unique +itemid_is_unique: @ 80A9A08 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A28 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x18] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9A28: .4byte gItems + thumb_func_end itemid_is_unique + + thumb_func_start itemid_get_x19 +itemid_get_x19: @ 80A9A2C + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A4C + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x19] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9A4C: .4byte gItems + thumb_func_end itemid_get_x19 + + thumb_func_start itemid_get_pocket_number +itemid_get_pocket_number: @ 80A9A50 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A70 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x1A] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9A70: .4byte gItems + thumb_func_end itemid_get_pocket_number + + thumb_func_start itemid_get_type +itemid_get_type: @ 80A9A74 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A94 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x1B] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9A94: .4byte gItems + thumb_func_end itemid_get_type + + thumb_func_start itemid_get_overworld_function +itemid_get_overworld_function: @ 80A9A98 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9AB8 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r4, 0x1C + adds r0, r4 + ldr r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9AB8: .4byte gItems + thumb_func_end itemid_get_overworld_function + + thumb_func_start itemid_get_usage +itemid_get_usage: @ 80A9ABC + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9ADC + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9ADC: .4byte gItems + thumb_func_end itemid_get_usage + + thumb_func_start itemid_get_battle_function +itemid_get_battle_function: @ 80A9AE0 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9B00 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r4, 0x24 + adds r0, r4 + ldr r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9B00: .4byte gItems + thumb_func_end itemid_get_battle_function + + thumb_func_start itemid_get_x28 +itemid_get_x28: @ 80A9B04 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9B24 + bl itemid_sanitize + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + adds r0, r4 + adds r0, 0x28 + ldrb r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A9B24: .4byte gItems + thumb_func_end itemid_get_x28 + + thumb_func_start unref_sub_80A9B28 +unref_sub_80A9B28: @ 80A9B28 + push {lr} + sub sp, 0x8 + bl MenuZeroFillScreen + movs r0, 0 + movs r1, 0 + movs r2, 0x11 + movs r3, 0x12 + bl MenuDrawTextWindow + ldr r3, _080A9B6C + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x7 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x7 + bl InitMenu + ldr r1, _080A9B70 + ldr r0, _080A9B74 + str r0, [r1] + movs r0, 0 + add sp, 0x8 + pop {r1} + bx r1 + .align 2, 0 +_080A9B6C: .4byte gUnknown_083C91F0 +_080A9B70: .4byte gCallback_03004AE8 +_080A9B74: .4byte sub_80A9B78 + thumb_func_end unref_sub_80A9B28 + + thumb_func_start sub_80A9B78 +sub_80A9B78: @ 80A9B78 + push {lr} + bl ProcessMenuInput + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + bne _080A9B8E + movs r0, 0 + b _080A9BB6 +_080A9B8E: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080A9BB0 + ldr r2, _080A9BA8 + ldr r0, _080A9BAC + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + movs r0, 0 + b _080A9BB6 + .align 2, 0 +_080A9BA8: .4byte gCallback_03004AE8 +_080A9BAC: .4byte gUnknown_083C91F0 +_080A9BB0: + bl sub_8071C20 + movs r0, 0x1 +_080A9BB6: + pop {r1} + bx r1 + thumb_func_end sub_80A9B78 + + thumb_func_start sub_80A9BBC +sub_80A9BBC: @ 80A9BBC + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080A9BE0 + movs r1, 0xFF + bl CreateTask + movs r0, 0x1 + add sp, 0x4 + pop {r1} + bx r1 + .align 2, 0 +_080A9BE0: .4byte sub_80A9BE4 + thumb_func_end sub_80A9BBC + + thumb_func_start sub_80A9BE4 +sub_80A9BE4: @ 80A9BE4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A9C14 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A9C10 + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080A9C18 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A9C0C + bl sub_80AF668 +_080A9C0C: + bl sub_80C2358 +_080A9C10: + pop {r0} + bx r0 + .align 2, 0 +_080A9C14: .4byte gPaletteFade +_080A9C18: .4byte gUnknown_0203869A + thumb_func_end sub_80A9BE4 + + thumb_func_start sub_80A9C1C +sub_80A9C1C: @ 80A9C1C + push {lr} + ldr r1, _080A9C30 + movs r0, 0 + strb r0, [r1] + bl sub_80AA10C + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A9C30: .4byte gUnknown_0203869A + thumb_func_end sub_80A9C1C + + thumb_func_start sub_80A9C34 +sub_80A9C34: @ 80A9C34 + push {lr} + bl sub_80AA10C + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80A9C34 + + thumb_func_start sub_80A9C40 +sub_80A9C40: @ 80A9C40 + push {r4,r5,lr} + ldr r5, _080A9C88 + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _080A9C8C + adds r0, r4, 0 + adds r1, r5, 0 + bl SetTaskFuncWithFollowupFunc + ldr r0, _080A9C90 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A9C94 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x1C] + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0x1C] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080A9C88: .4byte sub_80A9E3C +_080A9C8C: .4byte sub_80A9C98 +_080A9C90: .4byte sub_80A9E04 +_080A9C94: .4byte gTasks + thumb_func_end sub_80A9C40 + + thumb_func_start sub_80A9C98 +sub_80A9C98: @ 80A9C98 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80AE098 + ldr r1, _080A9CB8 + ldr r2, _080A9CBC + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9CB8: .4byte sub_80C8734 +_080A9CBC: .4byte sub_80A9CC0 + thumb_func_end sub_80A9C98 + + thumb_func_start sub_80A9CC0 +sub_80A9CC0: @ 80A9CC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A9CD4 + ldr r2, _080A9CD8 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080A9CD4: .4byte sub_80C88AC +_080A9CD8: .4byte sub_80A9CDC + thumb_func_end sub_80A9CC0 + + thumb_func_start sub_80A9CDC +sub_80A9CDC: @ 80A9CDC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A9CF0 + ldr r2, _080A9CF4 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080A9CF0: .4byte sub_80C8E1C +_080A9CF4: .4byte sub_80A9D58 + thumb_func_end sub_80A9CDC + + thumb_func_start sub_80A9CF8 +sub_80A9CF8: @ 80A9CF8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A9D28 + ldrb r0, [r0] + cmp r0, 0 + bne _080A9D20 + ldr r0, _080A9D2C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x1C] + bl DestroyTask + adds r0, r4, 0 + bl DestroyTask + bl sub_8071C20 +_080A9D20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9D28: .4byte gReceivedRemoteLinkPlayers +_080A9D2C: .4byte gTasks + thumb_func_end sub_80A9CF8 + + thumb_func_start sub_80A9D30 +sub_80A9D30: @ 80A9D30 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800832C + ldr r1, _080A9D50 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A9D54 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9D50: .4byte gTasks +_080A9D54: .4byte sub_80A9CF8 + thumb_func_end sub_80A9D30 + + thumb_func_start sub_80A9D58 +sub_80A9D58: @ 80A9D58 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r1, _080A9DA8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, 0x12 + adds r2, r0, r1 +_080A9D6E: + mov r0, sp + adds r1, r0, r3 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _080A9D6E + mov r0, sp + bl sub_80C4B34 + ldr r1, _080A9DAC + strb r0, [r1] + ldr r0, _080A9DB0 + ldrb r0, [r0] + bl sub_80AE82C + movs r0, 0 + bl sub_80B0F28 + ldr r1, _080A9DB4 + ldr r2, _080A9DB8 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9DA8: .4byte gTasks +_080A9DAC: .4byte gUnknown_0203869B +_080A9DB0: .4byte gUnknown_0203869C +_080A9DB4: .4byte sub_80C8EBC +_080A9DB8: .4byte sub_80A9DBC + thumb_func_end sub_80A9D58 + + thumb_func_start sub_80A9DBC +sub_80A9DBC: @ 80A9DBC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A9DD0 + ldr r2, _080A9DD4 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080A9DD0: .4byte sub_80C8F34 +_080A9DD4: .4byte sub_80A9DD8 + thumb_func_end sub_80A9DBC + + thumb_func_start sub_80A9DD8 +sub_80A9DD8: @ 80A9DD8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A9E00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x1C] + bl DestroyTask + adds r0, r4, 0 + bl DestroyTask + bl sub_8071C20 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9E00: .4byte gTasks + thumb_func_end sub_80A9DD8 + + thumb_func_start sub_80A9E04 +sub_80A9E04: @ 80A9E04 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080A9E30 + ldrh r0, [r0, 0x2E] + cmp r0, 0x2 + bne _080A9E2A + ldr r2, _080A9E34 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r1, [r0, 0x1C] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080A9E38 + str r1, [r0] +_080A9E2A: + pop {r0} + bx r0 + .align 2, 0 +_080A9E30: .4byte gMain +_080A9E34: .4byte gTasks +_080A9E38: .4byte sub_80A9D30 + thumb_func_end sub_80A9E04 + + thumb_func_start sub_80A9E3C +sub_80A9E3C: @ 80A9E3C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl OpenLink + movs r1, 0 + ldr r3, _080A9E74 + movs r2, 0xFF +_080A9E4C: + lsls r0, r1, 8 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080A9E4C + ldr r1, _080A9E78 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080A9E7C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9E74: .4byte gBlockRecvBuffer +_080A9E78: .4byte gTasks +_080A9E7C: .4byte sub_80A9E80 + thumb_func_end sub_80A9E3C + + thumb_func_start sub_80A9E80 +sub_80A9E80: @ 80A9E80 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A9EA0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0x9 + bgt _080A9EA4 + adds r0, r1, 0x1 + strh r0, [r4, 0x8] + b _080A9ECC + .align 2, 0 +_080A9EA0: .4byte gTasks +_080A9EA4: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080A9ECC + movs r0, 0 + strh r0, [r4, 0x8] + bl IsLinkMaster + lsls r0, 24 + cmp r0, 0 + beq _080A9EC8 + ldr r0, _080A9EC4 + b _080A9ECA + .align 2, 0 +_080A9EC4: .4byte sub_80A9ED8 +_080A9EC8: + ldr r0, _080A9ED4 +_080A9ECA: + str r0, [r4] +_080A9ECC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9ED4: .4byte sub_80A9F10 + thumb_func_end sub_80A9E80 + + thumb_func_start sub_80A9ED8 +sub_80A9ED8: @ 80A9ED8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A9F08 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x65 + bne _080A9F02 + bl sub_8007F4C + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _080A9F0C + str r0, [r4] +_080A9F02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9F08: .4byte gTasks +_080A9F0C: .4byte sub_80A9F10 + thumb_func_end sub_80A9ED8 + + thumb_func_start sub_80A9F10 +sub_80A9F10: @ 80A9F10 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A9F44 + ldrb r0, [r0] + cmp r0, 0 + beq _080A9F3E + bl GetMultiplayerId + ldr r1, _080A9F48 + strb r0, [r1] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080A9F3E + ldr r1, _080A9F4C + movs r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080A9F3E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9F44: .4byte gReceivedRemoteLinkPlayers +_080A9F48: .4byte gUnknown_02038695 +_080A9F4C: .4byte gUnknown_0203869A + thumb_func_end sub_80A9F10 + + thumb_func_start sub_80A9F50 +sub_80A9F50: @ 80A9F50 + push {r4,lr} + movs r2, 0x80 + lsls r2, 19 + movs r0, 0x40 + strh r0, [r2] + ldrh r0, [r2] + movs r3, 0x88 + lsls r3, 5 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r4, _080A9FB8 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080A9FBC + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r0, _080A9FC0 + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x44 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r0, _080A9FC4 + strh r1, [r0] + ldr r0, _080A9FC8 + strh r1, [r0] + ldr r0, _080A9FCC + strh r1, [r0] + ldr r0, _080A9FD0 + strh r1, [r0] + ldr r0, _080A9FD4 + strh r1, [r0] + ldr r0, _080A9FD8 + strh r1, [r0] + ldr r0, _080A9FDC + strh r1, [r0] + ldr r0, _080A9FE0 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9FB8: .4byte gWindowConfig_81E6C3C +_080A9FBC: .4byte gMenuWindow +_080A9FC0: .4byte REG_MOSAIC +_080A9FC4: .4byte gUnknown_030042A4 +_080A9FC8: .4byte gUnknown_030042A0 +_080A9FCC: .4byte gUnknown_030042C0 +_080A9FD0: .4byte gUnknown_030041B4 +_080A9FD4: .4byte gUnknown_03004288 +_080A9FD8: .4byte gUnknown_03004280 +_080A9FDC: .4byte gUnknown_030041B0 +_080A9FE0: .4byte gUnknown_030041B8 + thumb_func_end sub_80A9F50 + + thumb_func_start sub_80A9FE4 +sub_80A9FE4: @ 80A9FE4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r1, _080AA054 + mov r0, sp + movs r2, 0x5 + bl memcpy + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + add r5, sp, 0x8 + movs r6, 0 + ldr r1, _080AA058 + movs r4, 0x80 + lsls r4, 5 + mov r12, r5 + ldr r7, _080AA05C + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_080AA012: + str r6, [sp, 0x8] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080AA012 + str r6, [sp, 0x8] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xC0 + lsls r0, 19 + mov r1, sp + bl sub_80034D4 + ldr r0, _080AA060 + bl LoadFontDefaultPalette + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA054: .4byte gUnknown_083C9228 +_080AA058: .4byte 0x040000d4 +_080AA05C: .4byte 0x85000400 +_080AA060: .4byte gWindowConfig_81E6C3C + thumb_func_end sub_80A9FE4 + + thumb_func_start sub_80AA064 +sub_80AA064: @ 80AA064 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + ldr r0, _080AA088 + ldrh r0, [r0, 0x2E] + cmp r0, 0x4 + bne _080AA084 + ldr r0, _080AA08C + bl SetMainCallback2 +_080AA084: + pop {r0} + bx r0 + .align 2, 0 +_080AA088: .4byte gMain +_080AA08C: .4byte sub_805469C + thumb_func_end sub_80AA064 + + thumb_func_start sub_80AA090 +sub_80AA090: @ 80AA090 + push {lr} + ldr r1, _080AA0E8 + ldr r0, _080AA0EC + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0F0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0F4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0F8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0FC + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA100 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA104 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA108 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080AA0E8: .4byte REG_BG0HOFS +_080AA0EC: .4byte gUnknown_030042A4 +_080AA0F0: .4byte gUnknown_030042A0 +_080AA0F4: .4byte gUnknown_030042C0 +_080AA0F8: .4byte gUnknown_030041B4 +_080AA0FC: .4byte gUnknown_03004288 +_080AA100: .4byte gUnknown_03004280 +_080AA104: .4byte gUnknown_030041B0 +_080AA108: .4byte gUnknown_030041B8 + thumb_func_end sub_80AA090 + + thumb_func_start sub_80AA10C +sub_80AA10C: @ 80AA10C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r4, _080AA238 + ldrb r0, [r4, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4, 0x8] + movs r0, 0 + bl SetVBlankCallback + bl sub_80A9F50 + bl dp12_8087EA4 + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl sub_80A9FE4 + ldr r0, _080AA23C + bl SetVBlankCallback + ldr r0, _080AA240 + bl SetMainCallback2 + ldrb r1, [r4, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x8] + ldr r4, _080AA244 + movs r0, 0 + strb r0, [r4] + ldr r0, _080AA248 + ldrb r0, [r0, 0x2] + cmp r0, 0 + bne _080AA16A + movs r0, 0 + movs r1, 0 + bl sub_80AE398 +_080AA16A: + ldrb r0, [r4] + bl sub_80AE098 + movs r5, 0 + ldr r6, _080AA24C + adds r0, r6, 0x1 + mov r8, r0 + ldr r7, _080AA250 +_080AA17A: + lsls r2, r5, 2 + adds r0, r2, r7 + ldr r1, [r0] + adds r2, r5 + lsls r2, 17 + movs r0, 0xA8 + lsls r0, 14 + adds r2, r0 + lsrs r2, 16 + lsls r4, r5, 1 + adds r0, r4, r6 + ldrb r3, [r0] + add r4, r8 + ldrb r0, [r4] + str r0, [sp] + ldr r0, _080AA254 + bl sub_8003460 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080AA17A + ldr r1, _080AA258 + ldr r4, _080AA25C + movs r0, 0 + strh r0, [r4] + strh r0, [r1] + movs r5, 0 + movs r0, 0 + bl sub_80AA5BC + ldrb r0, [r4] + bl sub_80AA5E8 + ldr r4, _080AA254 + ldr r1, _080AA260 + movs r0, 0x12 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0xD6 + movs r3, 0x12 + bl sub_8003460 + ldr r1, _080AA264 + movs r0, 0xC + str r0, [sp] + adds r0, r4, 0 + movs r2, 0xDC + movs r3, 0 + bl sub_8003460 + ldr r0, _080AA268 + bl LoadSpriteSheet + ldr r0, _080AA26C + bl LoadSpritePalette + movs r0, 0x3 + bl sub_80AA280 + movs r0, 0x3 + bl sub_80AA658 + movs r0, 0x3 + movs r1, 0 + bl sub_80AA614 + ldr r0, _080AA270 + ldr r1, _080AA274 + ldrb r1, [r1, 0x3] + ldr r2, _080AA278 + ldrb r2, [r2, 0x1] + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AA27C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x2E] + strh r0, [r1, 0x30] + movs r0, 0x3 + strh r0, [r1, 0x32] + strh r5, [r1, 0x34] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA238: .4byte gPaletteFade +_080AA23C: .4byte sub_80AA090 +_080AA240: .4byte sub_80AA064 +_080AA244: .4byte gUnknown_02038694 +_080AA248: .4byte gUnknown_02038570 +_080AA24C: .4byte gUnknown_083C9276 +_080AA250: .4byte gUnknown_083C9364 +_080AA254: .4byte gMenuWindow +_080AA258: .4byte gUnknown_0203869C +_080AA25C: .4byte gUnknown_0203869E +_080AA260: .4byte gUnknown_083C9337 +_080AA264: .4byte gUnknown_083C933B +_080AA268: .4byte gUnknown_083C92B4 +_080AA26C: .4byte gUnknown_083C92BC +_080AA270: .4byte gSpriteTemplate_83C92CC +_080AA274: .4byte gUnknown_083C9296 +_080AA278: .4byte gUnknown_083C92A8 +_080AA27C: .4byte gSprites + thumb_func_end sub_80AA10C + + thumb_func_start sub_80AA280 +sub_80AA280: @ 80AA280 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080AA2E8 + movs r1, 0x1E + str r1, [sp] + movs r1, 0x3 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillWindowRect_DefaultPalette + ldr r4, _080AA2EC + ldr r1, _080AA2F0 + adds r0, r4, 0 + bl StringCopy + lsls r1, r7, 6 + ldr r0, _080AA2F4 + adds r1, r0 + adds r0, r4, 0 + bl StringAppend + movs r5, 0 + ldr r6, _080AA2F8 + adds r0, r6, 0x1 + mov r8, r0 +_080AA2BE: + cmp r7, r5 + bne _080AA2FC + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 17 + movs r0, 0x80 + lsls r0, 10 + adds r2, r0 + lsrs r2, 16 + lsls r1, r5, 1 + adds r0, r1, r6 + ldrb r3, [r0] + add r1, r8 + ldrb r0, [r1] + str r0, [sp] + ldr r0, _080AA2E8 + ldr r1, _080AA2EC + bl sub_8003460 + b _080AA322 + .align 2, 0 +_080AA2E8: .4byte gMenuWindow +_080AA2EC: .4byte 0x02000000 +_080AA2F0: .4byte gUnknown_083C932C +_080AA2F4: .4byte gUnknown_0203857D +_080AA2F8: .4byte gUnknown_083C926E +_080AA2FC: + lsls r1, r5, 6 + ldr r0, _080AA338 + adds r1, r0 + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 17 + movs r0, 0x80 + lsls r0, 10 + adds r2, r0 + lsrs r2, 16 + lsls r4, r5, 1 + adds r0, r4, r6 + ldrb r3, [r0] + add r4, r8 + ldrb r0, [r4] + str r0, [sp] + ldr r0, _080AA33C + bl sub_8003460 +_080AA322: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AA2BE + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA338: .4byte gUnknown_0203857D +_080AA33C: .4byte gMenuWindow + thumb_func_end sub_80AA280 + + thumb_func_start sub_80AA340 +sub_80AA340: @ 80AA340 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _080AA378 + ldr r1, _080AA37C + lsrs r0, 18 + adds r0, r1 + adds r0, 0x26 + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA380 + ldr r1, _080AA384 + ldrb r3, [r1] + ldrb r1, [r1, 0x1] + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x66 + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA378: .4byte 0x02000000 +_080AA37C: .4byte gUnknown_02038570 +_080AA380: .4byte gMenuWindow +_080AA384: .4byte gUnknown_083C9282 + thumb_func_end sub_80AA340 + + thumb_func_start sub_80AA388 +sub_80AA388: @ 80AA388 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _080AA3C0 + ldr r1, _080AA3C4 + lsrs r0, 18 + adds r0, r1 + adds r0, 0x28 + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA3C8 + ldr r1, _080AA3CC + ldrb r3, [r1, 0x2] + ldrb r1, [r1, 0x3] + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x6C + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA3C0: .4byte 0x02000000 +_080AA3C4: .4byte gUnknown_02038570 +_080AA3C8: .4byte gMenuWindow +_080AA3CC: .4byte gUnknown_083C9282 + thumb_func_end sub_80AA388 + + thumb_func_start sub_80AA3D0 +sub_80AA3D0: @ 80AA3D0 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _080AA408 + ldr r1, _080AA40C + lsrs r0, 18 + adds r0, r1 + adds r0, 0x27 + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA410 + ldr r1, _080AA414 + ldrb r3, [r1, 0x4] + ldrb r1, [r1, 0x5] + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x72 + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA408: .4byte 0x02000000 +_080AA40C: .4byte gUnknown_02038570 +_080AA410: .4byte gMenuWindow +_080AA414: .4byte gUnknown_083C9282 + thumb_func_end sub_80AA3D0 + + thumb_func_start sub_80AA418 +sub_80AA418: @ 80AA418 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _080AA450 + ldr r1, _080AA454 + lsrs r0, 18 + adds r0, r1 + adds r0, 0x29 + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA458 + ldr r1, _080AA45C + ldrb r3, [r1, 0x6] + ldrb r1, [r1, 0x7] + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x78 + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA450: .4byte 0x02000000 +_080AA454: .4byte gUnknown_02038570 +_080AA458: .4byte gMenuWindow +_080AA45C: .4byte gUnknown_083C9282 + thumb_func_end sub_80AA418 + + thumb_func_start sub_80AA460 +sub_80AA460: @ 80AA460 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _080AA498 + ldr r1, _080AA49C + lsrs r0, 18 + adds r0, r1 + adds r0, 0x2A + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA4A0 + ldr r1, _080AA4A4 + ldrb r3, [r1, 0x8] + ldrb r1, [r1, 0x9] + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x7E + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA498: .4byte 0x02000000 +_080AA49C: .4byte gUnknown_02038570 +_080AA4A0: .4byte gMenuWindow +_080AA4A4: .4byte gUnknown_083C9282 + thumb_func_end sub_80AA460 + + thumb_func_start sub_80AA4A8 +sub_80AA4A8: @ 80AA4A8 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _080AA4E0 + ldr r1, _080AA4E4 + lsrs r0, 18 + adds r0, r1 + adds r0, 0x2B + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA4E8 + ldr r1, _080AA4EC + ldrb r3, [r1, 0xA] + ldrb r1, [r1, 0xB] + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x84 + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA4E0: .4byte 0x02000000 +_080AA4E4: .4byte gUnknown_02038570 +_080AA4E8: .4byte gMenuWindow +_080AA4EC: .4byte gUnknown_083C9282 + thumb_func_end sub_80AA4A8 + + thumb_func_start sub_80AA4F0 +sub_80AA4F0: @ 80AA4F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r7, _080AA5A8 + ldr r0, _080AA5AC + lsls r5, r6, 1 + adds r1, r5, r0 + ldrb r1, [r1] + mov r9, r1 + adds r0, 0x1 + adds r0, r5, r0 + ldrb r0, [r0] + mov r10, r0 + movs r0, 0x7 + add r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + str r0, [sp] + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0 + mov r2, r9 + mov r3, r10 + bl FillWindowRect_DefaultPalette + ldr r0, _080AA5B0 + lsls r4, 6 + adds r4, r5, r4 + adds r0, 0x1E + adds r4, r0 + ldrh r1, [r4] + movs r0, 0xD + muls r1, r0 + ldr r0, _080AA5B4 + adds r1, r0 + lsls r2, r6, 3 + subs r2, r6 + lsls r2, 17 + movs r0, 0x8A + lsls r0, 16 + adds r2, r0 + lsrs r2, 16 + mov r0, r10 + str r0, [sp] + adds r0, r7, 0 + mov r3, r9 + bl sub_8003460 + ldr r0, _080AA5B8 + mov r9, r0 + ldrh r1, [r4] + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r5, r6 + lsls r5, 17 + movs r0, 0xFA + lsls r0, 16 + adds r5, r0 + lsrs r5, 16 + mov r0, r10 + str r0, [sp] + adds r0, r7, 0 + mov r1, r9 + adds r2, r5, 0 + mov r3, r8 + bl sub_8003460 + 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 +_080AA5A8: .4byte gMenuWindow +_080AA5AC: .4byte gUnknown_083C928E +_080AA5B0: .4byte gUnknown_02038570 +_080AA5B4: .4byte gMoveNames +_080AA5B8: .4byte gStringVar1 + thumb_func_end sub_80AA4F0 + + thumb_func_start sub_80AA5BC +sub_80AA5BC: @ 80AA5BC + push {lr} + sub sp, 0x4 + lsls r0, 24 + ldr r2, _080AA5E0 + ldr r1, _080AA5E4 + lsrs r0, 22 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x12 + str r0, [sp] + adds r0, r2, 0 + movs r2, 0xC2 + movs r3, 0x3 + bl sub_8003460 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080AA5E0: .4byte gMenuWindow +_080AA5E4: .4byte gUnknown_083C93B4 + thumb_func_end sub_80AA5BC + + thumb_func_start sub_80AA5E8 +sub_80AA5E8: @ 80AA5E8 + push {lr} + sub sp, 0x4 + lsls r0, 24 + ldr r2, _080AA60C + ldr r1, _080AA610 + lsrs r0, 22 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x4 + str r0, [sp] + adds r0, r2, 0 + movs r2, 0xE8 + movs r3, 0x3 + bl sub_8003460 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080AA60C: .4byte gMenuWindow +_080AA610: .4byte gUnknown_083C93F0 + thumb_func_end sub_80AA5E8 + + thumb_func_start sub_80AA614 +sub_80AA614: @ 80AA614 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + bl sub_80AE770 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _080AA650 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA654 + movs r1, 0xC + str r1, [sp] + adds r1, r4, 0 + movs r2, 0xE2 + movs r3, 0x3 + bl sub_8003460 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA650: .4byte 0x02000000 +_080AA654: .4byte gMenuWindow + thumb_func_end sub_80AA614 + + thumb_func_start sub_80AA658 +sub_80AA658: @ 80AA658 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80AA340 + adds r0, r5, 0 + bl sub_80AA388 + adds r0, r5, 0 + bl sub_80AA3D0 + adds r0, r5, 0 + bl sub_80AA418 + adds r0, r5, 0 + bl sub_80AA460 + adds r0, r5, 0 + bl sub_80AA4A8 + movs r4, 0 +_080AA684: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80AA4F0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AA684 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AA658 + + thumb_func_start sub_80AA69C +sub_80AA69C: @ 80AA69C + push {r4-r6,lr} + ldr r6, _080AA748 + ldr r5, _080AA74C + ldrb r2, [r5] + lsls r2, 6 + ldr r4, _080AA750 + adds r2, r4 + adds r0, r6, 0 + movs r1, 0x16 + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r0, r4, 0x2 + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x18 + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r0, r4, 0x1 + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x17 + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r0, r4, 0x3 + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x21 + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r0, r4, 0x4 + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x2F + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r0, r4, 0x5 + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x30 + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + subs r4, 0x8 + adds r2, r4 + adds r0, r6, 0 + movs r1, 0xD + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r2, r4 + adds r2, 0x2 + adds r0, r6, 0 + movs r1, 0xE + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r2, r4 + adds r2, 0x4 + adds r0, r6, 0 + movs r1, 0xF + bl SetMonData + ldrb r2, [r5] + lsls r2, 6 + adds r2, r4 + adds r2, 0x6 + adds r0, r6, 0 + movs r1, 0x10 + bl SetMonData + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AA748: .4byte gPlayerParty +_080AA74C: .4byte gUnknown_02038695 +_080AA750: .4byte gUnknown_02038596 + thumb_func_end sub_80AA69C + + thumb_func_start sub_80AA754 +sub_80AA754: @ 80AA754 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AA774 + ldrh r1, [r0, 0x30] + cmp r1, 0x20 + beq _080AA7A2 + cmp r1, 0x20 + bgt _080AA782 + cmp r1, 0x2 + beq _080AA7F8 + cmp r1, 0x2 + bgt _080AA778 + cmp r1, 0x1 + beq _080AA7D8 + b _080AA870 + .align 2, 0 +_080AA774: .4byte gMain +_080AA778: + cmp r1, 0x8 + beq _080AA868 + cmp r1, 0x10 + beq _080AA7A2 + b _080AA870 +_080AA782: + cmp r1, 0x80 + beq _080AA7C2 + cmp r1, 0x80 + bgt _080AA790 + cmp r1, 0x40 + beq _080AA7AC + b _080AA870 +_080AA790: + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + beq _080AA814 + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + beq _080AA834 + b _080AA870 +_080AA7A2: + ldrh r0, [r4, 0x2E] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x2E] + b _080AA870 +_080AA7AC: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AA7BC + movs r0, 0x8 + strh r0, [r4, 0x30] + b _080AA870 +_080AA7BC: + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080AA870 +_080AA7C2: + ldrh r1, [r4, 0x30] + movs r3, 0x30 + ldrsh r0, [r4, r3] + cmp r0, 0x8 + bne _080AA7D2 + movs r0, 0 + strh r0, [r4, 0x30] + b _080AA870 +_080AA7D2: + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080AA870 +_080AA7D8: + ldr r2, _080AA7F4 + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 2 + movs r3, 0x30 + ldrsh r1, [r4, r3] + lsls r1, 3 + adds r0, r1 + adds r0, r2 + ldr r2, [r0] + adds r0, r4, 0 + movs r1, 0x1 + b _080AA84E + .align 2, 0 +_080AA7F4: .4byte gUnknown_083C92E4 +_080AA7F8: + ldr r1, _080AA810 + movs r0, 0x2E + ldrsh r2, [r4, r0] + lsls r2, 2 + movs r3, 0x30 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r2, r0 + adds r2, r1 + movs r1, 0x1 + negs r1, r1 + b _080AA84A + .align 2, 0 +_080AA810: .4byte gUnknown_083C92E4 +_080AA814: + ldr r2, _080AA830 + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 2 + movs r3, 0x30 + ldrsh r1, [r4, r3] + lsls r1, 3 + adds r0, r1 + adds r0, r2 + ldr r2, [r0] + adds r0, r4, 0 + movs r1, 0xA + b _080AA84E + .align 2, 0 +_080AA830: .4byte gUnknown_083C92E4 +_080AA834: + ldr r1, _080AA864 + movs r0, 0x2E + ldrsh r2, [r4, r0] + lsls r2, 2 + movs r3, 0x30 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r2, r0 + adds r2, r1 + movs r1, 0xA + negs r1, r1 +_080AA84A: + ldr r2, [r2] + adds r0, r4, 0 +_080AA84E: + bl _call_via_r2 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x34] + lsls r1, 24 + lsrs r1, 24 + bl sub_80AA614 + b _080AA870 + .align 2, 0 +_080AA864: .4byte gUnknown_083C92E4 +_080AA868: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80AAD08 +_080AA870: + ldr r2, _080AA898 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r3, 0x30 + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + strh r0, [r4, 0x20] + ldr r1, _080AA89C + movs r2, 0x30 + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x22] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA898: .4byte gUnknown_083C9296 +_080AA89C: .4byte gUnknown_083C92A8 + thumb_func_end sub_80AA754 + + thumb_func_start sub_80AA8A0 +sub_80AA8A0: @ 80AA8A0 + push {r4,lr} + adds r4, r0, 0 + lsls r2, 24 + lsrs r0, r2, 24 + lsls r1, 24 + asrs r1, 24 + cmp r1, 0x1 + bne _080AA8C0 + strh r0, [r4, 0x32] + bl sub_80AA280 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA658 +_080AA8C0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA8A0 + + thumb_func_start sub_80AA8C8 +sub_80AA8C8: @ 80AA8C8 + push {lr} + lsls r1, 24 + asrs r1, 24 + movs r2, 0 + bl sub_80AA8A0 + pop {r0} + bx r0 + thumb_func_end sub_80AA8C8 + + thumb_func_start sub_80AA8D8 +sub_80AA8D8: @ 80AA8D8 + push {lr} + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + bl sub_80AA8A0 + pop {r0} + bx r0 + thumb_func_end sub_80AA8D8 + + thumb_func_start sub_80AA8E8 +sub_80AA8E8: @ 80AA8E8 + push {lr} + lsls r1, 24 + asrs r1, 24 + movs r2, 0x2 + bl sub_80AA8A0 + pop {r0} + bx r0 + thumb_func_end sub_80AA8E8 + + thumb_func_start sub_80AA8F8 +sub_80AA8F8: @ 80AA8F8 + push {lr} + lsls r1, 24 + asrs r1, 24 + movs r2, 0x3 + bl sub_80AA8A0 + pop {r0} + bx r0 + thumb_func_end sub_80AA8F8 + + thumb_func_start sub_80AA908 +sub_80AA908: @ 80AA908 + push {lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + asrs r2, 24 + adds r2, r1 + lsls r2, 16 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0xFF + ble _080AA922 + movs r0, 0xFF + b _080AA928 +_080AA922: + cmp r2, 0 + bge _080AA928 + movs r0, 0 +_080AA928: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80AA908 + + thumb_func_start sub_80AA930 +sub_80AA930: @ 80AA930 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AA970 + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + adds r2, 0x26 + ldrb r3, [r2] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AA908 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + adds r1, 0x26 + strb r0, [r1] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA340 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA970: .4byte gUnknown_02038570 + thumb_func_end sub_80AA930 + + thumb_func_start sub_80AA974 +sub_80AA974: @ 80AA974 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AA9B4 + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + adds r2, 0x28 + ldrb r3, [r2] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AA908 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + adds r1, 0x28 + strb r0, [r1] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA388 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA9B4: .4byte gUnknown_02038570 + thumb_func_end sub_80AA974 + + thumb_func_start sub_80AA9B8 +sub_80AA9B8: @ 80AA9B8 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AA9F8 + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + adds r2, 0x27 + ldrb r3, [r2] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AA908 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + adds r1, 0x27 + strb r0, [r1] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA3D0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA9F8: .4byte gUnknown_02038570 + thumb_func_end sub_80AA9B8 + + thumb_func_start sub_80AA9FC +sub_80AA9FC: @ 80AA9FC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AAA3C + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + adds r2, 0x29 + ldrb r3, [r2] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AA908 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + adds r1, 0x29 + strb r0, [r1] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA418 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAA3C: .4byte gUnknown_02038570 + thumb_func_end sub_80AA9FC + + thumb_func_start sub_80AAA40 +sub_80AAA40: @ 80AAA40 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AAA80 + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + adds r2, 0x2A + ldrb r3, [r2] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AA908 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + adds r1, 0x2A + strb r0, [r1] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA460 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAA80: .4byte gUnknown_02038570 + thumb_func_end sub_80AAA40 + + thumb_func_start sub_80AAA84 +sub_80AAA84: @ 80AAA84 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AAAC4 + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + adds r2, 0x2B + ldrb r3, [r2] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AA908 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + adds r1, 0x2B + strb r0, [r1] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA4A8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAAC4: .4byte gUnknown_02038570 + thumb_func_end sub_80AAA84 + + thumb_func_start sub_80AAAC8 +sub_80AAAC8: @ 80AAAC8 + push {lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + asrs r2, 24 + adds r1, r2 + lsls r1, 16 + lsrs r0, r1, 16 + asrs r1, 16 + movs r2, 0xB1 + lsls r2, 1 + cmp r1, r2 + ble _080AAAE6 + movs r0, 0x1 + b _080AAAEC +_080AAAE6: + cmp r1, 0 + bge _080AAAEC + adds r0, r2, 0 +_080AAAEC: + pop {r1} + bx r1 + thumb_func_end sub_80AAAC8 + + thumb_func_start sub_80AAAF0 +sub_80AAAF0: @ 80AAAF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AAB2C + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + ldrh r3, [r2, 0x1E] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AAAC8 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + strh r0, [r1, 0x1E] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80AA4F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAB2C: .4byte gUnknown_02038570 + thumb_func_end sub_80AAAF0 + + thumb_func_start sub_80AAB30 +sub_80AAB30: @ 80AAB30 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AAB6C + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + ldrh r3, [r2, 0x20] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AAAC8 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + strh r0, [r1, 0x20] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80AA4F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAB6C: .4byte gUnknown_02038570 + thumb_func_end sub_80AAB30 + + thumb_func_start sub_80AAB70 +sub_80AAB70: @ 80AAB70 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AABAC + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + ldrh r3, [r2, 0x22] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AAAC8 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + strh r0, [r1, 0x22] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_80AA4F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AABAC: .4byte gUnknown_02038570 + thumb_func_end sub_80AAB70 + + thumb_func_start sub_80AABB0 +sub_80AABB0: @ 80AABB0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080AABEC + movs r3, 0x32 + ldrsh r2, [r4, r3] + lsls r2, 6 + adds r2, r5 + ldrh r3, [r2, 0x24] + lsls r2, r1, 24 + asrs r2, 24 + adds r1, r3, 0 + bl sub_80AAAC8 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsls r1, 6 + adds r1, r5 + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_80AA4F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AABEC: .4byte gUnknown_02038570 + thumb_func_end sub_80AABB0 + + thumb_func_start sub_80AABF0 +sub_80AABF0: @ 80AABF0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + movs r0, 0xFF + cmp r1, 0 + ble _080AABFE + movs r0, 0x1 +_080AABFE: + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r5, 0x34] + adds r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080AAC14 + movs r4, 0 + b _080AAC1A +_080AAC14: + cmp r0, 0x4 + ble _080AAC1A + movs r4, 0x4 +_080AAC1A: + lsls r4, 24 + lsrs r0, r4, 24 + bl sub_80AA5BC + asrs r4, 24 + strh r4, [r5, 0x34] + ldr r0, _080AAC54 + strh r4, [r0] + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080AAC58 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80AE398 + ldrh r0, [r5, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA280 + ldrh r0, [r5, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA658 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAC54: .4byte gUnknown_0203869C +_080AAC58: .4byte gUnknown_0203869E + thumb_func_end sub_80AABF0 + + thumb_func_start sub_80AAC5C +sub_80AAC5C: @ 80AAC5C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + cmp r1, 0 + ble _080AAC78 + ldr r1, _080AAC74 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + adds r4, r1, 0 + b _080AAC86 + .align 2, 0 +_080AAC74: .4byte gUnknown_0203869E +_080AAC78: + ldr r0, _080AACBC + ldrh r2, [r0] + adds r4, r0, 0 + cmp r2, 0 + beq _080AAC86 + subs r0, r2, 0x1 + strh r0, [r4] +_080AAC86: + adds r1, r4, 0 + ldrh r0, [r1] + cmp r0, 0x3 + bls _080AAC92 + movs r0, 0x3 + strh r0, [r1] +_080AAC92: + ldrb r0, [r4] + bl sub_80AA5E8 + ldr r0, _080AACC0 + ldrb r0, [r0] + ldrb r1, [r4] + bl sub_80AE398 + ldrh r0, [r5, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA280 + ldrh r0, [r5, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AA658 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AACBC: .4byte gUnknown_0203869E +_080AACC0: .4byte gUnknown_0203869C + thumb_func_end sub_80AAC5C + + thumb_func_start sub_80AACC4 +sub_80AACC4: @ 80AACC4 + push {lr} + bl UpdatePaletteFade + ldr r0, _080AACF8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AACF4 + bl sub_80AA69C + ldr r0, _080AACFC + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AACEE + ldr r0, _080AAD00 + ldrb r0, [r0] + bl sub_80AE82C +_080AACEE: + ldr r0, _080AAD04 + bl SetMainCallback2 +_080AACF4: + pop {r0} + bx r0 + .align 2, 0 +_080AACF8: .4byte gPaletteFade +_080AACFC: .4byte gUnknown_0203869A +_080AAD00: .4byte 0x02000000 +_080AAD04: .4byte sub_80AB47C + thumb_func_end sub_80AACC4 + + thumb_func_start sub_80AAD08 +sub_80AAD08: @ 80AAD08 + push {r4,lr} + sub sp, 0x4 + lsls r1, 24 + asrs r1, 24 + cmp r1, 0x1 + bne _080AAD32 + ldr r1, _080AAD3C + ldrh r0, [r0, 0x34] + movs r4, 0 + strb r0, [r1] + ldr r0, _080AAD40 + bl SetMainCallback2 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_080AAD32: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAD3C: .4byte 0x02000000 +_080AAD40: .4byte sub_80AACC4 + thumb_func_end sub_80AAD08 + + thumb_func_start sub_80AAD44 +sub_80AAD44: @ 80AAD44 + push {r4,r5,lr} + lsls r1, 24 + asrs r1, 24 + cmp r1, 0x1 + bne _080AAD72 + bl sub_80AA69C + movs r4, 0 + ldr r5, _080AAD78 +_080AAD56: + lsls r0, r4, 24 + lsrs r0, 24 + ldr r1, _080AAD7C + ldrb r1, [r1] + bl sub_80AE770 + strh r0, [r5] + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AAD56 + ldr r0, _080AAD80 + bl SetMainCallback2 +_080AAD72: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAD78: .4byte gUnknown_02038670 +_080AAD7C: .4byte gUnknown_0203869C +_080AAD80: .4byte sub_805469C + thumb_func_end sub_80AAD44 + + thumb_func_start sub_80AAD84 +sub_80AAD84: @ 80AAD84 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x64 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x48] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4C] + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + mov r5, r10 + adds r5, 0x1 + lsls r1, r5, 8 + ldr r0, _080AAEC4 + subs r1, r0, r1 + movs r0, 0 + str r0, [sp, 0x44] + ldr r4, _080AAEC8 + add r0, sp, 0x44 + str r0, [r4] + str r1, [r4, 0x4] + ldr r0, _080AAECC + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + mov r0, r9 + bl StringLength + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x8 + bls _080AADD0 + movs r7, 0x8 +_080AADD0: + movs r6, 0 + mov r8, r5 + mov r1, r10 + lsls r1, 1 + str r1, [sp, 0x58] + ldr r2, [sp, 0x48] + adds r2, 0x20 + str r2, [sp, 0x5C] + cmp r6, r7 + bge _080AAE1E + add r5, sp, 0x40 + add r0, sp, 0x20 + mov r10, r0 + ldr r2, _080AAEC4 +_080AADEC: + mov r1, r9 + adds r0, r1, r6 + ldrb r0, [r0] + strb r0, [r5] + movs r0, 0xFF + strb r0, [r5, 0x1] + mov r0, sp + adds r1, r5, 0 + str r2, [sp, 0x60] + bl sub_80034D4 + mov r1, r8 + lsls r0, r1, 8 + ldr r2, [sp, 0x60] + subs r0, r2, r0 + mov r1, r10 + str r1, [r4] + str r0, [r4, 0x4] + ldr r0, _080AAED0 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r2, 0x20 + adds r6, 0x1 + cmp r6, r7 + blt _080AADEC +_080AAE1E: + movs r1, 0x7C + ldr r2, [sp, 0x58] + subs r1, r2 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080AAED4 + mov r9, r0 + lsls r3, r7, 3 + add r3, r9 + ldr r0, _080AAED8 + ldr r1, [r0] + ldr r2, [r0, 0x4] + str r1, [sp, 0x50] + str r2, [sp, 0x54] + str r1, [r3, 0x3C] + str r2, [r3, 0x40] + mov r2, r8 + lsls r0, r2, 3 + movs r1, 0x80 + lsls r1, 3 + adds r2, r1, 0 + subs r2, r0 + adds r6, r3, 0 + adds r6, 0x40 + ldr r0, _080AAEDC + mov r8, r0 + mov r1, r8 + ands r2, r1 + ldrh r5, [r6] + ldr r4, _080AAEE0 + adds r0, r4, 0 + ands r0, r5 + orrs r0, r2 + strh r0, [r6] + ldrh r5, [r3, 0x3E] + ldr r2, _080AAEE4 + adds r0, r2, 0 + ands r0, r5 + ldr r1, [sp, 0x48] + orrs r0, r1 + strh r0, [r3, 0x3E] + adds r3, 0x3C + add r0, sp, 0x4C + ldrb r0, [r0] + strb r0, [r3] + adds r1, r7, 0x1 + lsls r1, 3 + mov r0, r9 + adds r7, r1, r0 + ldr r0, [sp, 0x50] + ldr r1, [sp, 0x54] + str r0, [r7, 0x3C] + str r1, [r7, 0x40] + ldrh r0, [r6] + lsls r0, 22 + lsrs r0, 22 + adds r0, 0x4 + adds r5, r7, 0 + adds r5, 0x40 + mov r1, r8 + ands r0, r1 + ldrh r3, [r5] + ands r4, r3 + orrs r4, r0 + strh r4, [r5] + ldrh r0, [r7, 0x3E] + ands r2, r0 + ldr r0, [sp, 0x5C] + orrs r2, r0 + strh r2, [r7, 0x3E] + adds r1, r7, 0 + adds r1, 0x3C + add r2, sp, 0x4C + ldrb r2, [r2] + strb r2, [r1] + add sp, 0x64 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAEC4: .4byte 0x06018000 +_080AAEC8: .4byte 0x040000d4 +_080AAECC: .4byte 0x85000040 +_080AAED0: .4byte 0x84000008 +_080AAED4: .4byte gMain +_080AAED8: .4byte gUnknown_083C9400 +_080AAEDC: .4byte 0x000003ff +_080AAEE0: .4byte 0xfffffc00 +_080AAEE4: .4byte 0xfffffe00 + thumb_func_end sub_80AAD84 + + thumb_func_start unref_sub_80AAEE8 +unref_sub_80AAEE8: @ 80AAEE8 + push {r4-r7,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r5, r3, 24 + movs r0, 0 + cmp r4, 0 + bge _080AAF08 + mov r1, sp + movs r0, 0xAE + strb r0, [r1] + movs r0, 0x1 +_080AAF08: + add r0, sp + adds r1, r4, 0 + cmp r1, 0 + bge _080AAF12 + negs r1, r1 +_080AAF12: + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + mov r0, sp + adds r1, r7, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_80AAD84 + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80AAEE8 + + thumb_func_start sub_80AAF30 +sub_80AAF30: @ 80AAF30 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r1, _080AAFC0 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080AAFC4 + movs r0, 0x3 + strb r0, [r1] + movs r0, 0 + bl sub_80AE098 + movs r4, 0x3 + movs r5, 0x1 + negs r5, r5 + ldr r3, _080AAFC8 + movs r2, 0x3 +_080AAF56: + adds r1, r4, r3 + subs r0, r2, r4 + strb r0, [r1] + subs r4, 0x1 + cmp r4, r5 + bgt _080AAF56 + movs r4, 0 + movs r6, 0 + ldr r7, _080AAFCC + ldr r5, _080AAFD0 + mov r9, r5 +_080AAF6C: + lsls r1, r4, 1 + strh r6, [r7] + ldr r0, _080AAFD4 + mov r8, r0 + adds r0, r1, r0 + strh r6, [r0] + ldr r3, _080AAFD8 + adds r1, r3 + strh r6, [r1] + adds r0, r5, 0 + mov r1, r9 + adds r1, 0xC0 + movs r2, 0x40 + str r3, [sp] + bl memcpy + adds r7, 0x2 + adds r5, 0x40 + adds r4, 0x1 + ldr r3, [sp] + cmp r4, 0x2 + ble _080AAF6C + ldr r0, _080AAFCC + movs r1, 0x96 + lsls r1, 1 + strh r1, [r0, 0x6] + movs r0, 0xC8 + lsls r0, 1 + mov r1, r8 + strh r0, [r1, 0x6] + strh r0, [r3, 0x6] + movs r0, 0xFE + bl sub_80B2A7C + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAFC0: .4byte gUnknown_0203856C +_080AAFC4: .4byte gUnknown_02038695 +_080AAFC8: .4byte gUnknown_02038690 +_080AAFCC: .4byte gUnknown_02038670 +_080AAFD0: .4byte gUnknown_02038570 +_080AAFD4: .4byte gUnknown_02038680 +_080AAFD8: .4byte gUnknown_02038678 + thumb_func_end sub_80AAF30 + + thumb_func_start sub_80AAFDC +sub_80AAFDC: @ 80AAFDC + push {lr} + bl sub_80AAF30 + bl sub_8071C20 + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_80AAFDC + + thumb_func_start sub_80AAFEC +sub_80AAFEC: @ 80AAFEC + push {r4,lr} + ldr r1, _080AB01C + movs r0, 0 + strb r0, [r1] + movs r4, 0 + ldr r3, _080AB020 + ldr r2, _080AB024 + ldr r1, _080AB028 + movs r0, 0x3 +_080AAFFE: + strh r4, [r1] + strh r4, [r2] + strh r4, [r3] + adds r3, 0x2 + adds r2, 0x2 + adds r1, 0x2 + subs r0, 0x1 + cmp r0, 0 + bge _080AAFFE + bl sub_8071C20 + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080AB01C: .4byte gUnknown_0203856C +_080AB020: .4byte gUnknown_02038678 +_080AB024: .4byte gUnknown_02038680 +_080AB028: .4byte gUnknown_02038670 + thumb_func_end sub_80AAFEC + + thumb_func_start sub_80AB02C +sub_80AB02C: @ 80AB02C + push {r4,r5,lr} + ldr r1, _080AB078 + movs r0, 0x3 + strb r0, [r1] + movs r0, 0 + bl sub_80AE098 + movs r2, 0x3 + movs r5, 0x1 + negs r5, r5 + ldr r4, _080AB07C + movs r3, 0x3 +_080AB044: + adds r1, r2, r4 + subs r0, r3, r2 + strb r0, [r1] + subs r2, 0x1 + cmp r2, r5 + bgt _080AB044 + ldr r1, _080AB080 + movs r0, 0 + strh r0, [r1] + adds r4, r1, 0 +_080AB058: + movs r0, 0xFF + bl sub_80B2A7C + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bls _080AB058 + bl sub_8071C20 + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AB078: .4byte gUnknown_02038695 +_080AB07C: .4byte gUnknown_02038690 +_080AB080: .4byte gUnknown_0203869C + thumb_func_end sub_80AB02C + + thumb_func_start unref_sub_80AB084 +unref_sub_80AB084: @ 80AB084 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + mov r8, r0 + ldr r0, _080AB160 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x22 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + movs r2, 0x80 + lsls r2, 19 + movs r3, 0xFA + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r2] + ldr r3, _080AB164 + ldrh r2, [r3] + strh r1, [r3] + ldr r4, _080AB168 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r1, _080AB16C + movs r0, 0x8 + strh r0, [r1] + bl ResetTasks + bl ResetSpriteData + ldr r0, _080AB170 + bl SetMainCallback2 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + movs r5, 0 + ldr r1, _080AB174 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080AB178 + movs r7, 0x85 + lsls r7, 24 +_080AB108: + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080AB108 + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r4, _080AB17C + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r5, _080AB180 + adds r0, r5, 0 + adds r1, r4, 0 + bl InitWindowFromConfig + adds r0, r4, 0 + bl LoadFontDefaultPalette + movs r0, 0x7 + str r0, [sp] + adds r0, r5, 0 + mov r1, r8 + movs r2, 0x1 + movs r3, 0x9 + bl sub_8003460 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB160: .4byte REG_BG0HOFS +_080AB164: .4byte 0x04000208 +_080AB168: .4byte 0x04000200 +_080AB16C: .4byte REG_DISPSTAT +_080AB170: .4byte sub_80AB184 +_080AB174: .4byte 0x040000d4 +_080AB178: .4byte 0x85000400 +_080AB17C: .4byte gWindowConfig_81E6FD8 +_080AB180: .4byte gUnknown_03004210 + thumb_func_end unref_sub_80AB084 + + thumb_func_start sub_80AB184 +sub_80AB184: @ 80AB184 + ldr r0, _080AB1A8 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_080AB1A8: .4byte REG_BG0HOFS + thumb_func_end sub_80AB184 + + thumb_func_start nullsub_89 +nullsub_89: @ 80AB1AC + bx lr + thumb_func_end nullsub_89 + + thumb_func_start sub_80AB1B0 +sub_80AB1B0: @ 80AB1B0 + ldr r1, _080AB1B8 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080AB1B8: .4byte gUnknown_0203869A + thumb_func_end sub_80AB1B0 + + thumb_func_start sub_80AB1BC +sub_80AB1BC: @ 80AB1BC + push {r4-r6,lr} + movs r6, 0x80 + lsls r6, 19 + movs r0, 0x40 + strh r0, [r6] + ldr r4, _080AB260 + ldrh r3, [r4] + movs r2, 0 + strh r2, [r4] + ldr r5, _080AB264 + ldrh r0, [r5] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r5] + strh r3, [r4] + ldr r1, _080AB268 + movs r0, 0x8 + strh r0, [r1] + adds r1, 0x4 + movs r3, 0x98 + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080AB26C + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x9C + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080AB270 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080AB274 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + subs r0, 0xC + ldr r3, _080AB278 + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldrh r0, [r6] + movs r3, 0xFE + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r6] + ldr r0, _080AB27C + strh r2, [r0] + ldr r0, _080AB280 + strh r2, [r0] + ldr r0, _080AB284 + strh r2, [r0] + ldr r0, _080AB288 + strh r2, [r0] + ldr r0, _080AB28C + strh r2, [r0] + ldr r0, _080AB290 + strh r2, [r0] + ldr r0, _080AB294 + strh r2, [r0] + ldr r0, _080AB298 + strh r2, [r0] + ldr r0, _080AB29C + strh r2, [r0] + ldr r0, _080AB2A0 + strh r2, [r0] + ldr r0, _080AB2A4 + strh r2, [r0] + ldr r0, _080AB2A8 + strh r2, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AB260: .4byte 0x04000208 +_080AB264: .4byte 0x04000200 +_080AB268: .4byte REG_DISPSTAT +_080AB26C: .4byte 0x00009e09 +_080AB270: .4byte 0x00003a03 +_080AB274: .4byte REG_BLDCNT +_080AB278: .4byte 0x00003f3f +_080AB27C: .4byte gUnknown_030042A4 +_080AB280: .4byte gUnknown_030042A0 +_080AB284: .4byte gUnknown_030042C0 +_080AB288: .4byte gUnknown_030041B4 +_080AB28C: .4byte gUnknown_03004288 +_080AB290: .4byte gUnknown_03004280 +_080AB294: .4byte gUnknown_030041B0 +_080AB298: .4byte gUnknown_030041B8 +_080AB29C: .4byte gUnknown_030042C4 +_080AB2A0: .4byte gUnknown_03004240 +_080AB2A4: .4byte gUnknown_03004200 +_080AB2A8: .4byte gUnknown_03004244 + thumb_func_end sub_80AB1BC + + thumb_func_start sub_80AB2AC +sub_80AB2AC: @ 80AB2AC + push {r4,r5,lr} + ldr r0, _080AB300 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _080AB304 + ldr r1, _080AB308 + bl LZDecompressVram + ldr r0, _080AB30C + ldr r1, _080AB310 + bl LZDecompressVram + ldr r0, _080AB314 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + bl sub_80AB350 + movs r4, 0 + movs r5, 0xA0 +_080AB2DC: + ldr r0, _080AB318 + adds r0, r5, r0 + ldr r1, _080AB31C + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, 0x5 + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + adds r5, 0x20 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AB2DC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB300: .4byte gContestMiscGfx +_080AB304: .4byte gContestAudienceGfx +_080AB308: .4byte 0x06002000 +_080AB30C: .4byte gUnknown_08D1725C +_080AB310: .4byte 0x0600d000 +_080AB314: .4byte gUnknown_08D17144 +_080AB318: .4byte 0x02018004 +_080AB31C: .4byte gUnknown_02038696 + thumb_func_end sub_80AB2AC + + thumb_func_start sub_80AB320 +sub_80AB320: @ 80AB320 + push {r4,lr} + ldr r4, _080AB340 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080AB344 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r0, _080AB348 + ldr r1, _080AB34C + bl InitWindowFromConfig + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB340: .4byte gWindowConfig_81E6FD8 +_080AB344: .4byte gUnknown_03004210 +_080AB348: .4byte gMenuWindow +_080AB34C: .4byte gWindowConfig_81E6FF4 + thumb_func_end sub_80AB320 + + thumb_func_start sub_80AB350 +sub_80AB350: @ 80AB350 + push {r4,lr} + ldr r0, _080AB38C + bl LoadFontDefaultPalette + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + bl FillPalette + movs r4, 0xA +_080AB364: + adds r1, r4, 0 + adds r1, 0xF0 + ldr r0, _080AB390 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xD + bls _080AB364 + ldr r0, _080AB394 + movs r1, 0xF3 + movs r2, 0x2 + bl FillPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB38C: .4byte gWindowConfig_81E6FD8 +_080AB390: .4byte gPlttBufferUnfaded + 0x1E2 +_080AB394: .4byte 0x00007e3f + thumb_func_end sub_80AB350 + + thumb_func_start sub_80AB398 +sub_80AB398: @ 80AB398 + push {r4-r6,lr} + ldr r4, _080AB468 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x5C + bl memset + movs r5, 0 + adds r4, 0x2 + movs r2, 0xFF +_080AB3AC: + adds r1, r5, r4 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + adds r5, 0x1 + cmp r5, 0x3 + ble _080AB3AC + ldr r4, _080AB46C + movs r5, 0x3 +_080AB3BE: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1C + bl memset + adds r4, 0x1C + subs r5, 0x1 + cmp r5, 0 + bge _080AB3BE + ldr r4, _080AB470 + movs r6, 0x4 + negs r6, r6 + movs r3, 0xFF + adds r2, r4, 0 + subs r2, 0x65 + movs r5, 0x3 +_080AB3DE: + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2, 0x8] + orrs r0, r3 + strb r0, [r2, 0x8] + ldrb r0, [r2, 0x9] + orrs r0, r3 + strb r0, [r2, 0x9] + adds r2, 0x1C + subs r5, 0x1 + cmp r5, 0 + bge _080AB3DE + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + adds r0, r4, 0 + adds r0, 0x14 + movs r1, 0 + movs r2, 0x44 + bl memset + adds r0, r4, 0 + adds r0, 0x58 + movs r1, 0 + movs r2, 0x4 + bl memset + adds r0, r4, 0 + adds r0, 0x68 + movs r1, 0 + movs r2, 0x10 + bl memset + ldr r0, _080AB474 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AB43A + movs r0, 0 + bl sub_80B0F28 +_080AB43A: + movs r5, 0 + movs r6, 0xFF + adds r3, r4, 0 + subs r3, 0xB8 + adds r2, r4, 0 + subs r2, 0x57 + ldr r4, _080AB478 +_080AB448: + ldrb r0, [r2] + orrs r0, r6 + strb r0, [r2] + adds r1, r3, r5 + adds r0, r5, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080AB448 + bl sub_80B159C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AB468: .4byte 0x02019204 +_080AB46C: .4byte 0x02019260 +_080AB470: .4byte 0x020192d0 +_080AB474: .4byte gUnknown_0203869A +_080AB478: .4byte gUnknown_02038696 + thumb_func_end sub_80AB398 + + thumb_func_start sub_80AB47C +sub_80AB47C: @ 80AB47C + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _080AB498 + ldr r1, _080AB49C + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0x1 + beq _080AB554 + cmp r0, 0x1 + bgt _080AB4A0 + cmp r0, 0 + beq _080AB4AA + b _080AB5AE + .align 2, 0 +_080AB498: .4byte gMain +_080AB49C: .4byte 0x0000043c +_080AB4A0: + cmp r0, 0x2 + beq _080AB55A + cmp r0, 0x3 + beq _080AB578 + b _080AB5AE +_080AB4AA: + movs r0, 0 + bl SetVBlankCallback + bl sub_80AB320 + bl sub_80AB1BC + bl dp12_8087EA4 + bl ResetPaletteFade + ldr r0, _080AB538 + ldrb r1, [r0, 0x8] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x8] + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + movs r5, 0 + ldr r1, _080AB53C + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080AB540 + movs r7, 0x85 + lsls r7, 24 +_080AB4E0: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080AB4E0 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + ldr r1, _080AB544 + movs r0, 0x4 + strb r0, [r1] + ldr r0, _080AB548 + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bl sub_8040710 + bl sub_80AB398 + ldr r1, _080AB54C + ldr r0, _080AB550 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080AB5AE + .align 2, 0 +_080AB538: .4byte gPaletteFade +_080AB53C: .4byte 0x040000d4 +_080AB540: .4byte 0x85000400 +_080AB544: .4byte gReservedSpritePaletteCount +_080AB548: .4byte 0x02000000 +_080AB54C: .4byte gMain +_080AB550: .4byte 0x0000043c +_080AB554: + bl sub_80AB350 + b _080AB56C +_080AB55A: + ldr r5, _080AB574 + adds r0, r5, 0 + bl sub_80AB70C + lsls r0, 24 + cmp r0, 0 + beq _080AB5AE + movs r0, 0 + strb r0, [r5] +_080AB56C: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080AB5AE + .align 2, 0 +_080AB574: .4byte 0x0201925d +_080AB578: + bl sub_80B2184 + ldr r0, _080AB5B8 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AB5BC + strh r1, [r0] + movs r0, 0x2 + bl BeginFastPaletteFade + ldr r2, _080AB5C0 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080AB5C4 + bl SetVBlankCallback + ldr r0, _080AB5C8 + movs r1, 0xA + bl CreateTask + ldr r1, _080AB5CC + strb r0, [r1, 0x8] + ldr r0, _080AB5D0 + bl SetMainCallback2 +_080AB5AE: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB5B8: .4byte gUnknown_030042C0 +_080AB5BC: .4byte gUnknown_030041B4 +_080AB5C0: .4byte gPaletteFade +_080AB5C4: .4byte sub_80ABAC4 +_080AB5C8: .4byte sub_80AB5D4 +_080AB5CC: .4byte 0x02019204 +_080AB5D0: .4byte sub_80ABAAC + thumb_func_end sub_80AB47C + + thumb_func_start sub_80AB5D4 +sub_80AB5D4: @ 80AB5D4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080AB5F8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AB5F4 + ldr r0, _080AB5FC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AB600 + str r0, [r1] +_080AB5F4: + pop {r0} + bx r0 + .align 2, 0 +_080AB5F8: .4byte gPaletteFade +_080AB5FC: .4byte gTasks +_080AB600: .4byte sub_80AB604 + thumb_func_end sub_80AB5D4 + + thumb_func_start sub_80AB604 +sub_80AB604: @ 80AB604 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080AB648 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AB65C + ldr r2, _080AB64C + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AB66A + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + bl sub_80AF860 + ldr r0, _080AB650 + movs r1, 0 + bl CreateTask + ldr r1, _080AB654 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AB658 + str r1, [r0] + b _080AB66A + .align 2, 0 +_080AB648: .4byte gUnknown_0203869A +_080AB64C: .4byte gPaletteFade +_080AB650: .4byte sub_80AB678 +_080AB654: .4byte gTasks +_080AB658: .4byte nullsub_89 +_080AB65C: + ldr r0, _080AB670 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AB674 + str r0, [r1] +_080AB66A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB670: .4byte gTasks +_080AB674: .4byte sub_80AB960 + thumb_func_end sub_80AB604 + + thumb_func_start sub_80AB678 +sub_80AB678: @ 80AB678 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AB68C + ldr r2, _080AB690 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080AB68C: .4byte sub_80C89DC +_080AB690: .4byte sub_80AB694 + thumb_func_end sub_80AB678 + + thumb_func_start sub_80AB694 +sub_80AB694: @ 80AB694 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1 + ldr r2, _080AB6AC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r3, [r1, 0x8] + ldr r0, _080AB6B0 + str r0, [r1] + bx lr + .align 2, 0 +_080AB6AC: .4byte gTasks +_080AB6B0: .4byte sub_80AB6B4 + thumb_func_end sub_80AB694 + + thumb_func_start sub_80AB6B4 +sub_80AB6B4: @ 80AB6B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _080AB6F8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r5 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bgt _080AB6F2 + bl GetMultiplayerId + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080AB6FC + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + ldr r1, _080AB700 + str r1, [r0] + ldr r1, _080AB704 + ldr r0, _080AB708 + ldr r0, [r0] + str r0, [r1] +_080AB6F2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB6F8: .4byte gTasks +_080AB6FC: .4byte 0x02019204 +_080AB700: .4byte sub_80AB960 +_080AB704: .4byte gRngValue +_080AB708: .4byte gUnknown_03005D28 + thumb_func_end sub_80AB6B4 + + thumb_func_start sub_80AB70C +sub_80AB70C: @ 80AB70C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + mov r10, r0 + ldrb r0, [r0] + cmp r0, 0x6 + bls _080AB722 + b _080AB93C +_080AB722: + lsls r0, 2 + ldr r1, _080AB72C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AB72C: .4byte _080AB730 + .align 2, 0 +_080AB730: + .4byte _080AB74C + .4byte _080AB7A0 + .4byte _080AB7B0 + .4byte _080AB800 + .4byte _080AB814 + .4byte _080AB844 + .4byte _080AB8CC +_080AB74C: + ldr r0, _080AB794 + ldrb r1, [r0, 0x8] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x8] + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + add r5, sp, 0x40 + movs r6, 0 + ldr r1, _080AB798 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r7, _080AB79C + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080AB772: + str r6, [sp, 0x40] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080AB772 + str r6, [sp, 0x40] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + b _080AB7E6 + .align 2, 0 +_080AB794: .4byte gPaletteFade +_080AB798: .4byte 0x040000d4 +_080AB79C: .4byte 0x85000400 +_080AB7A0: + ldr r0, _080AB7AC + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _080AB946 + .align 2, 0 +_080AB7AC: .4byte gContestMiscGfx +_080AB7B0: + ldr r0, _080AB7EC + ldr r4, _080AB7F0 + adds r1, r4, 0 + bl LZDecompressVram + ldr r3, _080AB7F4 + movs r5, 0x80 + lsls r5, 6 + ldr r1, _080AB7F8 + ldr r6, _080AB7FC + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x84 + lsls r7, 24 +_080AB7CC: + str r4, [r1] + str r3, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r4, r2 + adds r3, r2 + subs r5, r2 + cmp r5, r2 + bhi _080AB7CC + str r4, [r1] + str r3, [r1, 0x4] + lsrs r0, r5, 2 + orrs r0, r7 +_080AB7E6: + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _080AB946 + .align 2, 0 +_080AB7EC: .4byte gContestAudienceGfx +_080AB7F0: .4byte 0x06002000 +_080AB7F4: .4byte 0x02015800 +_080AB7F8: .4byte 0x040000d4 +_080AB7FC: .4byte 0x84000400 +_080AB800: + ldr r0, _080AB80C + ldr r1, _080AB810 + bl LZDecompressVram + b _080AB946 + .align 2, 0 +_080AB80C: .4byte gUnknown_08D1725C +_080AB810: .4byte 0x0600d000 +_080AB814: + ldr r0, _080AB830 + ldr r4, _080AB834 + adds r1, r4, 0 + bl LZDecompressVram + ldr r1, _080AB838 + ldr r0, _080AB83C + str r4, [r0] + str r1, [r0, 0x4] + ldr r1, _080AB840 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080AB946 + .align 2, 0 +_080AB830: .4byte gUnknown_08D17424 +_080AB834: .4byte 0x0600e000 +_080AB838: .4byte 0x02018a04 +_080AB83C: .4byte 0x040000d4 +_080AB840: .4byte 0x84000200 +_080AB844: + ldr r0, _080AB8AC + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + ldr r5, _080AB8B0 + ldr r6, _080AB8B4 + adds r0, r5, 0 + mov r1, sp + adds r2, r6, 0 + bl CpuSet + ldr r0, _080AB8B8 + mov r9, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 5 + ldr r1, _080AB8BC + adds r1, r5 + mov r8, r1 + add r0, r8 + add r4, sp, 0x20 + adds r1, r4, 0 + adds r2, r6, 0 + bl CpuSet + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl CpuSet + mov r2, r9 + ldrb r1, [r2] + adds r1, 0x5 + lsls r1, 5 + add r1, r8 + mov r0, sp + adds r2, r6, 0 + bl CpuSet + ldr r1, _080AB8C0 + ldr r0, _080AB8C4 + mov r2, r8 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080AB8C8 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_80AB350 + b _080AB946 + .align 2, 0 +_080AB8AC: .4byte gUnknown_08D17144 +_080AB8B0: .4byte gPlttBufferUnfaded + 0x100 +_080AB8B4: .4byte REG_BG0CNT +_080AB8B8: .4byte gUnknown_02038695 +_080AB8BC: .4byte 0xffffff00 +_080AB8C0: .4byte 0x02018004 +_080AB8C4: .4byte 0x040000d4 +_080AB8C8: .4byte 0x84000080 +_080AB8CC: + bl sub_80B1118 + bl sub_80AFA5C + bl sub_80AEB30 + bl sub_80AE8B4 + ldr r1, _080AB924 + movs r4, 0 + strb r0, [r1, 0x12] + bl sub_80AFE30 + bl sub_80B0034 + bl sub_80B00C8 + bl sub_80B0324 + bl sub_80B0518 + ldr r1, _080AB928 + strb r4, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r3, 0x3 + strb r3, [r1, 0x2] + movs r2, 0x2 + strb r2, [r1, 0x3] + ldr r0, _080AB92C + strh r4, [r0] + ldr r4, _080AB930 + strb r2, [r4] + ldr r0, _080AB934 + strb r3, [r0] + bl sub_80AE858 + ldr r2, _080AB938 + ldrb r1, [r4] + adds r1, r2 + strb r0, [r1] + bl sub_80B292C + b _080AB946 + .align 2, 0 +_080AB924: .4byte 0x02019204 +_080AB928: .4byte gUnknown_02024A72 +_080AB92C: .4byte gUnknown_020239F8 +_080AB930: .4byte gUnknown_02024C07 +_080AB934: .4byte gUnknown_02024C08 +_080AB938: .4byte gUnknown_02024BE0 +_080AB93C: + movs r0, 0 + mov r1, r10 + strb r0, [r1] + movs r0, 0x1 + b _080AB950 +_080AB946: + mov r2, r10 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r0, 0 +_080AB950: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80AB70C + + thumb_func_start sub_80AB960 +sub_80AB960: @ 80AB960 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080AB994 + ldrb r2, [r1, 0x8] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x8] + ldrb r1, [r1, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080AB990 + ldr r0, _080AB998 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + ldr r0, _080AB99C + str r0, [r1] +_080AB990: + pop {r0} + bx r0 + .align 2, 0 +_080AB994: .4byte gPaletteFade +_080AB998: .4byte gTasks +_080AB99C: .4byte sub_80AB9A0 + thumb_func_end sub_80AB960 + + thumb_func_start sub_80AB9A0 +sub_80AB9A0: @ 80AB9A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AB9C4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080ABA7C + lsls r0, 2 + ldr r1, _080AB9C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AB9C4: .4byte gTasks +_080AB9C8: .4byte _080AB9CC + .align 2, 0 +_080AB9CC: + .4byte _080AB9E0 + .4byte _080ABA0A + .4byte _080ABA28 + .4byte _080ABA44 + .4byte _080ABA7C +_080AB9E0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0xA] + adds r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080ABA9C + movs r0, 0 + strh r0, [r4, 0xA] + movs r0, 0x61 + movs r1, 0 + bl PlaySE12WithPanning + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ABA9C +_080ABA0A: + ldr r1, _080ABA24 + ldrh r0, [r1] + adds r0, 0x7 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _080ABA9C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + b _080ABA68 + .align 2, 0 +_080ABA24: .4byte gUnknown_030041B4 +_080ABA28: + bl sub_80B2280 + ldr r0, _080ABA40 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080ABA9C + .align 2, 0 +_080ABA40: .4byte gTasks +_080ABA44: + ldr r3, _080ABA70 + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080ABA74 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + bl sub_80B1B14 + ldr r1, _080ABA78 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 +_080ABA68: + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080ABA9C + .align 2, 0 +_080ABA70: .4byte REG_BG0CNT +_080ABA74: .4byte REG_BG2CNT +_080ABA78: .4byte gTasks +_080ABA7C: + ldr r0, _080ABAA4 + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ABA9C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + ldr r1, _080ABAA8 + str r1, [r0] +_080ABA9C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABAA4: .4byte 0x02019204 +_080ABAA8: .4byte sub_80ABB70 + thumb_func_end sub_80AB9A0 + + thumb_func_start sub_80ABAAC +sub_80ABAAC: @ 80ABAAC + push {lr} + bl AnimateSprites + bl RunTasks + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80ABAAC + + thumb_func_start sub_80ABAC4 +sub_80ABAC4: @ 80ABAC4 + push {lr} + ldr r1, _080ABB3C + ldr r0, _080ABB40 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB44 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB48 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB4C + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB50 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB54 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB58 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB5C + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _080ABB60 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080ABB64 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _080ABB68 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080ABB6C + ldrh r0, [r0] + strh r0, [r1] + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080ABB3C: .4byte REG_BG0HOFS +_080ABB40: .4byte gUnknown_030042A4 +_080ABB44: .4byte gUnknown_030042A0 +_080ABB48: .4byte gUnknown_030042C0 +_080ABB4C: .4byte gUnknown_030041B4 +_080ABB50: .4byte gUnknown_03004288 +_080ABB54: .4byte gUnknown_03004280 +_080ABB58: .4byte gUnknown_030041B0 +_080ABB5C: .4byte gUnknown_030041B8 +_080ABB60: .4byte gUnknown_030042C4 +_080ABB64: .4byte gUnknown_03004240 +_080ABB68: .4byte gUnknown_03004200 +_080ABB6C: .4byte gUnknown_03004244 + thumb_func_end sub_80ABAC4 + + thumb_func_start sub_80ABB70 +sub_80ABB70: @ 80ABB70 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080ABBB0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ABBB4 + strh r1, [r0] + bl sub_80B0D7C + ldr r1, _080ABBB8 + ldr r2, _080ABBBC + ldr r0, _080ABBC0 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080ABBC4 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080ABBC8 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABBD4 + ldr r0, _080ABBCC + ldr r1, _080ABBD0 + bl StringCopy + b _080ABBDC + .align 2, 0 +_080ABBB0: .4byte gUnknown_030042A0 +_080ABBB4: .4byte gUnknown_03004280 +_080ABBB8: .4byte gPlttBufferUnfaded +_080ABBBC: .4byte 0x02018204 +_080ABBC0: .4byte 0x040000d4 +_080ABBC4: .4byte 0x84000100 +_080ABBC8: .4byte gUnknown_02038695 +_080ABBCC: .4byte gUnknown_020238CC +_080ABBD0: .4byte gUnknown_083CAF84 +_080ABBD4: + ldr r0, _080ABC20 + ldr r1, _080ABC24 + bl StringCopy +_080ABBDC: + ldr r5, _080ABC20 + ldr r0, _080ABC28 + ldrb r1, [r0, 0x1] + adds r1, 0x1 + adds r0, r5, 0 + bl sub_80AE020 + bl sub_80AF138 + ldr r4, _080ABC2C + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + ldr r0, _080ABC30 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080ABC34 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABC38 + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ABC20: .4byte gUnknown_020238CC +_080ABC24: .4byte gUnknown_083CAFAE +_080ABC28: .4byte 0x02019204 +_080ABC2C: .4byte gStringVar4 +_080ABC30: .4byte gMenuWindow +_080ABC34: .4byte gTasks +_080ABC38: .4byte sub_80ABC3C + thumb_func_end sub_80ABB70 + + thumb_func_start sub_80ABC3C +sub_80ABC3C: @ 80ABC3C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080ABC64 + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ABC5E + ldr r0, _080ABC68 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABC6C + str r0, [r1] +_080ABC5E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABC64: .4byte gMenuWindow +_080ABC68: .4byte gTasks +_080ABC6C: .4byte sub_80ABC70 + thumb_func_end sub_80ABC3C + + thumb_func_start sub_80ABC70 +sub_80ABC70: @ 80ABC70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _080ABCB0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080ABC88 + cmp r1, 0x2 + bne _080ABCCE +_080ABC88: + movs r0, 0x5 + bl PlaySE + ldr r0, _080ABCB4 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABCC0 + movs r0, 0x1 + bl sub_80AFFE0 + ldr r0, _080ABCB8 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABCBC + b _080ABCCC + .align 2, 0 +_080ABCB0: .4byte gMain +_080ABCB4: .4byte gUnknown_02038695 +_080ABCB8: .4byte gTasks +_080ABCBC: .4byte sub_80ABCDC +_080ABCC0: + ldr r0, _080ABCD4 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABCD8 +_080ABCCC: + str r0, [r1] +_080ABCCE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABCD4: .4byte gTasks +_080ABCD8: .4byte sub_80AC0C8 + thumb_func_end sub_80ABC70 + + thumb_func_start sub_80ABCDC +sub_80ABCDC: @ 80ABCDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + ldr r0, _080ABD80 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080ABD84 + strh r1, [r0] + ldr r5, _080ABD88 + ldr r4, _080ABD8C + ldrb r2, [r4] + ldrb r3, [r4, 0x1] + ldrb r0, [r4, 0x2] + str r0, [sp] + ldrb r0, [r4, 0x3] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + bl FillWindowRect_DefaultPalette + movs r6, 0 + ldr r0, _080ABD90 + mov r8, r0 + ldr r7, _080ABD94 + mov r9, r5 + mov r10, r4 +_080ABD1C: + lsls r1, r6, 1 + mov r3, r8 + ldrb r2, [r3] + lsls r0, r2, 6 + adds r1, r0 + ldr r0, _080ABD98 + adds r1, r0 + ldrh r4, [r1] + add r5, sp, 0x8 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r7 + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _080ABDA0 + adds r0, r2, 0 + bl sub_80B214C + lsls r0, 24 + cmp r0, 0 + beq _080ABDA0 + mov r2, r8 + ldrb r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r0, [r0, 0x8] + adds r1, r4, 0 + bl AreMovesContestCombo + lsls r0, 24 + cmp r0, 0 + beq _080ABDA0 + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ABDA0 + add r0, sp, 0x8 + ldr r1, _080ABD9C + b _080ABDC6 + .align 2, 0 +_080ABD80: .4byte gUnknown_030042A0 +_080ABD84: .4byte gUnknown_03004280 +_080ABD88: .4byte gUnknown_03004210 +_080ABD8C: .4byte gUnknown_083CA340 +_080ABD90: .4byte gUnknown_02038695 +_080ABD94: .4byte 0x02019260 +_080ABD98: .4byte gUnknown_0203858E +_080ABD9C: .4byte gUnknownText_UnknownFormatting2 +_080ABDA0: + cmp r4, 0 + beq _080ABDCC + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r7 + ldrh r0, [r1, 0x8] + cmp r0, r4 + bne _080ABDCC + ldr r0, _080ABE74 + lsls r1, r4, 3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x3 + beq _080ABDCC + add r0, sp, 0x8 + ldr r1, _080ABE78 +_080ABDC6: + bl StringCopy + adds r5, r0, 0 +_080ABDCC: + movs r0, 0xD + adds r1, r4, 0 + muls r1, r0 + ldr r0, _080ABE7C + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + lsls r1, r6, 2 + adds r2, r1, r6 + lsls r2, 18 + movs r3, 0xC2 + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + mov r3, r10 + adds r0, r1, r3 + ldrb r3, [r0] + lsls r3, 3 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _080ABE80 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 3 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + mov r0, r9 + add r1, sp, 0x8 + bl sub_8002E4C + mov r0, r9 + bl sub_8002F44 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _080ABE20 + b _080ABD1C +_080ABE20: + ldr r1, _080ABE84 + ldr r3, _080ABE88 + movs r0, 0x48 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + ldr r4, _080ABE8C + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + ldr r2, _080ABE90 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080ABE94 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + ldr r1, _080ABE98 + ldr r2, [sp, 0x28] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABE9C + str r1, [r0] + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABE74: .4byte gContestMoves +_080ABE78: .4byte gUnknownText_UnknownFormatting3 +_080ABE7C: .4byte gMoveNames +_080ABE80: .4byte gUnknown_083CA340 + 0x1 +_080ABE84: .4byte 0x0000ffff +_080ABE88: .4byte 0x00002d9f +_080ABE8C: .4byte 0x02019204 +_080ABE90: .4byte gUnknown_02038570 +_080ABE94: .4byte gUnknown_02038695 +_080ABE98: .4byte gTasks +_080ABE9C: .4byte sub_80ABEA0 + thumb_func_end sub_80ABCDC + + thumb_func_start sub_80ABEA0 +sub_80ABEA0: @ 80ABEA0 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r3, _080ABEF4 + ldr r1, _080ABEF8 + ldr r0, _080ABEFC + ldrb r0, [r0] + lsls r0, 6 + adds r1, 0x1E + adds r1, r0, r1 + movs r2, 0x3 +_080ABEBA: + ldrh r0, [r1] + cmp r0, 0 + beq _080ABEC6 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080ABEC6: + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080ABEBA + ldrh r0, [r3, 0x2E] + movs r5, 0x1 + ands r5, r0 + cmp r5, 0 + beq _080ABF08 + bl sub_814A7FC + movs r0, 0x5 + bl PlaySE + ldr r0, _080ABF00 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABF04 + str r0, [r1] + b _080AC098 + .align 2, 0 +_080ABEF4: .4byte gMain +_080ABEF8: .4byte gUnknown_02038570 +_080ABEFC: .4byte gUnknown_02038695 +_080ABF00: .4byte gTasks +_080ABF04: .4byte sub_80AC0C8 +_080ABF08: + ldrh r0, [r3, 0x30] + cmp r0, 0x20 + bne _080ABF10 + b _080AC098 +_080ABF10: + cmp r0, 0x20 + bgt _080ABF1A + cmp r0, 0x2 + beq _080ABF26 + b _080AC098 +_080ABF1A: + cmp r0, 0x40 + beq _080ABFEC + cmp r0, 0x80 + bne _080ABF24 + b _080AC048 +_080ABF24: + b _080AC098 +_080ABF26: + bl sub_814A904 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80AFFE0 + ldr r0, _080ABF64 + ldr r1, _080ABF68 + ldrb r2, [r1] + ldrb r3, [r1, 0x1] + ldrb r4, [r1, 0x2] + str r4, [sp] + ldrb r1, [r1, 0x3] + str r1, [sp, 0x4] + movs r1, 0 + bl FillWindowRect_DefaultPalette + ldr r0, _080ABF6C + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABF78 + ldr r0, _080ABF70 + ldr r1, _080ABF74 + bl StringCopy + b _080ABF80 + .align 2, 0 +_080ABF64: .4byte gUnknown_03004210 +_080ABF68: .4byte gUnknown_083CA340 +_080ABF6C: .4byte gUnknown_02038695 +_080ABF70: .4byte gUnknown_020238CC +_080ABF74: .4byte gUnknown_083CAF84 +_080ABF78: + ldr r0, _080ABFC8 + ldr r1, _080ABFCC + bl StringCopy +_080ABF80: + ldr r5, _080ABFC8 + ldr r0, _080ABFD0 + ldrb r1, [r0, 0x1] + adds r1, 0x1 + adds r0, r5, 0 + bl sub_80AE020 + bl sub_80AF138 + ldr r4, _080ABFD4 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + ldr r0, _080ABFD8 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8003460 + ldr r0, _080ABFDC + movs r1, 0 + strh r1, [r0] + ldr r0, _080ABFE0 + strh r1, [r0] + ldr r1, _080ABFE4 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABFE8 + str r1, [r0] + b _080AC098 + .align 2, 0 +_080ABFC8: .4byte gUnknown_020238CC +_080ABFCC: .4byte gUnknown_083CAFAE +_080ABFD0: .4byte 0x02019204 +_080ABFD4: .4byte gStringVar4 +_080ABFD8: .4byte gMenuWindow +_080ABFDC: .4byte gUnknown_030042A0 +_080ABFE0: .4byte gUnknown_03004280 +_080ABFE4: .4byte gTasks +_080ABFE8: .4byte sub_80ABC70 +_080ABFEC: + ldr r4, _080AC000 + movs r0, 0 + ldrsb r0, [r4, r0] + bl nullsub_17 + ldrb r0, [r4] + cmp r0, 0 + bne _080AC004 + subs r0, r6, 0x1 + b _080AC006 + .align 2, 0 +_080AC000: .4byte 0x02019204 +_080AC004: + subs r0, 0x1 +_080AC006: + strb r0, [r4] + ldr r4, _080AC03C + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + bl sub_80AED58 + ldr r2, _080AC040 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080AC044 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + cmp r6, 0x1 + bls _080AC098 + movs r0, 0x5 + bl PlaySE + b _080AC098 + .align 2, 0 +_080AC03C: .4byte 0x02019204 +_080AC040: .4byte gUnknown_02038570 +_080AC044: .4byte gUnknown_02038695 +_080AC048: + ldr r4, _080AC060 + movs r0, 0 + ldrsb r0, [r4, r0] + bl nullsub_17 + ldrb r1, [r4] + subs r0, r6, 0x1 + cmp r1, r0 + bne _080AC064 + strb r5, [r4] + b _080AC068 + .align 2, 0 +_080AC060: .4byte 0x02019204 +_080AC064: + adds r0, r1, 0x1 + strb r0, [r4] +_080AC068: + ldr r4, _080AC0A0 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + bl sub_80AED58 + ldr r2, _080AC0A4 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080AC0A8 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + cmp r6, 0x1 + bls _080AC098 + movs r0, 0x5 + bl PlaySE +_080AC098: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AC0A0: .4byte 0x02019204 +_080AC0A4: .4byte gUnknown_02038570 +_080AC0A8: .4byte gUnknown_02038695 + thumb_func_end sub_80ABEA0 + + thumb_func_start sub_80AC0AC +sub_80AC0AC: @ 80AC0AC + push {lr} + adds r1, r0, 0 + lsls r1, 28 + movs r0, 0xB0 + lsls r0, 23 + adds r1, r0 + lsrs r1, 24 + movs r0, 0x4 + bl sub_814A880 + pop {r0} + bx r0 + thumb_func_end sub_80AC0AC + + thumb_func_start nullsub_17 +nullsub_17: @ 80AC0C4 + bx lr + thumb_func_end nullsub_17 + + thumb_func_start sub_80AC0C8 +sub_80AC0C8: @ 80AC0C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080AC120 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC13C + ldr r4, _080AC124 + ldrb r0, [r4] + bl sub_80AF15C + ldrb r2, [r4] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r2, _080AC128 + adds r1, r2 + strh r0, [r1, 0x6] + ldr r4, _080AC12C + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC130 + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080AC134 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AC138 + str r1, [r0] + bl sub_80AF860 + movs r0, 0 + bl sub_80AFFE0 + b _080AC14E + .align 2, 0 +_080AC120: .4byte gUnknown_0203869A +_080AC124: .4byte gUnknown_02038695 +_080AC128: .4byte 0x02019260 +_080AC12C: .4byte sub_80C8A38 +_080AC130: .4byte sub_80AC15C +_080AC134: .4byte gTasks +_080AC138: .4byte nullsub_89 +_080AC13C: + bl sub_80AF1B8 + ldr r0, _080AC154 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AC158 + str r0, [r1] +_080AC14E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC154: .4byte gTasks +_080AC158: .4byte sub_80AC188 + thumb_func_end sub_80AC0C8 + + thumb_func_start sub_80AC15C +sub_80AC15C: @ 80AC15C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r2, _080AC17C + ldr r0, _080AC180 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080AC184 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080AC17C: .4byte gTasks +_080AC180: .4byte 0x02019204 +_080AC184: .4byte sub_80AC188 + thumb_func_end sub_80AC15C + + thumb_func_start sub_80AC188 +sub_80AC188: @ 80AC188 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_80AF138 + ldr r0, _080AC1E4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AC1E8 + strh r1, [r0] + movs r0, 0 + bl sub_80AFFE0 + ldr r1, _080AC1EC + ldr r0, _080AC1F0 + movs r2, 0x80 + lsls r2, 3 + ldr r4, _080AC1F4 + str r1, [r4] + str r0, [r4, 0x4] + lsrs r1, r2, 2 + movs r3, 0x84 + lsls r3, 24 + orrs r1, r3 + str r1, [r4, 0x8] + ldr r1, [r4, 0x8] + ldr r1, _080AC1F8 + adds r0, r1 + movs r1, 0 + bl LoadPalette + ldr r1, _080AC1FC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + ldr r1, _080AC200 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC1E4: .4byte gUnknown_030042A0 +_080AC1E8: .4byte gUnknown_03004280 +_080AC1EC: .4byte gPlttBufferFaded +_080AC1F0: .4byte 0x02018604 +_080AC1F4: .4byte 0x040000d4 +_080AC1F8: .4byte 0xfffffc00 +_080AC1FC: .4byte gTasks +_080AC200: .4byte sub_80AC204 + thumb_func_end sub_80AC188 + + thumb_func_start sub_80AC204 +sub_80AC204: @ 80AC204 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC248 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AC242 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AC242 + bl sub_80B1BDC + movs r0, 0x1 + bl sub_80B25E4 + ldr r0, _080AC24C + str r0, [r4] +_080AC242: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC248: .4byte gTasks +_080AC24C: .4byte sub_80AC250 + thumb_func_end sub_80AC204 + + thumb_func_start sub_80AC250 +sub_80AC250: @ 80AC250 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080AC278 + ldrh r1, [r0, 0x6] + movs r0, 0x90 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _080AC272 + ldr r0, _080AC27C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AC280 + str r0, [r1] +_080AC272: + pop {r0} + bx r0 + .align 2, 0 +_080AC278: .4byte 0x02019204 +_080AC27C: .4byte gTasks +_080AC280: .4byte sub_80AC284 + thumb_func_end sub_80AC250 + + thumb_func_start sub_80AC284 +sub_80AC284: @ 80AC284 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC2BC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080AC2B6 + ldr r1, _080AC2C0 + movs r0, 0 + strb r0, [r1, 0x10] + ldr r0, _080AC2C4 + ldr r0, [r0] + str r0, [r1, 0x18] + movs r0, 0 + strh r0, [r2, 0x8] + ldr r0, _080AC2C8 + str r0, [r2] +_080AC2B6: + pop {r0} + bx r0 + .align 2, 0 +_080AC2BC: .4byte gTasks +_080AC2C0: .4byte 0x02019204 +_080AC2C4: .4byte gRngValue +_080AC2C8: .4byte sub_80AC2CC + thumb_func_end sub_80AC284 + + thumb_func_start sub_80AC2CC +sub_80AC2CC: @ 80AC2CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _080AC308 + ldrb r7, [r2, 0x11] + ldr r1, _080AC30C + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r3, 0x8 + ldrsh r0, [r0, r3] + adds r6, r2, 0 + mov r12, r1 + cmp r0, 0x3B + bls _080AC2FC + bl _080AD8CA +_080AC2FC: + lsls r0, 2 + ldr r1, _080AC310 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AC308: .4byte 0x02019204 +_080AC30C: .4byte gTasks +_080AC310: .4byte _080AC314 + .align 2, 0 +_080AC314: + .4byte _080AC404 + .4byte _080AC4B4 + .4byte _080AC4D4 + .4byte _080AC534 + .4byte _080AC5E8 + .4byte _080AC638 + .4byte _080AC6F8 + .4byte _080AC730 + .4byte _080AC77C + .4byte _080AC7F4 + .4byte _080AD750 + .4byte _080AD77C + .4byte _080AC98C + .4byte _080AC9C0 + .4byte _080ACEC0 + .4byte _080ACFD4 + .4byte _080AD040 + .4byte _080AD070 + .4byte _080AD168 + .4byte _080AD11A + .4byte _080AD7B8 + .4byte _080AD868 + .4byte _080AD88C + .4byte _080AC81E + .4byte _080AC8CC + .4byte _080ACAD8 + .4byte _080ACAEE + .4byte _080ACBB0 + .4byte _080ACBDC + .4byte _080ACC44 + .4byte _080ACD2A + .4byte _080AD7E8 + .4byte _080AD840 + .4byte _080AD648 + .4byte _080AD6D8 + .4byte _080AC9EC + .4byte _080ACA24 + .4byte _080ACA44 + .4byte _080ACA84 + .4byte _080ACC98 + .4byte _080ACD00 + .4byte _080AD1A4 + .4byte _080AD8CA + .4byte _080AD514 + .4byte _080AD8CA + .4byte _080ACFA8 + .4byte _080AD0FA + .4byte _080AC96C + .4byte _080AC8F8 + .4byte _080AC94C + .4byte _080ACAAE + .4byte _080ACDC8 + .4byte _080ACE64 + .4byte _080AD316 + .4byte _080AD3D0 + .4byte _080AD700 + .4byte _080AD71C + .4byte _080AD53C + .4byte _080AD5D0 + .4byte _080AD624 +_080AC404: + bl sub_80B0D7C + movs r6, 0 + ldr r0, _080AC484 + adds r1, r0, 0 + adds r1, 0xCC + ldrb r0, [r0, 0x10] + mov r4, r8 + lsls r4, 2 + mov r9, r4 + ldrb r5, [r1] + cmp r0, r5 + beq _080AC42C + adds r2, r1, 0 + adds r1, r0, 0 +_080AC422: + adds r6, 0x1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080AC422 +_080AC42C: + ldr r4, _080AC484 + strb r6, [r4, 0x11] + ldrb r7, [r4, 0x11] + ldr r0, _080AC488 + ldrb r1, [r0] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080AC498 + ldrb r0, [r4, 0x7] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x7] + bl sub_80AE074 + lsls r0, 24 + cmp r0, 0 + beq _080AC458 + ldrb r0, [r4, 0x11] + bl sub_80B114C +_080AC458: + ldr r4, _080AC48C + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC490 + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + ldr r1, _080AC494 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC484: .4byte 0x02019204 +_080AC488: .4byte gUnknown_0203869A +_080AC48C: .4byte sub_80C8C80 +_080AC490: .4byte sub_80AD8DC +_080AC494: .4byte gTasks +_080AC498: + adds r0, r7, 0 + bl sub_80B114C + ldr r0, _080AC4B0 + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x2 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC4B0: .4byte gTasks +_080AC4B4: + ldrb r1, [r6, 0x7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AC4C2 + bl _080AD8CA +_080AC4C2: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x2 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC4D4: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC508 + adds r2, r0, r1 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AC4F6 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080AC50C +_080AC4F6: + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x1F + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC508: .4byte 0x02019260 +_080AC50C: + bl sub_80AF138 + adds r0, r7, 0 + movs r1, 0 + bl sub_80B0CDC + ldr r0, _080AC530 + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + strh r6, [r1, 0x1C] + movs r0, 0x3 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC530: .4byte gTasks +_080AC534: + mov r4, r8 + lsls r4, 2 + mov r9, r4 + ldr r4, _080AC5C4 + ldr r1, _080AC5C8 + movs r2, 0 + adds r0, r1, 0x3 +_080AC542: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _080AC542 + movs r6, 0x4 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + ldr r5, _080AC5CC + adds r7, r4, r5 + ldrb r0, [r7, 0x11] + bl sub_80B28F0 + ldr r3, _080AC5D0 + ldrb r2, [r7, 0x11] + lsls r2, 6 + adds r0, r2, r3 + ldrh r0, [r0] + adds r1, r3, 0 + adds r1, 0x3C + adds r1, r2, r1 + ldr r1, [r1] + adds r3, 0x38 + adds r2, r3 + ldr r2, [r2] + bl sub_80AE9FC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080AC5D4 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r3, r0, r2 + movs r1, 0x78 + strh r1, [r3, 0x24] + adds r2, 0x1C + adds r0, r2 + ldr r1, _080AC5D8 + str r1, [r0] + ldr r0, _080AC5DC + mov r4, r9 + add r4, r8 + lsls r4, 3 + adds r4, r0 + strh r5, [r4, 0xC] + ldr r1, _080AC5E0 + ldr r0, _080AC5E4 + ldrb r0, [r0] + adds r0, r1 + strb r5, [r0] + ldrb r0, [r7, 0x11] + bl sub_80B09E4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80B0BC4 + strh r6, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC5C4: .4byte 0x02019348 +_080AC5C8: .4byte gUnknown_02024E84 +_080AC5CC: .4byte 0xfffffebc +_080AC5D0: .4byte gUnknown_02038570 +_080AC5D4: .4byte gSprites +_080AC5D8: .4byte sub_80AD8FC +_080AC5DC: .4byte gTasks +_080AC5E0: .4byte gUnknown_02024BE0 +_080AC5E4: .4byte gUnknown_02024C07 +_080AC5E8: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + mov r3, r12 + adds r2, r0, r3 + ldrb r5, [r2, 0xC] + ldr r1, _080AC62C + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _080AC630 + cmp r1, r0 + beq _080AC60E + bl _080AD8CA +_080AC60E: + lsls r0, r7, 2 + ldr r1, _080AC634 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080AC622 + bl _080AD8CA +_080AC622: + movs r0, 0x5 + strh r0, [r2, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC62C: .4byte gSprites +_080AC630: .4byte SpriteCallbackDummy +_080AC634: .4byte 0x02019338 +_080AC638: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC660 + adds r5, r0, r1 + ldrb r1, [r5, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC664 + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x21 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC660: .4byte 0x02019260 +_080AC664: + bl sub_80AF138 + ldr r0, _080AC690 + lsls r1, r7, 6 + ldr r2, _080AC694 + adds r1, r2 + bl StringCopy + ldrh r1, [r5, 0x6] + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bhi _080AC6A0 + ldr r0, _080AC698 + adds r2, r1, 0 + movs r1, 0xD + muls r1, r2 + ldr r2, _080AC69C + adds r1, r2 + bl StringCopy + b _080AC6B0 + .align 2, 0 +_080AC690: .4byte gStringVar1 +_080AC694: .4byte gUnknown_02038572 +_080AC698: .4byte gStringVar2 +_080AC69C: .4byte gMoveNames +_080AC6A0: + ldr r0, _080AC6E0 + ldr r2, _080AC6E4 + ldrb r1, [r5, 0xA] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy +_080AC6B0: + ldr r4, _080AC6E8 + ldr r1, _080AC6EC + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AC6F0 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AC6F4 + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x6 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC6E0: .4byte gStringVar2 +_080AC6E4: .4byte gUnknown_083CC330 +_080AC6E8: .4byte gStringVar4 +_080AC6EC: .4byte gUnknown_083CAFD7 +_080AC6F0: .4byte gMenuWindow +_080AC6F4: .4byte gTasks +_080AC6F8: + ldr r0, _080AC724 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AC708 + bl _080AD8CA +_080AC708: + ldr r0, _080AC728 + adds r0, 0x5A + movs r1, 0 + strb r1, [r0] + ldr r1, _080AC72C + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x7 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC724: .4byte gMenuWindow +_080AC728: .4byte 0x02019204 +_080AC72C: .4byte gTasks +_080AC730: + ldrb r1, [r6, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x5C + adds r0, r1 + ldrh r0, [r0, 0x6] + bl sub_80B2760 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6, 0x11] + bl sub_80B2790 + ldrb r0, [r6, 0x11] + bl sub_80B28F0 + adds r0, r4, 0 + bl sub_80B29B4 + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r1, _080AC778 + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC778: .4byte gTasks +_080AC77C: + ldr r0, _080AC7B8 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080AC7BC + ldrb r4, [r0] + cmp r4, 0 + beq _080AC790 + bl _080AD8CA +_080AC790: + adds r0, r7, 0 + bl unref_sub_80B28CC + ldr r1, _080AC7C0 + adds r0, r1, 0 + adds r0, 0x5A + ldrb r0, [r0] + cmp r0, 0 + beq _080AC7C8 + ldr r0, _080AC7C4 + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + strh r4, [r1, 0x1C] + movs r0, 0x9 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC7B8: .4byte gUnknown_0202F7AC +_080AC7BC: .4byte gUnknown_0202F7B1 +_080AC7C0: .4byte 0x02019204 +_080AC7C4: .4byte gTasks +_080AC7C8: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r1, 0x5C + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080AC7E2 + adds r0, r7, 0 + bl sub_80B03A8 +_080AC7E2: + bl unref_sub_80B20C4 + ldr r0, _080AC7F0 + mov r2, r8 + lsls r1, r2, 2 + b _080AC8E2 + .align 2, 0 +_080AC7F0: .4byte gTasks +_080AC7F4: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + mov r4, r12 + adds r2, r0, r4 + ldrh r0, [r2, 0x1C] + adds r1, r0, 0x1 + strh r1, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + bgt _080AC812 + bl _080AD8CA +_080AC812: + movs r0, 0 + strh r0, [r2, 0x1C] + movs r0, 0x7 + strh r0, [r2, 0x8] + bl _080AD8CA +_080AC81E: + mov r5, r8 + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + mov r1, r12 + adds r4, r0, r1 + movs r0, 0 + strh r0, [r4, 0xA] + lsls r2, r7, 3 + subs r0, r2, r7 + lsls r0, 2 + ldr r1, _080AC858 + adds r6, r0, r1 + ldrb r0, [r6, 0x13] + mov r9, r3 + mov r10, r2 + adds r3, r1, 0 + cmp r0, 0xFF + beq _080AC85C + adds r1, r0, 0 + adds r0, r7, 0 + bl sub_80B146C + movs r0, 0xFF + strb r0, [r6, 0x13] + movs r0, 0x18 + strh r0, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC858: .4byte 0x02019260 +_080AC85C: + ldrb r0, [r6, 0x14] + cmp r0, 0xFF + beq _080AC8C4 + movs r6, 0 + cmp r6, r7 + beq _080AC86E + ldrb r0, [r3, 0x13] + cmp r0, 0xFF + bne _080AC886 +_080AC86E: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080AC886 + cmp r6, r7 + beq _080AC86E + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x13] + cmp r0, 0xFF + beq _080AC86E +_080AC886: + cmp r6, 0x4 + bne _080AC8B4 + mov r2, r10 + subs r4, r2, r7 + lsls r4, 2 + adds r4, r3 + ldrb r1, [r4, 0x14] + adds r0, r7, 0 + bl sub_80B146C + movs r0, 0xFF + strb r0, [r4, 0x14] + ldr r1, _080AC8B0 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x18 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC8B0: .4byte gTasks +_080AC8B4: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x30 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC8C4: + movs r0, 0x30 + strh r0, [r4, 0x8] + bl _080AD8CA +_080AC8CC: + ldr r0, _080AC8F0 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AC8DC + bl _080AD8CA +_080AC8DC: + ldr r0, _080AC8F4 + mov r3, r8 + lsls r1, r3, 2 +_080AC8E2: + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x17 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC8F0: .4byte gMenuWindow +_080AC8F4: .4byte gTasks +_080AC8F8: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC914 + adds r0, r1 + ldrb r0, [r0, 0x11] + movs r3, 0x3 + ands r3, r0 + cmp r3, 0x1 + bne _080AC918 + movs r0, 0x5 + bl sub_80B1710 + b _080AC934 + .align 2, 0 +_080AC914: .4byte 0x02019260 +_080AC918: + cmp r3, 0x2 + bne _080AC924 + movs r0, 0x6 + bl sub_80B1710 + b _080AC934 +_080AC924: + cmp r3, 0x3 + beq _080AC92E + mov r4, r8 + lsls r0, r4, 2 + b _080AC95E +_080AC92E: + movs r0, 0x7 + bl sub_80B1710 +_080AC934: + ldr r0, _080AC948 + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x31 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC948: .4byte gTasks +_080AC94C: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AC95A + bl _080AD8CA +_080AC95A: + mov r1, r8 + lsls r0, r1, 2 +_080AC95E: + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x2F + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC96C: + movs r0, 0x1 + bl sub_80B1FD0 + ldr r0, _080AC988 + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0xC + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC988: .4byte gTasks +_080AC98C: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC9B8 + adds r0, r1 + movs r3, 0x2 + ldrsh r1, [r0, r3] + movs r0, 0 + adds r2, r7, 0 + bl sub_80AFBA0 + ldr r1, _080AC9BC + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0xD + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC9B8: .4byte 0x02019260 +_080AC9BC: .4byte gTasks +_080AC9C0: + ldrb r0, [r6, 0x11] + lsls r0, 2 + movs r5, 0x9A + lsls r5, 1 + adds r1, r6, r5 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AC9DA + bl _080AD8CA +_080AC9DA: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x23 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC9EC: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACA1C + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0x10 + bne _080ACA06 + movs r0, 0x8 + bl sub_80B1710 +_080ACA06: + ldr r0, _080ACA20 + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x24 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACA1C: .4byte 0x02019260 +_080ACA20: .4byte gTasks +_080ACA24: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ACA32 + bl _080AD8CA +_080ACA32: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x25 + strh r1, [r0, 0x8] + bl _080AD8CA +_080ACA44: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_80AEE54 + lsls r0, 24 + cmp r0, 0 + beq _080ACA70 + ldr r1, _080ACA6C + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r1, 0x26 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACA6C: .4byte gTasks +_080ACA70: + ldr r0, _080ACA80 + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + b _080ACAA6 + .align 2, 0 +_080ACA80: .4byte gTasks +_080ACA84: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080ACAA2 + bl _080AD8CA +_080ACAA2: + movs r0, 0 + strh r0, [r1, 0x1C] +_080ACAA6: + movs r0, 0x32 + strh r0, [r1, 0x8] + bl _080AD8CA +_080ACAAE: + adds r0, r7, 0 + bl sub_80AF038 + lsls r0, 24 + cmp r0, 0 + beq _080ACAC0 + movs r0, 0x63 + bl PlaySE +_080ACAC0: + ldr r0, _080ACAD4 + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x19 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACAD4: .4byte gTasks +_080ACAD8: + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0 + strh r1, [r0, 0xA] + movs r1, 0x1A + strh r1, [r0, 0x8] + bl _080AD8CA +_080ACAEE: + movs r2, 0 + movs r4, 0 + mov r5, r8 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + add r0, r12 + movs r3, 0xA + ldrsh r6, [r0, r3] + mov r9, r1 + cmp r6, 0x3 + bgt _080ACB58 + ldr r3, _080ACB24 + ldr r1, _080ACB28 +_080ACB0A: + movs r4, 0 + movs r2, 0 + cmp r4, r7 + beq _080ACB2C + ldrb r0, [r3] + cmp r0, r6 + bne _080ACB2C + ldrb r0, [r1, 0x13] + cmp r0, 0xFF + beq _080ACB2C + movs r4, 0x1 + b _080ACB60 + .align 2, 0 +_080ACB24: .4byte gUnknown_02038696 +_080ACB28: .4byte 0x02019260 +_080ACB2C: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080ACB4E + cmp r2, r7 + beq _080ACB2C + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r6 + bne _080ACB2C + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x13] + cmp r0, 0xFF + beq _080ACB2C + movs r4, 0x1 +_080ACB4E: + cmp r4, 0 + bne _080ACB60 + adds r6, 0x1 + cmp r6, 0x3 + ble _080ACB0A +_080ACB58: + lsls r0, r4, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080ACB98 +_080ACB60: + mov r5, r9 + add r5, r8 + lsls r5, 3 + add r5, r12 + ldr r0, _080ACB90 + adds r0, r2, r0 + ldrb r0, [r0] + strh r0, [r5, 0xA] + lsls r0, r2, 24 + lsrs r0, 24 + lsls r4, r2, 3 + subs r4, r2 + lsls r4, 2 + ldr r1, _080ACB94 + adds r4, r1 + ldrb r1, [r4, 0x13] + bl sub_80B146C + movs r0, 0xFF + strb r0, [r4, 0x13] + movs r0, 0x1B + strh r0, [r5, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACB90: .4byte gUnknown_02038696 +_080ACB94: .4byte 0x02019260 +_080ACB98: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0xA] + strh r1, [r0, 0x1C] + movs r1, 0x33 + strh r1, [r0, 0x8] + bl sub_80AF120 + bl _080AD8CA +_080ACBB0: + ldr r0, _080ACBD4 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACBC0 + bl _080AD8CA +_080ACBC0: + ldr r0, _080ACBD8 + mov r4, r8 + lsls r1, r4, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1C + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACBD4: .4byte gMenuWindow +_080ACBD8: .4byte gTasks +_080ACBDC: + movs r6, 0 + mov r5, r8 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + add r1, r12 + movs r3, 0xA + ldrsh r2, [r1, r3] + ldr r1, _080ACC38 + mov r9, r0 + ldr r3, _080ACC3C + adds r5, r1, 0 + ldrb r4, [r5] + cmp r2, r4 + beq _080ACC08 + adds r1, r2, 0 + adds r2, r5, 0 +_080ACBFE: + adds r6, 0x1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080ACBFE +_080ACC08: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0xE] + ldrh r0, [r0, 0x2] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + negs r1, r1 + lsls r2, r6, 24 + lsrs r2, 24 + bl sub_80AFBA0 + ldr r1, _080ACC40 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1D + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACC38: .4byte gUnknown_02038696 +_080ACC3C: .4byte 0x02019260 +_080ACC40: .4byte gTasks +_080ACC44: + movs r6, 0 + mov r5, r8 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + add r1, r12 + movs r2, 0xA + ldrsh r3, [r1, r2] + ldr r1, _080ACC90 + mov r9, r0 + ldr r2, _080ACC94 + adds r5, r1, 0 + ldrb r4, [r5] + cmp r3, r4 + beq _080ACC6C +_080ACC62: + adds r6, 0x1 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r3, r0 + bne _080ACC62 +_080ACC6C: + lsls r0, r6, 2 + adds r0, r2 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080ACC7E + bl _080AD8CA +_080ACC7E: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x27 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACC90: .4byte gUnknown_02038696 +_080ACC94: .4byte 0x02019338 +_080ACC98: + movs r6, 0 + mov r5, r8 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + add r1, r12 + movs r3, 0xA + ldrsh r2, [r1, r3] + ldr r1, _080ACCE8 + mov r9, r0 + adds r5, r1, 0 + ldrb r4, [r5] + cmp r2, r4 + beq _080ACCC2 + adds r1, r2, 0 + adds r2, r5, 0 +_080ACCB8: + adds r6, 0x1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080ACCB8 +_080ACCC2: + lsls r0, r6, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80AEE54 + lsls r0, 24 + cmp r0, 0 + beq _080ACCF0 + ldr r1, _080ACCEC + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r1, 0x28 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACCE8: .4byte gUnknown_02038696 +_080ACCEC: .4byte gTasks +_080ACCF0: + ldr r0, _080ACCFC + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + b _080ACD22 + .align 2, 0 +_080ACCFC: .4byte gTasks +_080ACD00: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080ACD1E + bl _080AD8CA +_080ACD1E: + movs r0, 0 + strh r0, [r1, 0x1C] +_080ACD22: + movs r0, 0x1E + strh r0, [r1, 0x8] + bl _080AD8CA +_080ACD2A: + movs r6, 0 + ldr r2, _080ACD78 + ldrb r3, [r2] + mov r4, r8 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + mov r5, r12 + adds r4, r0, r5 + movs r5, 0xA + ldrsh r0, [r4, r5] + mov r9, r1 + adds r5, r2, 0 + cmp r3, r0 + beq _080ACD5E + adds r3, r5, 0 + adds r2, r4, 0 +_080ACD4C: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080ACD5E + adds r0, r6, r3 + ldrb r1, [r0] + movs r4, 0xA + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080ACD4C +_080ACD5E: + lsls r4, r6, 24 + lsrs r0, r4, 24 + bl sub_80AF038 + lsls r0, 24 + adds r5, r4, 0 + cmp r0, 0 + beq _080ACD7C + movs r0, 0x63 + bl PlaySE + b _080ACD82 + .align 2, 0 +_080ACD78: .4byte gUnknown_02038696 +_080ACD7C: + movs r0, 0x64 + bl PlaySE +_080ACD82: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r1, _080ACDC0 + adds r4, r0, r1 + ldrb r1, [r4, 0x15] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080ACDA6 + lsrs r0, r5, 24 + bl sub_80B03A8 + ldrb r1, [r4, 0x15] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x15] +_080ACDA6: + ldr r0, _080ACDC4 + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + movs r0, 0x1A + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACDC0: .4byte 0x02019260 +_080ACDC4: .4byte gTasks +_080ACDC8: + mov r5, r8 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + mov r1, r12 + adds r3, r0, r1 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + mov r9, r2 + cmp r0, 0x9 + bgt _080ACDE8 + bl _080AD8CA +_080ACDE8: + movs r0, 0 + strh r0, [r3, 0x1C] + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACE48 + adds r2, r0, r1 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080ACE0A + ldrb r1, [r2, 0x11] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080ACE36 +_080ACE0A: + bl sub_80AF138 + ldr r0, _080ACE4C + lsls r1, r7, 6 + ldr r2, _080ACE50 + adds r1, r2 + bl StringCopy + ldr r4, _080ACE54 + ldr r1, _080ACE58 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ACE5C + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 +_080ACE36: + ldr r0, _080ACE60 + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x34 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACE48: .4byte 0x02019260 +_080ACE4C: .4byte gStringVar1 +_080ACE50: .4byte gUnknown_02038572 +_080ACE54: .4byte gStringVar4 +_080ACE58: .4byte gUnknown_083CC103 +_080ACE5C: .4byte gMenuWindow +_080ACE60: .4byte gTasks +_080ACE64: + ldr r0, _080ACE9C + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACE74 + bl _080AD8CA +_080ACE74: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACEA0 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080ACEA8 + ldr r0, _080ACEA4 + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x11 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACE9C: .4byte gMenuWindow +_080ACEA0: .4byte 0x02019260 +_080ACEA4: .4byte gTasks +_080ACEA8: + ldr r0, _080ACEBC + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0xE + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACEBC: .4byte gTasks +_080ACEC0: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACEE4 + adds r0, r1 + ldrb r4, [r0, 0x16] + lsls r4, 24 + lsrs r5, r4, 24 + cmp r5, 0 + beq _080ACF48 + bl sub_80AF138 + asrs r0, r4, 24 + cmp r0, 0x1 + bne _080ACEF0 + ldr r0, _080ACEE8 + ldr r1, _080ACEEC + b _080ACEF8 + .align 2, 0 +_080ACEE4: .4byte 0x02019260 +_080ACEE8: .4byte gMenuWindow +_080ACEEC: .4byte gUnknown_083CBD79 +_080ACEF0: + cmp r0, 0x2 + bne _080ACF10 + ldr r0, _080ACF08 + ldr r1, _080ACF0C +_080ACEF8: + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 + b _080ACF22 + .align 2, 0 +_080ACF08: .4byte gMenuWindow +_080ACF0C: .4byte gUnknown_083CBD9D +_080ACF10: + ldr r0, _080ACF3C + ldr r1, _080ACF40 + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 +_080ACF22: + movs r0, 0x3 + bl sub_80B1710 + ldr r1, _080ACF44 + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + b _080ACF88 + .align 2, 0 +_080ACF3C: .4byte gMenuWindow +_080ACF40: .4byte gUnknown_083CBDC6 +_080ACF44: .4byte gTasks +_080ACF48: + bl sub_80AF138 + ldr r0, _080ACF90 + lsls r1, r7, 6 + ldr r2, _080ACF94 + adds r1, r2 + bl StringCopy + ldr r4, _080ACF98 + ldr r1, _080ACF9C + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ACFA0 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + movs r0, 0x2 + bl sub_80B1710 + ldr r1, _080ACFA4 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] +_080ACF88: + movs r1, 0x2D + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACF90: .4byte gStringVar1 +_080ACF94: .4byte gUnknown_02038572 +_080ACF98: .4byte gStringVar4 +_080ACF9C: .4byte gUnknown_083CBD52 +_080ACFA0: .4byte gMenuWindow +_080ACFA4: .4byte gTasks +_080ACFA8: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ACFB6 + bl _080AD8CA +_080ACFB6: + ldrb r0, [r6, 0x11] + bl sub_80B09B0 + ldr r1, _080ACFD0 + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0xF + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACFD0: .4byte gTasks +_080ACFD4: + ldr r0, _080AD034 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACFE4 + bl _080AD8CA +_080ACFE4: + ldr r1, _080AD038 + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bgt _080AD002 + bl _080AD8CA +_080AD002: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AD03C + adds r6, r0, r1 + ldrb r1, [r6, 0x15] + movs r5, 0x10 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _080AD02C + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldrb r1, [r6, 0x17] + adds r2, r7, 0 + bl sub_80AFBA0 + ldrh r0, [r6, 0x2] + ldrb r2, [r6, 0x17] + adds r0, r2 + strh r0, [r6, 0x2] +_080AD02C: + strh r5, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AD034: .4byte gMenuWindow +_080AD038: .4byte gTasks +_080AD03C: .4byte 0x02019260 +_080AD040: + lsls r0, r7, 2 + ldr r1, _080AD06C + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080AD058 + bl _080AD8CA +_080AD058: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x1C] + movs r1, 0x11 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AD06C: .4byte 0x02019338 +_080AD070: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AD0CC + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD0E8 + bl sub_80AF138 + ldr r0, _080AD0D0 + lsls r1, r7, 6 + ldr r2, _080AD0D4 + adds r1, r2 + bl StringCopy + ldr r4, _080AD0D8 + ldr r1, _080AD0DC + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD0E0 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r0, _080AD0E4 + mov r5, r8 + lsls r4, r5, 2 + add r4, r8 + lsls r4, 3 + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x1C] + bl sub_80B1710 + movs r0, 0x2E + strh r0, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AD0CC: .4byte 0x02019260 +_080AD0D0: .4byte gStringVar1 +_080AD0D4: .4byte gUnknown_02038572 +_080AD0D8: .4byte gStringVar4 +_080AD0DC: .4byte gUnknown_083CC075 +_080AD0E0: .4byte gMenuWindow +_080AD0E4: .4byte gTasks +_080AD0E8: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x29 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AD0FA: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AD108 + bl _080AD8CA +_080AD108: + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x13 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AD11A: + ldr r0, _080AD15C + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD12A + bl _080AD8CA +_080AD12A: + lsls r4, r7, 3 + subs r4, r7 + lsls r4, 2 + ldr r0, _080AD160 + adds r4, r0 + movs r3, 0x2 + ldrsh r0, [r4, r3] + ldrb r1, [r4, 0x18] + negs r1, r1 + adds r2, r7, 0 + bl sub_80AFBA0 + ldrb r1, [r4, 0x18] + ldrh r0, [r4, 0x2] + subs r0, r1 + strh r0, [r4, 0x2] + ldr r1, _080AD164 + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD15C: .4byte gMenuWindow +_080AD160: .4byte 0x02019260 +_080AD164: .4byte gTasks +_080AD168: + bl sub_80B0D7C + lsls r0, r7, 2 + ldr r1, _080AD19C + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080AD182 + b _080AD8CA +_080AD182: + ldr r0, _080AD1A0 + mov r5, r8 + lsls r4, r5, 2 + add r4, r8 + lsls r4, 3 + adds r4, r0 + strh r6, [r4, 0x1C] + bl sub_80AF138 + movs r0, 0x29 + strh r0, [r4, 0x8] + b _080AD8CA + .align 2, 0 +_080AD19C: .4byte 0x02019338 +_080AD1A0: .4byte gTasks +_080AD1A4: + ldr r2, _080AD1CC + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + adds r1, r2, 0 + cmp r0, 0 + beq _080AD1D0 + ldr r0, [r1] + lsls r0, 20 + lsrs r0, 29 + cmp r7, r0 + beq _080AD1D0 + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x39 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD1CC: .4byte 0x02019328 +_080AD1D0: + ldrb r4, [r1] + lsls r2, r7, 3 + subs r0, r2, r7 + lsls r0, 2 + subs r1, 0xC8 + adds r5, r0, r1 + ldrb r1, [r5, 0x11] + movs r0, 0x10 + ands r0, r1 + mov r10, r2 + cmp r0, 0 + beq _080AD204 + movs r4, 0x1 + ldr r0, _080AD1FC + ldrh r2, [r5, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD200 + adds r1, r2 + bl StringCopy + b _080AD21E + .align 2, 0 +_080AD1FC: .4byte gStringVar3 +_080AD200: .4byte gMoveNames +_080AD204: + ldr r0, _080AD270 + ldr r3, _080AD274 + ldr r2, _080AD278 + ldrh r1, [r5, 0x6] + lsls r1, 3 + adds r1, r2 + ldrb r1, [r1, 0x1] + lsls r1, 29 + lsrs r1, 27 + adds r1, r3 + ldr r1, [r1] + bl StringCopy +_080AD21E: + lsls r0, r4, 24 + cmp r0, 0 + ble _080AD23A + mov r2, r10 + subs r0, r2, r7 + lsls r0, 2 + ldr r1, _080AD27C + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD23A + movs r4, 0 +_080AD23A: + bl sub_80AF138 + ldr r0, _080AD280 + lsls r1, r7, 6 + ldr r2, _080AD284 + adds r1, r2 + bl StringCopy + ldr r3, _080AD288 + ldrb r0, [r3, 0x13] + lsls r1, r4, 24 + asrs r2, r1, 24 + adds r0, r2, r0 + strb r0, [r3, 0x13] + lsls r0, 24 + adds r4, r1, 0 + cmp r0, 0 + bge _080AD262 + movs r0, 0 + strb r0, [r3, 0x13] +_080AD262: + cmp r2, 0 + bne _080AD290 + ldr r0, _080AD28C + mov r3, r8 + lsls r1, r3, 2 + b _080AD6EC + .align 2, 0 +_080AD270: .4byte gStringVar3 +_080AD274: .4byte gUnknown_083CC2D8 +_080AD278: .4byte gContestMoves +_080AD27C: .4byte 0x02019260 +_080AD280: .4byte gStringVar1 +_080AD284: .4byte gUnknown_02038572 +_080AD288: .4byte 0x02019204 +_080AD28C: .4byte gTasks +_080AD290: + cmp r2, 0 + bge _080AD2A8 + ldr r0, _080AD2A0 + ldr r1, _080AD2A4 + bl StringExpandPlaceholders + b _080AD2D0 + .align 2, 0 +_080AD2A0: .4byte gStringVar4 +_080AD2A4: .4byte gUnknown_083CC0BC +_080AD2A8: + cmp r2, 0 + ble _080AD2C8 + movs r0, 0x13 + ldrsb r0, [r3, r0] + cmp r0, 0x4 + bgt _080AD2C8 + ldr r0, _080AD2C0 + ldr r1, _080AD2C4 + bl StringExpandPlaceholders + b _080AD2D0 + .align 2, 0 +_080AD2C0: .4byte gStringVar4 +_080AD2C4: .4byte gUnknown_083CC0A0 +_080AD2C8: + ldr r0, _080AD300 + ldr r1, _080AD304 + bl StringExpandPlaceholders +_080AD2D0: + ldr r0, _080AD308 + ldr r1, _080AD300 + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD30C + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0 + strh r0, [r1, 0x1C] + strh r0, [r1, 0x1E] + cmp r4, 0 + bge _080AD310 + movs r0, 0x35 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD300: .4byte gStringVar4 +_080AD304: .4byte gUnknown_083CC0E3 +_080AD308: .4byte gMenuWindow +_080AD30C: .4byte gTasks +_080AD310: + movs r0, 0x36 + strh r0, [r1, 0x8] + b _080AD8CA +_080AD316: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r4, r0, r2 + movs r3, 0x1C + ldrsh r2, [r4, r3] + cmp r2, 0x1 + beq _080AD354 + cmp r2, 0x1 + bgt _080AD334 + cmp r2, 0 + beq _080AD33E + b _080AD8CA +_080AD334: + cmp r2, 0x2 + beq _080AD37C + cmp r2, 0x3 + beq _080AD3B0 + b _080AD8CA +_080AD33E: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x1 + bl sub_80B1EA8 + ldr r0, _080AD350 + bl PlayFanfare + b _080AD3A8 + .align 2, 0 +_080AD350: .4byte 0x00000187 +_080AD354: + ldrb r0, [r6, 0x7] + ands r2, r0 + cmp r2, 0 + beq _080AD35E + b _080AD8CA +_080AD35E: + ldr r0, _080AD378 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD36C + b _080AD8CA +_080AD36C: + movs r0, 0x1 + negs r0, r0 + bl sub_80B1CBC + b _080AD3A8 + .align 2, 0 +_080AD378: .4byte gMenuWindow +_080AD37C: + ldrb r1, [r6, 0x6] + movs r0, 0x20 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080AD38C + b _080AD8CA +_080AD38C: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + bgt _080AD39C + b _080AD8CA +_080AD39C: + strh r2, [r4, 0x1E] + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 + bl sub_80B1EA8 +_080AD3A8: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _080AD8CA +_080AD3B0: + ldr r0, _080AD3CC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080AD3C2 + b _080AD8CA +_080AD3C2: + strh r0, [r4, 0x1C] + strh r0, [r4, 0x1E] + movs r0, 0x2B + strh r0, [r4, 0x8] + b _080AD8CA + .align 2, 0 +_080AD3CC: .4byte gPaletteFade +_080AD3D0: + mov r4, r8 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + add r0, r12 + movs r5, 0x1C + ldrsh r0, [r0, r5] + mov r9, r1 + cmp r0, 0x4 + bls _080AD3E6 + b _080AD8CA +_080AD3E6: + lsls r0, 2 + ldr r1, _080AD3F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AD3F0: .4byte _080AD3F4 + .align 2, 0 +_080AD3F4: + .4byte _080AD408 + .4byte _080AD420 + .4byte _080AD43E + .4byte _080AD4A0 + .4byte _080AD4EC +_080AD408: + ldr r0, _080AD41C + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD416 + b _080AD8CA +_080AD416: + movs r0, 0x1 + movs r1, 0x1 + b _080AD4C8 + .align 2, 0 +_080AD41C: .4byte gMenuWindow +_080AD420: + ldrb r1, [r6, 0x7] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD42C + b _080AD8CA +_080AD42C: + bl sub_80B1DDC + movs r0, 0xDF + bl PlaySE + movs r0, 0x1 + bl sub_80B1CBC + b _080AD4CC +_080AD43E: + ldrb r1, [r6, 0x6] + movs r0, 0x20 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080AD44E + b _080AD8CA +_080AD44E: + mov r0, r9 + add r0, r8 + lsls r0, 3 + mov r1, r12 + adds r3, r0, r1 + ldrh r0, [r3, 0x1E] + adds r1, r0, 0x1 + strh r1, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + bgt _080AD468 + b _080AD8CA +_080AD468: + strh r2, [r3, 0x1E] + lsls r4, r7, 3 + subs r4, r7 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x5C + adds r4, r0 + movs r2, 0x2 + ldrsh r0, [r4, r2] + movs r1, 0x92 + lsls r1, 1 + adds r5, r6, r1 + movs r1, 0x2 + ldrsb r1, [r5, r1] + adds r2, r7, 0 + str r3, [sp, 0x4] + bl sub_80AFBA0 + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrh r2, [r4, 0x2] + adds r0, r2 + strh r0, [r4, 0x2] + ldr r3, [sp, 0x4] + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + b _080AD8CA +_080AD4A0: + lsls r0, r7, 2 + ldr r2, _080AD4E0 + adds r0, r2 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD4B2 + b _080AD8CA +_080AD4B2: + ldr r3, _080AD4E4 + adds r0, r2, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AD4C2 + b _080AD8CA +_080AD4C2: + movs r1, 0x1 + negs r1, r1 + movs r0, 0x1 +_080AD4C8: + bl sub_80B1EA8 +_080AD4CC: + ldr r0, _080AD4E8 + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + b _080AD8CA + .align 2, 0 +_080AD4E0: .4byte 0x02019338 +_080AD4E4: .4byte 0xfffffecc +_080AD4E8: .4byte gTasks +_080AD4EC: + ldr r0, _080AD510 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080AD4FE + b _080AD8CA +_080AD4FE: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x1C] + strh r1, [r0, 0x1E] + movs r1, 0x2B + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD510: .4byte gPaletteFade +_080AD514: + lsls r0, r7, 2 + ldr r1, _080AD534 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD526 + b _080AD8CA +_080AD526: + bl sub_80AF138 + ldr r0, _080AD538 + mov r4, r8 + lsls r1, r4, 2 + b _080AD6EC + .align 2, 0 +_080AD534: .4byte 0x02019338 +_080AD538: .4byte gTasks +_080AD53C: + bl sub_80AF138 + ldr r0, _080AD5A8 + ldr r4, _080AD5AC + ldr r1, [r4] + lsls r1, 20 + lsrs r1, 29 + lsls r1, 6 + ldr r5, _080AD5B0 + adds r1, r5 + bl StringCopy + ldr r0, _080AD5B4 + lsls r1, r7, 6 + adds r1, r5 + bl StringCopy + ldr r0, _080AD5B8 + lsls r1, r7, 3 + subs r1, r7 + lsls r1, 2 + subs r4, 0xC8 + adds r1, r4 + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD5BC + adds r1, r2 + bl StringCopy + ldr r4, _080AD5C0 + ldr r1, _080AD5C4 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD5C8 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD5CC + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3A + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD5A8: .4byte gStringVar3 +_080AD5AC: .4byte 0x02019328 +_080AD5B0: .4byte gUnknown_02038572 +_080AD5B4: .4byte gStringVar1 +_080AD5B8: .4byte gStringVar2 +_080AD5BC: .4byte gMoveNames +_080AD5C0: .4byte gStringVar4 +_080AD5C4: .4byte gUnknown_083CC14A +_080AD5C8: .4byte gMenuWindow +_080AD5CC: .4byte gTasks +_080AD5D0: + ldr r5, _080AD614 + adds r0, r5, 0 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD5E0 + b _080AD8CA +_080AD5E0: + bl sub_80AF138 + ldr r4, _080AD618 + ldr r1, _080AD61C + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r2, 0xC2 + lsls r2, 2 + movs r0, 0xF + str r0, [sp] + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD620 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3B + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD614: .4byte gMenuWindow +_080AD618: .4byte gStringVar4 +_080AD61C: .4byte gUnknown_083CC16E +_080AD620: .4byte gTasks +_080AD624: + ldr r0, _080AD640 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD632 + b _080AD8CA +_080AD632: + bl sub_80AF138 + ldr r0, _080AD644 + mov r3, r8 + lsls r1, r3, 2 + b _080AD6EC + .align 2, 0 +_080AD640: .4byte gMenuWindow +_080AD644: .4byte gTasks +_080AD648: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AD6B4 + adds r4, r0, r1 + ldrb r1, [r4, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AD664 + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x15] +_080AD664: + adds r0, r7, 0 + bl sub_80B09B0 + ldr r0, _080AD6B8 + lsls r1, r7, 6 + ldr r2, _080AD6BC + adds r1, r2 + bl StringCopy + ldr r0, _080AD6C0 + ldrh r2, [r4, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD6C4 + adds r1, r2 + bl StringCopy + ldr r4, _080AD6C8 + ldr r1, _080AD6CC + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD6D0 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD6D4 + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x22 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD6B4: .4byte 0x02019260 +_080AD6B8: .4byte gStringVar1 +_080AD6BC: .4byte gUnknown_02038572 +_080AD6C0: .4byte gStringVar2 +_080AD6C4: .4byte gMoveNames +_080AD6C8: .4byte gStringVar4 +_080AD6CC: .4byte gUnknown_083CBF60 +_080AD6D0: .4byte gMenuWindow +_080AD6D4: .4byte gTasks +_080AD6D8: + ldr r0, _080AD6F8 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD6E6 + b _080AD8CA +_080AD6E6: + ldr r0, _080AD6FC + mov r5, r8 + lsls r1, r5, 2 +_080AD6EC: + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x37 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD6F8: .4byte gMenuWindow +_080AD6FC: .4byte gTasks +_080AD700: + bl sub_80B1BDC + ldr r0, _080AD718 + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x38 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD718: .4byte gTasks +_080AD71C: + ldrb r1, [r6, 0x6] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080AD72C + b _080AD8CA +_080AD72C: + movs r0, 0x13 + ldrsb r0, [r6, r0] + cmp r0, 0x4 + ble _080AD73A + strb r1, [r6, 0x13] + bl sub_80B1928 +_080AD73A: + ldr r0, _080AD74C + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0xA + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD74C: .4byte gTasks +_080AD750: + mov r4, r8 + lsls r2, r4, 2 + add r2, r8 + lsls r2, 3 + add r2, r12 + ldrb r5, [r2, 0xC] + ldr r1, _080AD774 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080AD778 + str r1, [r0] + movs r0, 0xB + strh r0, [r2, 0x8] + b _080AD8CA + .align 2, 0 +_080AD774: .4byte gSprites +_080AD778: .4byte sub_80AD92C +_080AD77C: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + mov r1, r12 + adds r4, r0, r1 + ldrb r5, [r4, 0xC] + ldr r1, _080AD7B4 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r6, r0, r1 + adds r0, r6, 0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _080AD7A2 + b _080AD8CA +_080AD7A2: + adds r0, r6, 0 + bl FreeSpriteOamMatrix + adds r0, r6, 0 + bl DestroySprite + movs r0, 0x14 + strh r0, [r4, 0x8] + b _080AD8CA + .align 2, 0 +_080AD7B4: .4byte gSprites +_080AD7B8: + movs r6, 0 + mov r2, r8 + lsls r2, 2 + mov r9, r2 +_080AD7C0: + lsls r0, r6, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80B0CDC + adds r6, 0x1 + cmp r6, 0x3 + ble _080AD7C0 + ldr r1, _080AD7E4 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r1, 0x15 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD7E4: .4byte gTasks +_080AD7E8: + bl sub_80AF138 + ldr r0, _080AD828 + lsls r1, r7, 6 + ldr r2, _080AD82C + adds r1, r2 + bl StringCopy + ldr r4, _080AD830 + ldr r1, _080AD834 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD838 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD83C + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x20 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD828: .4byte gStringVar1 +_080AD82C: .4byte gUnknown_02038572 +_080AD830: .4byte gStringVar4 +_080AD834: .4byte gUnknown_083CB00D +_080AD838: .4byte gMenuWindow +_080AD83C: .4byte gTasks +_080AD840: + ldr r0, _080AD860 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + beq _080AD8CA + ldr r0, _080AD864 + mov r4, r8 + lsls r1, r4, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x15 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD860: .4byte gMenuWindow +_080AD864: .4byte gTasks +_080AD868: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080AD8CA + movs r0, 0 + strh r0, [r1, 0x1C] + movs r0, 0x16 + strh r0, [r1, 0x8] + b _080AD8CA +_080AD88C: + ldrb r0, [r6, 0x10] + adds r0, 0x1 + movs r1, 0 + strb r0, [r6, 0x10] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080AD8B8 + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + strh r1, [r0, 0xC] + ldr r1, _080AD8B4 + str r1, [r0] + b _080AD8C4 + .align 2, 0 +_080AD8B4: .4byte sub_80AD960 +_080AD8B8: + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x8] +_080AD8C4: + movs r0, 0 + bl nullsub_18 +_080AD8CA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AC2CC + + thumb_func_start sub_80AD8DC +sub_80AD8DC: @ 80AD8DC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080AD8F8 + ldrb r2, [r3, 0x7] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r3, 0x7] + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_080AD8F8: .4byte 0x02019204 + thumb_func_end sub_80AD8DC + + thumb_func_start sub_80AD8FC +sub_80AD8FC: @ 80AD8FC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x24] + movs r3, 0x24 + ldrsh r2, [r1, r3] + cmp r2, 0 + beq _080AD910 + subs r0, 0x2 + strh r0, [r1, 0x24] + b _080AD924 +_080AD910: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080AD924 + strh r2, [r1, 0x2E] + ldr r0, _080AD928 + str r0, [r1, 0x1C] +_080AD924: + pop {r0} + bx r0 + .align 2, 0 +_080AD928: .4byte SpriteCallbackDummy + thumb_func_end sub_80AD8FC + + thumb_func_start sub_80AD92C +sub_80AD92C: @ 80AD92C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x24] + subs r0, 0x6 + strh r0, [r2, 0x24] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r3, 0x24 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080AD956 + ldr r0, _080AD95C + str r0, [r2, 0x1C] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080AD956: + pop {r0} + bx r0 + .align 2, 0 +_080AD95C: .4byte SpriteCallbackDummy + thumb_func_end sub_80AD92C + + thumb_func_start sub_80AD960 +sub_80AD960: @ 80AD960 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD984 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AD9F2 + cmp r0, 0x1 + bgt _080AD988 + cmp r0, 0 + beq _080AD98E + b _080ADA10 + .align 2, 0 +_080AD984: .4byte gTasks +_080AD988: + cmp r0, 0x2 + beq _080ADA08 + b _080ADA10 +_080AD98E: + ldr r0, _080AD9D8 + ldrb r1, [r0] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080AD9E8 + ldr r2, _080AD9DC + ldrb r0, [r2, 0x7] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x7] + bl sub_80AE074 + lsls r0, 24 + cmp r0, 0 + beq _080AD9B8 + bl sub_80AF2FC + bl sub_80AF3C0 +_080AD9B8: + ldr r4, _080AD9E0 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD9E4 + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + strh r6, [r5, 0x8] + b _080ADA10 + .align 2, 0 +_080AD9D8: .4byte gUnknown_0203869A +_080AD9DC: .4byte 0x02019204 +_080AD9E0: .4byte sub_80C8C80 +_080AD9E4: .4byte sub_80AD8DC +_080AD9E8: + bl sub_80AF2FC + bl sub_80AF3C0 + b _080AD9FE +_080AD9F2: + ldr r0, _080ADA04 + ldrb r1, [r0, 0x7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080ADA10 +_080AD9FE: + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080ADA10 + .align 2, 0 +_080ADA04: .4byte 0x02019204 +_080ADA08: + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080ADA18 + str r0, [r5] +_080ADA10: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADA18: .4byte sub_80ADA1C + thumb_func_end sub_80AD960 + + thumb_func_start sub_80ADA1C +sub_80ADA1C: @ 80ADA1C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80B1FD0 + ldr r1, _080ADA44 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + ldr r1, _080ADA48 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADA44: .4byte gTasks +_080ADA48: .4byte sub_80ADA4C + thumb_func_end sub_80ADA1C + + thumb_func_start sub_80ADA4C +sub_80ADA4C: @ 80ADA4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADA70 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080ADA92 + cmp r5, 0x1 + bgt _080ADA74 + cmp r5, 0 + beq _080ADA7A + b _080ADACE + .align 2, 0 +_080ADA70: .4byte gTasks +_080ADA74: + cmp r5, 0x2 + beq _080ADAC0 + b _080ADACE +_080ADA7A: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080ADACE + movs r0, 0x2 + bl sub_80B25E4 + strh r5, [r4, 0xA] + b _080ADAB2 +_080ADA92: + ldr r0, _080ADABC + ldrb r1, [r0, 0x7] + movs r0, 0x2 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ADACE + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080ADACE + strh r1, [r4, 0xA] +_080ADAB2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ADACE + .align 2, 0 +_080ADABC: .4byte 0x02019204 +_080ADAC0: + bl sub_80AFF10 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + ldr r0, _080ADAD4 + str r0, [r4] +_080ADACE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADAD4: .4byte sub_80ADAD8 + thumb_func_end sub_80ADA4C + + thumb_func_start sub_80ADAD8 +sub_80ADAD8: @ 80ADAD8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AFF28 + lsls r0, 24 + cmp r0, 0 + beq _080ADAF6 + ldr r0, _080ADAFC + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADB00 + str r0, [r1] +_080ADAF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADAFC: .4byte gTasks +_080ADB00: .4byte sub_80ADB04 + thumb_func_end sub_80ADAD8 + + thumb_func_start sub_80ADB04 +sub_80ADB04: @ 80ADB04 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADB30 + ldr r3, _080ADB34 + ldr r1, _080ADB38 + str r2, [r1] + str r3, [r1, 0x4] + ldr r2, _080ADB3C + str r2, [r1, 0x8] + ldr r1, [r1, 0x8] + ldr r2, _080ADB40 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + movs r0, 0x2 + strh r0, [r1, 0xA] + ldr r0, _080ADB44 + str r0, [r1] + bx lr + .align 2, 0 +_080ADB30: .4byte 0x02018204 +_080ADB34: .4byte gPlttBufferUnfaded +_080ADB38: .4byte 0x040000d4 +_080ADB3C: .4byte 0x84000100 +_080ADB40: .4byte gTasks +_080ADB44: .4byte sub_80ADB48 + thumb_func_end sub_80ADB04 + + thumb_func_start sub_80ADB48 +sub_80ADB48: @ 80ADB48 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADB80 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080ADB7A + movs r0, 0 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xA] + subs r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080ADB7A + ldr r0, _080ADB84 + str r0, [r1] +_080ADB7A: + pop {r0} + bx r0 + .align 2, 0 +_080ADB80: .4byte gTasks +_080ADB84: .4byte sub_80ADB88 + thumb_func_end sub_80ADB48 + + thumb_func_start sub_80ADB88 +sub_80ADB88: @ 80ADB88 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080ADBEC + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080ADBF0 + adds r0, r1 + ldrb r4, [r0, 0x1A] + bl sub_80AF138 + ldr r0, _080ADBF4 + ldrb r1, [r6] + lsls r1, 6 + ldr r2, _080ADBF8 + adds r1, r2 + bl StringCopy + ldr r6, _080ADBFC + ldr r0, _080ADC00 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r6, 0 + bl StringExpandPlaceholders + ldr r0, _080ADC04 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r6, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080ADC08 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADC0C + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADBEC: .4byte gUnknown_02038695 +_080ADBF0: .4byte 0x02019260 +_080ADBF4: .4byte gStringVar1 +_080ADBF8: .4byte gUnknown_02038572 +_080ADBFC: .4byte gStringVar4 +_080ADC00: .4byte gUnknown_083CB2F0 +_080ADC04: .4byte gMenuWindow +_080ADC08: .4byte gTasks +_080ADC0C: .4byte sub_80ADC10 + thumb_func_end sub_80ADB88 + + thumb_func_start sub_80ADC10 +sub_80ADC10: @ 80ADC10 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080ADC40 + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ADC3A + ldr r1, _080ADC44 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADC48 + str r1, [r0] + bl sub_80B0D7C +_080ADC3A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC40: .4byte gMenuWindow +_080ADC44: .4byte gTasks +_080ADC48: .4byte sub_80ADC4C + thumb_func_end sub_80ADC10 + + thumb_func_start sub_80ADC4C +sub_80ADC4C: @ 80ADC4C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADC7C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080ADC76 + movs r0, 0 + strh r0, [r4, 0x8] + bl sub_80AFF10 + ldr r0, _080ADC80 + str r0, [r4] +_080ADC76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC7C: .4byte gTasks +_080ADC80: .4byte sub_80ADC84 + thumb_func_end sub_80ADC4C + + thumb_func_start sub_80ADC84 +sub_80ADC84: @ 80ADC84 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AFF28 + lsls r0, 24 + cmp r0, 0 + beq _080ADCA6 + ldr r1, _080ADCAC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADCB0 + str r1, [r0] +_080ADCA6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADCAC: .4byte gTasks +_080ADCB0: .4byte sub_80ADCB4 + thumb_func_end sub_80ADC84 + + thumb_func_start sub_80ADCB4 +sub_80ADCB4: @ 80ADCB4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80B2184 + ldr r1, _080ADCD4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADCD8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADCD4: .4byte gTasks +_080ADCD8: .4byte sub_80B237C + thumb_func_end sub_80ADCB4 + + thumb_func_start sub_80ADCDC +sub_80ADCDC: @ 80ADCDC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80B2280 + ldr r1, _080ADCFC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADD00 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADCFC: .4byte gTasks +_080ADD00: .4byte sub_80ADD04 + thumb_func_end sub_80ADCDC + + thumb_func_start sub_80ADD04 +sub_80ADD04: @ 80ADD04 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, _080ADD40 + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080ADD44 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldr r1, _080ADD48 + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _080ADD54 + ldr r0, _080ADD4C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADD50 + b _080ADD64 + .align 2, 0 +_080ADD40: .4byte REG_BG0CNT +_080ADD44: .4byte REG_BG2CNT +_080ADD48: .4byte 0x02019204 +_080ADD4C: .4byte gTasks +_080ADD50: .4byte sub_80ADDA4 +_080ADD54: + bl sub_80B1B14 + ldr r0, _080ADD6C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADD70 +_080ADD64: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADD6C: .4byte gTasks +_080ADD70: .4byte sub_80ADD74 + thumb_func_end sub_80ADD04 + + thumb_func_start sub_80ADD74 +sub_80ADD74: @ 80ADD74 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080ADD98 + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080ADD94 + ldr r0, _080ADD9C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADDA0 + str r0, [r1] +_080ADD94: + pop {r0} + bx r0 + .align 2, 0 +_080ADD98: .4byte 0x02019204 +_080ADD9C: .4byte gTasks +_080ADDA0: .4byte sub_80ABB70 + thumb_func_end sub_80ADD74 + + thumb_func_start sub_80ADDA4 +sub_80ADDA4: @ 80ADDA4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080ADE24 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ADE28 + strh r1, [r0] + ldr r3, _080ADE2C + ldr r2, _080ADE30 + movs r1, 0x3 +_080ADDBC: + ldrh r0, [r3, 0x4] + strh r0, [r2] + adds r3, 0x1C + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080ADDBC + movs r5, 0 + bl sub_80AF668 + bl sub_80AF138 + ldr r0, _080ADE34 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080ADE2C + adds r0, r1 + ldrh r0, [r0, 0x8] + bl sub_80BE23C + ldr r1, _080ADE38 + ldr r0, _080ADE3C + ldr r0, [r0] + str r0, [r1] + ldr r4, _080ADE40 + ldr r1, _080ADE44 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ADE48 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080ADE4C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xC] + ldr r1, _080ADE50 + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADE24: .4byte gUnknown_030042A0 +_080ADE28: .4byte gUnknown_03004280 +_080ADE2C: .4byte 0x02019260 +_080ADE30: .4byte gUnknown_02038680 +_080ADE34: .4byte gUnknown_02038695 +_080ADE38: .4byte gUnknown_03005D28 +_080ADE3C: .4byte gRngValue +_080ADE40: .4byte gStringVar4 +_080ADE44: .4byte gUnknown_083CB02C +_080ADE48: .4byte gMenuWindow +_080ADE4C: .4byte gTasks +_080ADE50: .4byte sub_80ADE54 + thumb_func_end sub_80ADDA4 + + thumb_func_start sub_80ADE54 +sub_80ADE54: @ 80ADE54 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080ADE98 + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ADE92 + bl sub_80B2184 + ldr r1, _080ADE9C + movs r0, 0 + strh r0, [r1] + ldr r1, _080ADEA0 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl PlaySE12WithPanning + ldr r1, _080ADEA4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADEA8 + str r1, [r0] +_080ADE92: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADE98: .4byte gMenuWindow +_080ADE9C: .4byte gUnknown_030042C0 +_080ADEA0: .4byte gUnknown_030041B4 +_080ADEA4: .4byte gTasks +_080ADEA8: .4byte sub_80ADEAC + thumb_func_end sub_80ADE54 + + thumb_func_start sub_80ADEAC +sub_80ADEAC: @ 80ADEAC + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080ADEE0 + ldrh r0, [r1] + subs r0, 0x7 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080ADEC4 + movs r0, 0 + strh r0, [r1] +_080ADEC4: + ldrh r2, [r1] + cmp r2, 0 + bne _080ADEDA + ldr r0, _080ADEE4 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADEE8 + str r0, [r1] + strh r2, [r1, 0x8] +_080ADEDA: + pop {r0} + bx r0 + .align 2, 0 +_080ADEE0: .4byte gUnknown_030041B4 +_080ADEE4: .4byte gTasks +_080ADEE8: .4byte sub_80ADEEC + thumb_func_end sub_80ADEAC + + thumb_func_start sub_80ADEEC +sub_80ADEEC: @ 80ADEEC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADF20 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x31 + ble _080ADF40 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _080ADF24 + ldrb r0, [r0] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080ADF2C + ldr r0, _080ADF28 + b _080ADF3E + .align 2, 0 +_080ADF20: .4byte gTasks +_080ADF24: .4byte gUnknown_0203869A +_080ADF28: .4byte sub_80ADF4C +_080ADF2C: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080ADF48 +_080ADF3E: + str r0, [r4] +_080ADF40: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADF48: .4byte sub_80ADFD8 + thumb_func_end sub_80ADEEC + + thumb_func_start sub_80ADF4C +sub_80ADF4C: @ 80ADF4C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080ADF88 + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADF8C + adds r1, r5, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080ADF90 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADF94 + str r1, [r0] + bl sub_80AF860 + movs r0, 0 + bl sub_80AFFE0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADF88: .4byte sub_80C8AD0 +_080ADF8C: .4byte sub_80ADF98 +_080ADF90: .4byte gTasks +_080ADF94: .4byte nullsub_89 + thumb_func_end sub_80ADF4C + + thumb_func_start sub_80ADF98 +sub_80ADF98: @ 80ADF98 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r2, _080ADFCC + ldr r0, _080ADFD0 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080ADFD4 + str r1, [r0] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080ADFCC: .4byte gTasks +_080ADFD0: .4byte 0x02019204 +_080ADFD4: .4byte sub_80ADFD8 + thumb_func_end sub_80ADF98 + + thumb_func_start sub_80ADFD8 +sub_80ADFD8: @ 80ADFD8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080AE000 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ADFFC + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080AE004 + ldr r1, _080AE008 + str r1, [r0] + ldr r0, _080AE00C + bl SetMainCallback2 +_080ADFFC: + pop {r0} + bx r0 + .align 2, 0 +_080AE000: .4byte gPaletteFade +_080AE004: .4byte gUnknown_0300485C +_080AE008: .4byte sub_80AE010 +_080AE00C: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80ADFD8 + + thumb_func_start sub_80AE010 +sub_80AE010: @ 80AE010 + push {lr} + bl ScriptContext2_Disable + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80AE010 + + thumb_func_start sub_80AE020 +sub_80AE020: @ 80AE020 + push {r4,lr} + adds r4, r0, 0 + b _080AE028 +_080AE026: + adds r4, 0x1 +_080AE028: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080AE04C + cmp r0, 0xFC + bne _080AE026 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _080AE026 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + movs r1, 0xFF + strb r1, [r0] + adds r1, r4, 0x2 + bl StringAppend +_080AE04C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AE020 + + thumb_func_start sub_80AE054 +sub_80AE054: @ 80AE054 + push {lr} + ldr r0, _080AE06C + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AE068 + ldr r1, _080AE070 + movs r0, 0x3 + strb r0, [r1] +_080AE068: + pop {r0} + bx r0 + .align 2, 0 +_080AE06C: .4byte gUnknown_0203869A +_080AE070: .4byte gUnknown_02038695 + thumb_func_end sub_80AE054 + + thumb_func_start sub_80AE074 +sub_80AE074: @ 80AE074 + push {lr} + ldr r0, _080AE088 + ldr r1, _080AE08C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080AE090 + movs r0, 0 + b _080AE092 + .align 2, 0 +_080AE088: .4byte gUnknown_02038695 +_080AE08C: .4byte gUnknown_0203869B +_080AE090: + movs r0, 0x1 +_080AE092: + pop {r1} + bx r1 + thumb_func_end sub_80AE074 + + thumb_func_start sub_80AE098 +sub_80AE098: @ 80AE098 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, _080AE0F0 + mov r0, sp + adds r1, r6, 0 + bl StringCopy + mov r0, sp + bl SkipExtCtrlCodes + ldr r0, _080AE0F4 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE0CE + mov r0, sp + ldrb r2, [r0, 0x5] + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + mov r0, sp + strb r2, [r0, 0x7] +_080AE0CE: + ldr r5, _080AE0F8 + ldrb r0, [r5] + lsls r0, 6 + ldr r4, _080AE0FC + adds r0, r4 + mov r1, sp + movs r2, 0x8 + bl memcpy + ldrb r0, [r6, 0x8] + cmp r0, 0 + bne _080AE100 + ldrb r0, [r5] + lsls r0, 6 + adds r0, r4, r0 + movs r1, 0xD8 + b _080AE108 + .align 2, 0 +_080AE0F0: .4byte gSaveBlock2 +_080AE0F4: .4byte gUnknown_0203869A +_080AE0F8: .4byte gUnknown_02038695 +_080AE0FC: .4byte gUnknown_0203857D +_080AE100: + ldrb r0, [r5] + lsls r0, 6 + adds r0, r4, r0 + movs r1, 0xD9 +_080AE108: + strb r1, [r0, 0x8] + ldr r5, _080AE17C + ldr r4, _080AE180 + ldrb r0, [r4] + lsls r0, 6 + adds r1, r5, 0 + adds r1, 0x18 + adds r0, r1 + movs r1, 0 + str r1, [r0] + ldrb r0, [r4] + lsls r0, 6 + adds r0, r5 + adds r0, 0x2C + strb r1, [r0] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080AE184 + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + ldrb r1, [r4] + lsls r1, 6 + adds r1, r5 + strh r0, [r1] + adds r0, r6, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + ldr r0, _080AE188 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE19A + mov r0, sp + bl SkipExtCtrlCodes + adds r0, r6, 0 + movs r1, 0x3 + bl GetMonData + cmp r0, 0x1 + bne _080AE18C + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + movs r0, 0xFC + strb r0, [r1, 0xA] + b _080AE19A + .align 2, 0 +_080AE17C: .4byte gUnknown_02038570 +_080AE180: .4byte gUnknown_02038695 +_080AE184: .4byte gPlayerParty +_080AE188: .4byte gUnknown_0203869A +_080AE18C: + mov r0, sp + ldrb r2, [r0, 0x5] + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + mov r0, sp + strb r2, [r0, 0xA] +_080AE19A: + ldr r5, _080AE2C4 + ldrb r0, [r5] + lsls r0, 6 + ldr r1, _080AE2C8 + mov r8, r1 + add r0, r8 + mov r1, sp + movs r2, 0xB + bl memcpy + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _080AE2CC + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x16 + bl GetMonData + mov r6, r8 + subs r6, 0x2 + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x26 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x17 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x18 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x28 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x21 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x29 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2F + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x2A + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x30 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x2B + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0xD + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x1E] + adds r0, r4, 0 + movs r1, 0xE + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x20] + adds r0, r4, 0 + movs r1, 0xF + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x22] + adds r0, r4, 0 + movs r1, 0x10 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x24] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + mov r2, r8 + adds r2, 0x36 + adds r1, r2 + str r0, [r1] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + movs r2, 0x3A + add r8, r2 + add r1, r8 + str r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r2, r0, 16 + mov r8, r2 + ldrb r0, [r5] + lsls r0, 6 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x26 + ldrb r3, [r0] + adds r0, 0x1 + ldrb r4, [r0] + adds r0, 0x1 + ldrb r5, [r0] + adds r0, 0x1 + ldrb r6, [r0] + adds r0, 0x1 + ldrb r7, [r0] + cmp r2, 0xFE + bne _080AE2D0 + adds r3, 0x14 + b _080AE31E + .align 2, 0 +_080AE2C4: .4byte gUnknown_02038695 +_080AE2C8: .4byte gUnknown_02038572 +_080AE2CC: .4byte gPlayerParty +_080AE2D0: + cmp r2, 0xFF + bne _080AE2E0 + lsls r0, r4, 16 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 + b _080AE31E +_080AE2E0: + movs r0, 0x80 + lsls r0, 1 + cmp r2, r0 + bne _080AE2F4 + lsls r0, r5, 16 + movs r2, 0xA0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + b _080AE31E +_080AE2F4: + ldr r0, _080AE308 + cmp r2, r0 + bne _080AE30C + lsls r0, r6, 16 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + lsrs r6, r0, 16 + b _080AE31E + .align 2, 0 +_080AE308: .4byte 0x00000101 +_080AE30C: + movs r0, 0x81 + lsls r0, 1 + cmp r8, r0 + bne _080AE31E + lsls r0, r7, 16 + movs r2, 0xA0 + lsls r2, 13 + adds r0, r2 + lsrs r7, r0, 16 +_080AE31E: + cmp r3, 0xFF + ble _080AE324 + movs r3, 0xFF +_080AE324: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE32E + movs r4, 0xFF +_080AE32E: + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE338 + movs r5, 0xFF +_080AE338: + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE342 + movs r6, 0xFF +_080AE342: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE34C + movs r7, 0xFF +_080AE34C: + ldr r2, _080AE390 + ldr r1, _080AE394 + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x26 + strb r3, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x27 + strb r4, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x28 + strb r5, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x29 + strb r6, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x2A + strb r7, [r0] + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE390: .4byte gUnknown_02038570 +_080AE394: .4byte gUnknown_02038695 + thumb_func_end sub_80AE098 + + thumb_func_start sub_80AE398 +sub_80AE398: @ 80AE398 + push {r4-r7,lr} + sub sp, 0x40 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r6, 0 + bl sub_80AE054 + movs r5, 0 + ldr r2, _080AE470 +_080AE3AE: + ldrb r1, [r2, 0x1C] + lsls r0, r1, 30 + lsrs r0, 30 + cmp r7, r0 + bne _080AE3FE + cmp r4, 0 + bne _080AE3C2 + lsls r0, r1, 29 + cmp r0, 0 + blt _080AE3F2 +_080AE3C2: + cmp r4, 0x1 + bne _080AE3CE + ldrb r0, [r2, 0x1C] + lsls r0, 28 + cmp r0, 0 + blt _080AE3F2 +_080AE3CE: + cmp r4, 0x2 + bne _080AE3DA + ldrb r0, [r2, 0x1C] + lsls r0, 27 + cmp r0, 0 + blt _080AE3F2 +_080AE3DA: + cmp r4, 0x3 + bne _080AE3E6 + ldrb r0, [r2, 0x1C] + lsls r0, 26 + cmp r0, 0 + blt _080AE3F2 +_080AE3E6: + cmp r4, 0x4 + bne _080AE3FE + ldrb r0, [r2, 0x1C] + lsls r0, 25 + cmp r0, 0 + bge _080AE3FE +_080AE3F2: + adds r0, r6, 0 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + add r0, sp + strb r5, [r0] +_080AE3FE: + adds r2, 0x40 + adds r5, 0x1 + cmp r5, 0x3B + ble _080AE3AE + mov r0, sp + adds r1, r0, r6 + movs r0, 0xFF + strb r0, [r1] + movs r5, 0 + ldr r7, _080AE470 +_080AE412: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080AE474 + lsls r2, r5, 6 + adds r2, r1 + mov r1, sp + adds r4, r1, r0 + ldrb r1, [r4] + lsls r1, 6 + adds r1, r7 + adds r0, r2, 0 + movs r2, 0x40 + bl memcpy + ldrb r0, [r4] + adds r2, r5, 0x1 + subs r1, r6, 0x1 + cmp r0, 0xFF + beq _080AE454 + adds r3, r4, 0 +_080AE448: + ldrb r0, [r3, 0x1] + strb r0, [r3] + adds r3, 0x1 + ldrb r0, [r3] + cmp r0, 0xFF + bne _080AE448 +_080AE454: + lsls r0, r1, 24 + lsrs r6, r0, 24 + adds r5, r2, 0 + cmp r5, 0x2 + ble _080AE412 + ldr r0, _080AE478 + ldrb r0, [r0] + bl sub_80AE098 + add sp, 0x40 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE470: .4byte gUnknown_083C9408 +_080AE474: .4byte gUnknown_02038570 +_080AE478: .4byte gUnknown_02038694 + thumb_func_end sub_80AE398 + + thumb_func_start sub_80AE47C +sub_80AE47C: @ 80AE47C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _080AE48E + movs r0, 0x3 + b _080AE50A +_080AE48E: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080AE49E + movs r0, 0x4 + b _080AE50A +_080AE49E: + ldr r0, _080AE4B0 + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080AE4F2 + lsls r0, 2 + ldr r1, _080AE4B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE4B0: .4byte gUnknown_0203869C +_080AE4B4: .4byte _080AE4B8 + .align 2, 0 +_080AE4B8: + .4byte _080AE4CC + .4byte _080AE4D2 + .4byte _080AE4D8 + .4byte _080AE4DE + .4byte _080AE4E4 +_080AE4CC: + adds r0, r4, 0 + movs r1, 0x32 + b _080AE4E8 +_080AE4D2: + adds r0, r4, 0 + movs r1, 0x33 + b _080AE4E8 +_080AE4D8: + adds r0, r4, 0 + movs r1, 0x34 + b _080AE4E8 +_080AE4DE: + adds r0, r4, 0 + movs r1, 0x35 + b _080AE4E8 +_080AE4E4: + adds r0, r4, 0 + movs r1, 0x36 +_080AE4E8: + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + b _080AE4F6 +_080AE4F2: + movs r0, 0 + b _080AE50A +_080AE4F6: + ldr r0, _080AE510 + adds r2, r1, 0 + ldrh r1, [r0] + movs r0, 0x2 + cmp r2, r1 + bhi _080AE50A + movs r0, 0 + cmp r2, r1 + bcc _080AE50A + movs r0, 0x1 +_080AE50A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080AE510: .4byte gUnknown_0203869E + thumb_func_end sub_80AE47C + + thumb_func_start sub_80AE514 +sub_80AE514: @ 80AE514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r5, 0 + ldr r7, _080AE588 + adds r0, r7, 0x1 + mov r9, r0 + ldr r6, _080AE58C + adds r3, r6, 0x1 + mov r8, r3 +_080AE52C: + ldr r4, _080AE590 + adds r4, r5, r4 + ldrb r0, [r4] + lsls r0, 1 + adds r1, r0, r7 + ldrb r2, [r1] + mov r3, r9 + adds r1, r0, r3 + ldrb r3, [r1] + adds r0, r6 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrb r0, [r0] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080AE594 + movs r1, 0 + bl FillWindowRect_DefaultPalette + adds r0, r5, 0 + bl sub_80AE5BC + adds r0, r5, 0 + bl sub_80AE6CC + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AE52C + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE588: .4byte gUnknown_083CA308 +_080AE58C: .4byte gUnknown_083CA310 +_080AE590: .4byte gUnknown_02038696 +_080AE594: .4byte gUnknown_03004210 + thumb_func_end sub_80AE514 + + thumb_func_start PutWindowTilemap +PutWindowTilemap: @ 80AE598 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r4, r2, 24 + lsrs r4, 24 + ldr r1, _080AE5B8 + bl StringCopy + strb r4, [r0] + adds r0, 0x1 + adds r1, r5, 0 + bl StringCopy + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AE5B8: .4byte gUnknown_083CC59C + thumb_func_end PutWindowTilemap + + thumb_func_start sub_80AE5BC +sub_80AE5BC: @ 80AE5BC + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r0, r1, 24 + movs r2, 0xA0 + lsls r2, 20 + adds r1, r2 + lsrs r1, 24 + bl sub_80AE5D4 + pop {r0} + bx r0 + thumb_func_end sub_80AE5BC + + thumb_func_start sub_80AE5D4 +sub_80AE5D4: @ 80AE5D4 + push {r4-r7,lr} + sub sp, 0x8 + adds r2, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080AE660 + ldr r1, _080AE664 + adds r0, r3, 0 + bl PutWindowTilemap + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x6 + strb r0, [r3, 0x1] + movs r0, 0x4 + strb r0, [r3, 0x2] + adds r3, 0x3 + movs r0, 0xBA + strb r0, [r3] + adds r3, 0x1 + ldr r0, _080AE668 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE67C + ldr r1, _080AE66C + lsls r0, r4, 3 + subs r0, r4 + lsls r2, r0, 2 + adds r0, r2, r1 + ldrh r6, [r0, 0x1A] + cmp r6, 0x1 + bne _080AE67C + adds r1, 0x8 + adds r1, r2, r1 + adds r0, r3, 0 + bl StringCopy + ldr r0, _080AE670 + ldr r1, _080AE660 + ldr r2, _080AE674 + adds r2, r4, r2 + ldrb r4, [r2] + movs r2, 0x16 + muls r2, r4 + movs r3, 0x94 + lsls r3, 2 + adds r2, r3 + ldr r5, _080AE678 + lsls r4, 1 + adds r3, r4, r5 + ldrb r3, [r3] + lsls r3, 27 + movs r7, 0xFB + lsls r7, 24 + adds r3, r7 + lsrs r3, 24 + adds r5, 0x1 + adds r4, r5 + ldrb r4, [r4] + lsls r4, 3 + str r4, [sp] + str r6, [sp, 0x4] + bl sub_8004D04 + b _080AE6B0 + .align 2, 0 +_080AE660: .4byte gUnknown_020238CC +_080AE664: .4byte gEmptyString_81E72B0 +_080AE668: .4byte gUnknown_0203869A +_080AE66C: .4byte gLinkPlayers +_080AE670: .4byte gUnknown_03004210 +_080AE674: .4byte gUnknown_02038696 +_080AE678: .4byte gUnknown_083CA310 +_080AE67C: + lsls r1, r4, 6 + ldr r0, _080AE6B8 + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + ldr r0, _080AE6BC + ldr r1, _080AE6C0 + ldr r2, _080AE6C4 + adds r2, r4, r2 + ldrb r4, [r2] + movs r2, 0x16 + muls r2, r4 + movs r3, 0x94 + lsls r3, 2 + adds r2, r3 + ldr r5, _080AE6C8 + lsls r4, 1 + adds r3, r4, r5 + ldrb r3, [r3] + adds r5, 0x1 + adds r4, r5 + ldrb r4, [r4] + str r4, [sp] + bl sub_8003460 +_080AE6B0: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE6B8: .4byte gUnknown_0203857D +_080AE6BC: .4byte gUnknown_03004210 +_080AE6C0: .4byte gUnknown_020238CC +_080AE6C4: .4byte gUnknown_02038696 +_080AE6C8: .4byte gUnknown_083CA310 + thumb_func_end sub_80AE5D4 + + thumb_func_start sub_80AE6CC +sub_80AE6CC: @ 80AE6CC + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r0, r1, 24 + movs r2, 0xA0 + lsls r2, 20 + adds r1, r2 + lsrs r1, 24 + bl sub_80AE6E4 + pop {r0} + bx r0 + thumb_func_end sub_80AE6CC + + thumb_func_start sub_80AE6E4 +sub_80AE6E4: @ 80AE6E4 + push {r4-r6,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r2, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080AE75C + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x6 + strb r0, [r3, 0x1] + movs r0, 0x4 + strb r0, [r3, 0x2] + adds r3, 0x3 + lsls r1, r4, 6 + ldr r0, _080AE760 + adds r1, r0 + adds r0, r3, 0 + bl PutWindowTilemap + adds r3, r0, 0 + movs r0, 0xFF + strb r0, [r3] + ldr r0, _080AE764 + ldr r1, _080AE75C + ldr r2, _080AE768 + adds r4, r2 + ldrb r4, [r4] + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + ldr r5, _080AE76C + lsls r4, 1 + adds r3, r4, r5 + ldrb r3, [r3] + lsls r3, 27 + movs r6, 0xFD + lsls r6, 24 + adds r3, r6 + lsrs r3, 24 + adds r5, 0x1 + adds r4, r5 + ldrb r4, [r4] + lsls r4, 3 + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + bl sub_8004D04 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE75C: .4byte gUnknown_020238CC +_080AE760: .4byte gUnknown_02038572 +_080AE764: .4byte gUnknown_03004210 +_080AE768: .4byte gUnknown_02038696 +_080AE76C: .4byte gUnknown_083CA308 + thumb_func_end sub_80AE6E4 + + thumb_func_start sub_80AE770 +sub_80AE770: @ 80AE770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + cmp r0, 0x4 + bhi _080AE7FC + lsls r0, 2 + ldr r1, _080AE788 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE788: .4byte _080AE78C + .align 2, 0 +_080AE78C: + .4byte _080AE7A0 + .4byte _080AE7B8 + .4byte _080AE7D0 + .4byte _080AE7E0 + .4byte _080AE7FC +_080AE7A0: + ldr r0, _080AE7B4 + lsls r2, 6 + adds r1, r2, r0 + adds r3, r1, 0 + adds r3, 0x26 + ldrb r5, [r3] + adds r3, 0x4 + ldrb r4, [r3] + adds r1, 0x27 + b _080AE80E + .align 2, 0 +_080AE7B4: .4byte gUnknown_02038570 +_080AE7B8: + ldr r0, _080AE7CC + lsls r2, 6 + adds r1, r2, r0 + adds r3, r1, 0 + adds r3, 0x27 + ldrb r5, [r3] + subs r3, 0x1 + ldrb r4, [r3] + adds r1, 0x28 + b _080AE80E + .align 2, 0 +_080AE7CC: .4byte gUnknown_02038570 +_080AE7D0: + ldr r1, _080AE7DC + lsls r2, 6 + adds r3, r2, r1 + adds r0, r3, 0 + adds r0, 0x28 + b _080AE7EA + .align 2, 0 +_080AE7DC: .4byte gUnknown_02038570 +_080AE7E0: + ldr r1, _080AE7F8 + lsls r2, 6 + adds r3, r2, r1 + adds r0, r3, 0 + adds r0, 0x29 +_080AE7EA: + ldrb r5, [r0] + subs r0, 0x1 + ldrb r4, [r0] + adds r0, 0x2 + ldrb r3, [r0] + adds r0, r1, 0 + b _080AE810 + .align 2, 0 +_080AE7F8: .4byte gUnknown_02038570 +_080AE7FC: + ldr r0, _080AE828 + lsls r2, 6 + adds r1, r2, r0 + adds r3, r1, 0 + adds r3, 0x2A + ldrb r5, [r3] + subs r3, 0x1 + ldrb r4, [r3] + adds r1, 0x26 +_080AE80E: + ldrb r3, [r1] +_080AE810: + adds r1, r2, r0 + adds r1, 0x2B + adds r0, r4, r3 + ldrb r1, [r1] + adds r0, r1 + asrs r0, 1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AE828: .4byte gUnknown_02038570 + thumb_func_end sub_80AE770 + + thumb_func_start sub_80AE82C +sub_80AE82C: @ 80AE82C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r6, _080AE854 +_080AE836: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80AE770 + lsls r1, r4, 1 + adds r1, r6 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AE836 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE854: .4byte gUnknown_02038670 + thumb_func_end sub_80AE82C + + thumb_func_start sub_80AE858 +sub_80AE858: @ 80AE858 + push {r4,r5,lr} + ldr r0, _080AE8A0 + bl LoadCompressedObjectPic + ldr r0, _080AE8A4 + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080AE8A8 + movs r1, 0x70 + movs r2, 0x24 + movs r3, 0x1E + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080AE8AC + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r5, r2, r4 + ldrb r3, [r5, 0x5] + movs r1, 0xF + ands r1, r3 + movs r3, 0x10 + orrs r1, r3 + strb r1, [r5, 0x5] + adds r4, 0x1C + adds r2, r4 + ldr r1, _080AE8B0 + str r1, [r2] + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AE8A0: .4byte gUnknown_083CA4BC +_080AE8A4: .4byte gContest2Pal +_080AE8A8: .4byte gSpriteTemplate_83CA4A4 +_080AE8AC: .4byte gSprites +_080AE8B0: .4byte SpriteCallbackDummy + thumb_func_end sub_80AE858 + + thumb_func_start sub_80AE8B4 +sub_80AE8B4: @ 80AE8B4 + push {lr} + ldr r0, _080AE8F8 + bl LoadCompressedObjectPic + ldr r0, _080AE8FC + bl LoadCompressedObjectPalette + ldr r0, _080AE900 + movs r1, 0x60 + movs r2, 0xA + movs r3, 0x1D + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AE904 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + movs r1, 0x3E + adds r1, r2 + mov r12, r1 + ldrb r1, [r1] + movs r3, 0x4 + orrs r1, r3 + mov r3, r12 + strb r1, [r3] + ldrh r1, [r2, 0x4] + lsls r1, 22 + lsrs r1, 22 + strh r1, [r2, 0x2E] + pop {r1} + bx r1 + .align 2, 0 +_080AE8F8: .4byte gUnknown_083CA4C4 +_080AE8FC: .4byte gUnknown_083CA4CC +_080AE900: .4byte gUnknown_083CA4D4 +_080AE904: .4byte gSprites + thumb_func_end sub_80AE8B4 + + thumb_func_start unref_sub_80AE908 +unref_sub_80AE908: @ 80AE908 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _080AE9D4 + mov r9, r0 + ldr r1, _080AE9D8 + mov r8, r1 + ldrb r0, [r1] + lsls r0, 6 + add r0, r9 + ldrh r5, [r0] + lsls r6, r5, 3 + ldr r0, _080AE9DC + adds r0, r6, r0 + ldr r2, _080AE9E0 + mov r10, r2 + lsls r2, r5, 2 + add r2, r10 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080AE9E4 + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + bl DecompressPicFromTable_2 + ldr r0, _080AE9E8 + adds r6, r0 + ldr r0, [r6] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + mov r1, r8 + ldrb r0, [r1] + lsls r0, 6 + add r0, r9 + ldrh r0, [r0] + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080AE9EC + mov r2, r8 + ldrb r1, [r2] + lsls r1, 6 + add r1, r9 + ldrh r1, [r1] + lsls r1, 2 + add r1, r10 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x70 + movs r3, 0x1E + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080AE9F0 + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r0, r3, r5 + ldrb r2, [r0, 0x5] + movs r1, 0xF + ands r1, r2 + movs r2, 0x10 + orrs r1, r2 + strb r1, [r0, 0x5] + adds r1, r5, 0 + adds r1, 0x1C + adds r1, r3, r1 + ldr r2, _080AE9F4 + str r2, [r1] + adds r5, 0x10 + adds r3, r5 + ldr r1, _080AE9F8 + str r1, [r3] + movs r1, 0 + bl StartSpriteAffineAnim + adds r0, r4, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080AE9D4: .4byte gUnknown_02038570 +_080AE9D8: .4byte gUnknown_02038695 +_080AE9DC: .4byte gMonFrontPicTable +_080AE9E0: .4byte gMonFrontPicCoords +_080AE9E4: .4byte gUnknown_081FAF4C +_080AE9E8: .4byte gMonPaletteTable +_080AE9EC: .4byte gUnknown_02024E8C +_080AE9F0: .4byte gSprites +_080AE9F4: .4byte SpriteCallbackDummy +_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18 + thumb_func_end unref_sub_80AE908 + + thumb_func_start sub_80AE9FC +sub_80AE9FC: @ 80AE9FC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + mov r8, r1 + adds r6, r2, 0 + lsls r0, 16 + lsrs r0, 16 + bl sub_80B2778 + mov r9, r0 + mov r5, r9 + lsls r0, r5, 3 + ldr r1, _080AEACC + adds r0, r1 + ldr r1, _080AEAD0 + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080AEAD4 + ldr r4, [r4] + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + bl sub_800D334 + adds r0, r5, 0 + mov r1, r8 + adds r2, r6, 0 + bl species_and_otid_get_pal + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + adds r0, r5, 0 + movs r1, 0 + bl GetMonSpriteTemplate_803C56C + ldr r4, _080AEAD8 + movs r0, 0x2 + adds r1, r5, 0 + movs r2, 0 + bl sub_8077E44 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + movs r1, 0x70 + movs r3, 0x1E + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080AEADC + mov r8, r0 + lsls r0, r7, 4 + adds r0, r7 + lsls r6, r0, 2 + mov r0, r8 + adds r4, r6, r0 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0x2 + bl sub_8079E90 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + mov r0, r8 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _080AEAE0 + str r1, [r0] + ldrb r0, [r4, 0x5] + lsrs r0, 4 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x32] + adds r0, r5, 0 + bl sub_80AEB1C + lsls r0, 24 + cmp r0, 0 + beq _080AEAE8 + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _080AEAE4 + b _080AEAF0 + .align 2, 0 +_080AEACC: .4byte gMonBackPicTable +_080AEAD0: .4byte gMonBackPicCoords +_080AEAD4: .4byte gUnknown_081FAF4C +_080AEAD8: .4byte gUnknown_02024E8C +_080AEADC: .4byte gSprites +_080AEAE0: .4byte SpriteCallbackDummy +_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18 +_080AEAE8: + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _080AEB14 +_080AEAF0: + str r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _080AEB18 + adds r0, r1 + movs r1, 0 + bl StartSpriteAffineAnim + adds r0, r7, 0 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC +_080AEB18: .4byte gSprites + thumb_func_end sub_80AE9FC + + thumb_func_start sub_80AEB1C +sub_80AEB1C: @ 80AEB1C + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC9 + beq _080AEB2A + movs r0, 0x1 + b _080AEB2C +_080AEB2A: + movs r0, 0 +_080AEB2C: + pop {r1} + bx r1 + thumb_func_end sub_80AEB1C + + thumb_func_start sub_80AEB30 +sub_80AEB30: @ 80AEB30 + push {lr} + ldr r0, _080AEB44 + bl sub_80AEB4C + ldr r0, _080AEB48 + bl sub_80AEB4C + pop {r0} + bx r0 + .align 2, 0 +_080AEB44: .4byte 0x0600c000 +_080AEB48: .4byte 0x0600e000 + thumb_func_end sub_80AEB30 + + thumb_func_start sub_80AEB4C +sub_80AEB4C: @ 80AEB4C + movs r1, 0xA0 + lsls r1, 3 + adds r2, r0, r1 + ldr r1, _080AEB60 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080AEB64 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bx lr + .align 2, 0 +_080AEB60: .4byte 0x040000d4 +_080AEB64: .4byte 0x80000140 + thumb_func_end sub_80AEB4C + + thumb_func_start sub_80AEB68 +sub_80AEB68: @ 80AEB68 + push {lr} + lsls r0, 16 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r2, _080AEB90 + ldr r1, _080AEB94 + lsrs r0, 13 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x8 + bhi _080AEBD0 + lsls r0, 2 + ldr r1, _080AEB98 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AEB90: .4byte gContestEffects +_080AEB94: .4byte gContestMoves +_080AEB98: .4byte _080AEB9C + .align 2, 0 +_080AEB9C: + .4byte _080AEBC0 + .4byte _080AEBC0 + .4byte _080AEBC8 + .4byte _080AEBC8 + .4byte _080AEBD0 + .4byte _080AEBD0 + .4byte _080AEBD0 + .4byte _080AEBD0 + .4byte _080AEBC0 +_080AEBC0: + ldr r0, _080AEBC4 + b _080AEBD2 + .align 2, 0 +_080AEBC4: .4byte 0x00009082 +_080AEBC8: + ldr r0, _080AEBCC + b _080AEBD2 + .align 2, 0 +_080AEBCC: .4byte 0x00009088 +_080AEBD0: + ldr r0, _080AEBE8 +_080AEBD2: + lsls r1, r3, 12 + movs r2, 0x90 + lsls r2, 8 + adds r1, r2 + lsls r0, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_080AEBE8: .4byte 0x00009086 + thumb_func_end sub_80AEB68 + + thumb_func_start sub_80AEBEC +sub_80AEBEC: @ 80AEBEC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080AEC74 + movs r1, 0x10 + str r1, [sp] + movs r1, 0x22 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xB + movs r3, 0x1F + bl FillWindowRect_DefaultPalette + ldr r1, _080AEC78 + lsls r0, r4, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + ldr r1, _080AEC7C + cmp r0, 0 + beq _080AEC34 + adds r1, 0x5 + cmp r0, 0x1 + beq _080AEC34 + adds r1, 0x5 + cmp r0, 0x2 + beq _080AEC34 + adds r1, 0x40 + cmp r0, 0x3 + bne _080AEC34 + subs r1, 0x20 +_080AEC34: + ldr r0, _080AEC74 + mov r8, r0 + ldr r6, _080AEC78 + lsls r5, r4, 3 + ldr r7, _080AEC80 + ldr r0, _080AEC84 + mov r9, r0 + ldr r4, _080AEC88 + ldr r3, _080AEC8C + movs r2, 0x4 +_080AEC48: + strh r1, [r3] + adds r0, r1, 0 + adds r0, 0x10 + strh r0, [r4] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r4, 0x2 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080AEC48 + adds r0, r5, r6 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0, r7 + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + bne _080AEC90 + movs r0, 0 + b _080AEC9C + .align 2, 0 +_080AEC74: .4byte gUnknown_03004210 +_080AEC78: .4byte gContestMoves +_080AEC7C: .4byte 0x00004040 +_080AEC80: .4byte gContestEffects +_080AEC84: .4byte gUnknown_083CADD4 +_080AEC88: .4byte 0x0600c816 +_080AEC8C: .4byte 0x0600c7d6 +_080AEC90: + ldrb r0, [r1, 0x1] + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 +_080AEC9C: + cmp r0, 0x8 + bls _080AECA2 + movs r0, 0x8 +_080AECA2: + movs r2, 0 + ldr r1, _080AECB8 + adds r4, r1, 0 + adds r1, 0x23 + adds r3, r1, 0 + ldr r1, _080AECBC +_080AECAE: + cmp r2, r0 + bge _080AECC0 + strh r4, [r1] + b _080AECC2 + .align 2, 0 +_080AECB8: .4byte 0x00005012 +_080AECBC: .4byte 0x0600c7ea +_080AECC0: + strh r3, [r1] +_080AECC2: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _080AECAE + adds r0, r5, r6 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0, r7 + ldrb r0, [r1, 0x2] + cmp r0, 0xFF + bne _080AECDC + movs r0, 0 + b _080AECE8 +_080AECDC: + ldrb r0, [r1, 0x2] + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 +_080AECE8: + cmp r0, 0x8 + bls _080AECEE + movs r0, 0x8 +_080AECEE: + movs r2, 0 + ldr r1, _080AED04 + adds r4, r1, 0 + adds r1, 0x22 + adds r3, r1, 0 + ldr r1, _080AED08 +_080AECFA: + cmp r2, r0 + bge _080AED0C + strh r4, [r1] + b _080AED0E + .align 2, 0 +_080AED04: .4byte 0x00005014 +_080AED08: .4byte 0x0600c82a +_080AED0C: + strh r3, [r1] +_080AED0E: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _080AECFA + adds r0, r5, r6 + ldrb r0, [r0] + lsls r0, 2 + add r0, r9 + ldr r1, [r0] + movs r2, 0xD9 + lsls r2, 2 + movs r0, 0x23 + str r0, [sp] + mov r0, r8 + movs r3, 0xB + bl sub_8003460 + ldr r1, _080AED50 + ldr r2, _080AED54 + movs r0, 0x1F + str r0, [sp] + mov r0, r8 + movs r3, 0x10 + bl sub_8003460 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AED50: .4byte gUnknown_083CC5A2 +_080AED54: .4byte 0x00000362 + thumb_func_end sub_80AEBEC + + thumb_func_start sub_80AED58 +sub_80AED58: @ 80AED58 + push {lr} + sub sp, 0x8 + ldr r0, _080AED78 + movs r1, 0x1C + str r1, [sp] + movs r1, 0x28 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xB + movs r3, 0x23 + bl FillWindowRect_DefaultPalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080AED78: .4byte gUnknown_03004210 + thumb_func_end sub_80AED58 + + thumb_func_start sub_80AED7C +sub_80AED7C: @ 80AED7C + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, _080AEDD8 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080AEDEC + cmp r6, 0 + beq _080AEDEC + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80AEB68 + lsls r0, 16 + lsrs r0, 16 + lsls r3, r5, 6 + ldr r1, _080AEDDC + adds r1, r3, r1 + strh r0, [r1] + ldr r1, _080AEDE0 + adds r1, r3, r1 + adds r2, r0, 0x1 + strh r2, [r1] + ldr r1, _080AEDE4 + adds r2, r3, r1 + adds r1, r0, 0 + adds r1, 0x10 + strh r1, [r2] + ldr r1, _080AEDE8 + adds r3, r1 + adds r0, 0x11 + strh r0, [r3] + b _080AEE08 + .align 2, 0 +_080AEDD8: .4byte gUnknown_02038696 +_080AEDDC: .4byte 0x0600c028 +_080AEDE0: .4byte 0x0600c02a +_080AEDE4: .4byte 0x0600c068 +_080AEDE8: .4byte 0x0600c06a +_080AEDEC: + lsls r1, r5, 6 + ldr r0, _080AEE10 + adds r0, r1, r0 + movs r2, 0 + strh r2, [r0] + ldr r0, _080AEE14 + adds r0, r1, r0 + strh r2, [r0] + ldr r3, _080AEE18 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080AEE1C + adds r1, r0 + strh r2, [r1] +_080AEE08: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AEE10: .4byte 0x0600c028 +_080AEE14: .4byte 0x0600c02a +_080AEE18: .4byte 0x0600c068 +_080AEE1C: .4byte 0x0600c06a + thumb_func_end sub_80AED7C + + thumb_func_start unref_sub_80AEE20 +unref_sub_80AEE20: @ 80AEE20 + push {r4,lr} + movs r4, 0 +_080AEE24: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080AEE48 + adds r0, r1 + ldrh r0, [r0, 0x6] + adds r1, r4, 0 + bl sub_80AED7C + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AEE24 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEE48: .4byte 0x02019260 + thumb_func_end unref_sub_80AEE20 + + thumb_func_start sub_80AEE4C +sub_80AEE4C: @ 80AEE4C + ldr r0, _080AEE50 + bx lr + .align 2, 0 +_080AEE50: .4byte 0x00002034 + thumb_func_end sub_80AEE4C + + thumb_func_start sub_80AEE54 +sub_80AEE54: @ 80AEE54 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + lsls r5, r7, 3 + subs r0, r5, r7 + lsls r0, 2 + ldr r1, _080AEE84 + adds r0, r1 + ldrb r0, [r0, 0x10] + movs r2, 0x30 + ands r2, r0 + mov r10, r1 + cmp r2, 0 + bne _080AEE88 + movs r0, 0 + b _080AEF3C + .align 2, 0 +_080AEE84: .4byte 0x02019260 +_080AEE88: + ldr r0, _080AEEB0 + adds r0, r7, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r2, 0x10 + bne _080AEEF0 + adds r0, r7, 0 + bl sub_80AEE4C + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + movs r4, 0 + adds r6, r5, 0 + b _080AEEC4 + .align 2, 0 +_080AEEB0: .4byte gUnknown_02038696 +_080AEEB4: + mov r1, r9 + adds r0, r1, r4 + lsls r0, 6 + ldr r1, _080AEEE8 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + adds r4, 0x1 +_080AEEC4: + subs r0, r6, r7 + lsls r0, 2 + ldr r1, _080AEEEC + adds r5, r0, r1 + movs r0, 0xD + ldrsb r0, [r5, r0] + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + cmp r0, r4 + bgt _080AEEB4 + ldr r0, [sp] + cmp r0, 0 + beq _080AEF3A + movs r0, 0x5B + b _080AEF2C + .align 2, 0 +_080AEEE8: .4byte 0x0600c026 +_080AEEEC: .4byte 0x02019260 +_080AEEF0: + movs r1, 0 + mov r8, r1 + movs r4, 0x3 + adds r6, r5, 0 + b _080AEF0A +_080AEEFA: + mov r1, r9 + adds r0, r1, r4 + lsls r0, 6 + ldr r1, _080AEF4C + adds r0, r1 + mov r1, r8 + strh r1, [r0] + subs r4, 0x1 +_080AEF0A: + subs r0, r6, r7 + lsls r0, 2 + mov r1, r10 + adds r5, r0, r1 + movs r0, 0xD + ldrsb r0, [r5, r0] + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + cmp r0, r4 + blt _080AEEFA + ldr r0, [sp] + cmp r0, 0 + beq _080AEF3A + movs r0, 0x26 +_080AEF2C: + bl PlaySE + ldrb r1, [r5, 0x10] + movs r0, 0x31 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x10] +_080AEF3A: + movs r0, 0x1 +_080AEF3C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AEF4C: .4byte 0x0600bfe6 + thumb_func_end sub_80AEE54 + + thumb_func_start sub_80AEF50 +sub_80AEF50: @ 80AEF50 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r5, 0 +_080AEF5A: + ldr r0, _080AEF80 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80AEE4C + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 + lsls r7, r5, 3 + adds r2, r5, 0x1 + b _080AEF92 + .align 2, 0 +_080AEF80: .4byte gUnknown_02038696 +_080AEF84: + mov r1, r8 + adds r0, r1, r4 + lsls r0, 6 + ldr r3, _080AEFE0 + adds r0, r3 + strh r6, [r0] + adds r4, 0x1 +_080AEF92: + subs r0, r7, r5 + lsls r0, 2 + ldr r1, _080AEFE4 + adds r0, r1 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + movs r1, 0xA + str r2, [sp] + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + ldr r2, [sp] + cmp r4, r0 + blt _080AEF84 + movs r6, 0 + cmp r4, 0x2 + bgt _080AEFCE + lsls r0, r4, 6 + ldr r1, _080AEFE0 + adds r0, r1 + mov r3, r8 + lsls r1, r3, 6 + adds r0, r1 +_080AEFC4: + strh r6, [r0] + adds r0, 0x40 + adds r4, 0x1 + cmp r4, 0x2 + ble _080AEFC4 +_080AEFCE: + adds r5, r2, 0 + cmp r5, 0x3 + ble _080AEF5A + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AEFE0: .4byte 0x0600c026 +_080AEFE4: .4byte 0x02019260 + thumb_func_end sub_80AEF50 + + thumb_func_start sub_80AEFE8 +sub_80AEFE8: @ 80AEFE8 + push {lr} + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + cmp r1, 0x4 + bhi _080AF02A + lsls r0, r1, 2 + ldr r1, _080AF000 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AF000: .4byte _080AF004 + .align 2, 0 +_080AF004: + .4byte _080AF018 + .4byte _080AF01C + .4byte _080AF020 + .4byte _080AF024 + .4byte _080AF028 +_080AF018: + movs r0, 0x80 + b _080AF02A +_080AF01C: + movs r0, 0x84 + b _080AF02A +_080AF020: + movs r0, 0x86 + b _080AF02A +_080AF024: + movs r0, 0x88 + b _080AF02A +_080AF028: + movs r0, 0x82 +_080AF02A: + movs r1, 0x90 + lsls r1, 8 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80AEFE8 + + thumb_func_start sub_80AF038 +sub_80AF038: @ 80AF038 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r5, 0x1 + movs r4, 0 + ldr r0, _080AF074 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + ldr r1, _080AF078 + adds r2, r0, r1 + ldr r0, [r2, 0x10] + ldr r1, _080AF07C + ands r0, r1 + cmp r0, 0 + bne _080AF06C + ldrb r0, [r2, 0xF] + cmp r0, 0 + beq _080AF080 +_080AF06C: + adds r0, r3, 0 + movs r1, 0 + b _080AF0A6 + .align 2, 0 +_080AF074: .4byte gUnknown_02038696 +_080AF078: .4byte 0x02019260 +_080AF07C: .4byte 0x00ff0003 +_080AF080: + ldrb r1, [r2, 0xC] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080AF090 + adds r0, r3, 0 + movs r1, 0x1 + b _080AF0A6 +_080AF090: + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AF0A2 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AF0B0 +_080AF0A2: + adds r0, r3, 0 + movs r1, 0x2 +_080AF0A6: + bl sub_80AEFE8 + lsls r0, 16 + lsrs r4, r0, 16 + b _080AF0B2 +_080AF0B0: + movs r5, 0 +_080AF0B2: + cmp r5, 0 + beq _080AF0EC + lsls r2, r6, 6 + ldr r0, _080AF0DC + adds r0, r2, r0 + strh r4, [r0] + ldr r0, _080AF0E0 + adds r0, r2, r0 + adds r1, r4, 0x1 + strh r1, [r0] + ldr r0, _080AF0E4 + adds r1, r2, r0 + adds r0, r4, 0 + adds r0, 0x10 + strh r0, [r1] + ldr r0, _080AF0E8 + adds r2, r0 + adds r0, r4, 0 + adds r0, 0x11 + strh r0, [r2] + b _080AF106 + .align 2, 0 +_080AF0DC: .4byte 0x0600c028 +_080AF0E0: .4byte 0x0600c02a +_080AF0E4: .4byte 0x0600c068 +_080AF0E8: .4byte 0x0600c06a +_080AF0EC: + lsls r1, r6, 6 + ldr r0, _080AF110 + adds r0, r1, r0 + strh r5, [r0] + ldr r0, _080AF114 + adds r0, r1, r0 + strh r5, [r0] + ldr r2, _080AF118 + adds r0, r1, r2 + strh r5, [r0] + ldr r0, _080AF11C + adds r1, r0 + strh r5, [r1] +_080AF106: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080AF110: .4byte 0x0600c028 +_080AF114: .4byte 0x0600c02a +_080AF118: .4byte 0x0600c068 +_080AF11C: .4byte 0x0600c06a + thumb_func_end sub_80AF038 + + thumb_func_start sub_80AF120 +sub_80AF120: @ 80AF120 + push {r4,lr} + movs r4, 0 +_080AF124: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80AF038 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AF124 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF120 + + thumb_func_start sub_80AF138 +sub_80AF138: @ 80AF138 + push {lr} + sub sp, 0x8 + ldr r0, _080AF158 + movs r1, 0x11 + str r1, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x1 + movs r3, 0xF + bl FillWindowRect_DefaultPalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080AF158: .4byte gUnknown_03004210 + thumb_func_end sub_80AF138 + + thumb_func_start sub_80AF15C +sub_80AF15C: @ 80AF15C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + adds r0, r4, 0 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + beq _080AF174 + movs r0, 0 + b _080AF1AA +_080AF174: + ldr r0, _080AF190 + ldrb r0, [r0] + cmp r4, r0 + beq _080AF198 + adds r0, r4, 0 + bl sub_81288F4 + bl sub_8128944 + lsls r0, 24 + ldr r2, _080AF194 + lsrs r0, 23 + lsls r1, r4, 6 + b _080AF1A2 + .align 2, 0 +_080AF190: .4byte gUnknown_02038695 +_080AF194: .4byte gUnknown_02038570 +_080AF198: + ldr r2, _080AF1B0 + ldr r0, _080AF1B4 + ldrb r0, [r0] + lsls r0, 1 + lsls r1, r5, 6 +_080AF1A2: + adds r0, r1 + adds r2, 0x1E + adds r0, r2 + ldrh r0, [r0] +_080AF1AA: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AF1B0: .4byte gUnknown_02038570 +_080AF1B4: .4byte 0x02019204 + thumb_func_end sub_80AF15C + + thumb_func_start sub_80AF1B8 +sub_80AF1B8: @ 80AF1B8 + push {r4,lr} + movs r4, 0 +_080AF1BC: + adds r0, r4, 0 + bl sub_80AF15C + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r2, _080AF1E0 + adds r1, r2 + strh r0, [r1, 0x6] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF1BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF1E0: .4byte 0x02019260 + thumb_func_end sub_80AF1B8 + + thumb_func_start sub_80AF1E4 +sub_80AF1E4: @ 80AF1E4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _080AF1FC + adds r0, r5, 0 + adds r0, 0xA + lsls r0, 24 + lsrs r3, r0, 24 + b _080AF1FE +_080AF1FC: + movs r3, 0xE +_080AF1FE: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + ldr r1, _080AF21C + adds r1, r0, r1 + ldrh r0, [r1, 0x6] + cmp r0, 0 + bne _080AF228 + ldr r0, _080AF220 + ldr r1, _080AF224 + adds r2, r3, 0 + bl PutWindowTilemap + b _080AF23A + .align 2, 0 +_080AF21C: .4byte 0x02019260 +_080AF220: .4byte gUnknown_020238CC +_080AF224: .4byte gUnknownText_MissedTurn +_080AF228: + ldr r0, _080AF270 + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AF274 + adds r1, r2 + adds r2, r3, 0 + bl PutWindowTilemap +_080AF23A: + adds r0, r5, 0 + bl sub_80AF2A0 + ldr r0, _080AF278 + ldr r1, _080AF270 + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 18 + movs r3, 0xAE + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + ldr r4, _080AF27C + lsls r5, 1 + adds r3, r5, r4 + ldrb r3, [r3] + adds r4, 0x1 + adds r5, r4 + ldrb r4, [r5] + str r4, [sp] + bl sub_8003460 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF270: .4byte gUnknown_020238CC +_080AF274: .4byte gMoveNames +_080AF278: .4byte gUnknown_03004210 +_080AF27C: .4byte gUnknown_083CA318 + thumb_func_end sub_80AF1E4 + + thumb_func_start unref_sub_80AF280 +unref_sub_80AF280: @ 80AF280 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_080AF288: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80AF1E4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF288 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end unref_sub_80AF280 + + thumb_func_start sub_80AF2A0 +sub_80AF2A0: @ 80AF2A0 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + ldr r4, _080AF2D8 + ldr r1, _080AF2DC + lsrs r0, 23 + adds r2, r0, r1 + ldrb r2, [r2] + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + adds r0, r2, 0x7 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + bl FillWindowRect_DefaultPalette + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF2D8: .4byte gUnknown_03004210 +_080AF2DC: .4byte gUnknown_083CA318 + thumb_func_end sub_80AF2A0 + + thumb_func_start unref_sub_80AF2E0 +unref_sub_80AF2E0: @ 80AF2E0 + push {r4,lr} + movs r4, 0 +_080AF2E4: + adds r0, r4, 0 + bl sub_80AF2A0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF2E4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_80AF2E0 + + thumb_func_start sub_80AF2FC +sub_80AF2FC: @ 80AF2FC + push {r4-r7,lr} + sub sp, 0x8 + movs r4, 0 + ldr r2, _080AF398 +_080AF304: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2] + ldrh r3, [r0, 0x4] + adds r1, r3 + strh r1, [r0, 0x4] + lsls r0, r4, 1 + add r0, sp + strh r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF304 + movs r4, 0 +_080AF326: + movs r2, 0x3 + cmp r2, r4 + bls _080AF354 +_080AF32C: + subs r5, r2, 0x1 + lsls r0, r5, 1 + mov r7, sp + adds r3, r7, r0 + lsls r0, r2, 1 + adds r2, r7, r0 + ldrh r6, [r3] + movs r0, 0 + ldrsh r1, [r3, r0] + movs r7, 0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080AF34C + ldrh r0, [r2] + strh r6, [r2] + strh r0, [r3] +_080AF34C: + lsls r0, r5, 24 + lsrs r2, r0, 24 + cmp r2, r4 + bhi _080AF32C +_080AF354: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080AF326 + movs r4, 0 + ldr r0, _080AF398 + mov r12, r0 + movs r7, 0x4 + negs r7, r7 + movs r6, 0x3 +_080AF36A: + movs r2, 0 + lsls r0, r4, 3 + adds r5, r4, 0x1 + subs r0, r4 + lsls r0, 2 + mov r1, r12 + adds r3, r0, r1 + movs r4, 0x4 + ldrsh r1, [r3, r4] +_080AF37C: + lsls r0, r2, 1 + add r0, sp + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r1, r0 + bne _080AF39C + ands r2, r6 + ldrb r1, [r3, 0xB] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0xB] + b _080AF3A6 + .align 2, 0 +_080AF398: .4byte 0x02019260 +_080AF39C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080AF37C +_080AF3A6: + lsls r0, r5, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF36A + movs r0, 0x1 + bl sub_80B0F28 + bl sub_80B159C + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AF2FC + + thumb_func_start sub_80AF3C0 +sub_80AF3C0: @ 80AF3C0 + push {lr} + ldr r2, _080AF3D0 + adds r3, r2, 0 +_080AF3C6: + ldrh r0, [r2, 0x6] + cmp r0, 0 + bne _080AF3D4 + movs r1, 0x5 + b _080AF3F2 + .align 2, 0 +_080AF3D0: .4byte 0x02019260 +_080AF3D4: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + cmp r0, 0 + ble _080AF3F2 + movs r1, 0x1 + cmp r0, 0x1D + ble _080AF3F2 + movs r1, 0x2 + cmp r0, 0x3B + ble _080AF3F2 + movs r1, 0x4 + cmp r0, 0x4F + bgt _080AF3F2 + movs r1, 0x3 +_080AF3F2: + strb r1, [r2, 0x1A] + adds r2, 0x1C + adds r0, r3, 0 + adds r0, 0x54 + cmp r2, r0 + ble _080AF3C6 + pop {r0} + bx r0 + thumb_func_end sub_80AF3C0 + + thumb_func_start sub_80AF404 +sub_80AF404: @ 80AF404 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080AF42C + adds r2, r1, r0 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AF428 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AF430 +_080AF428: + movs r0, 0 + b _080AF432 + .align 2, 0 +_080AF42C: .4byte 0x02019260 +_080AF430: + movs r0, 0x1 +_080AF432: + pop {r1} + bx r1 + thumb_func_end sub_80AF404 + + thumb_func_start sub_80AF438 +sub_80AF438: @ 80AF438 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r0, _080AF594 + mov r10, r0 + movs r1, 0 + mov r12, r1 + movs r0, 0x7 + negs r0, r0 + mov r9, r0 + movs r1, 0x2 + negs r1, r1 + mov r8, r1 +_080AF458: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + mov r1, r10 + adds r3, r0, r1 + movs r0, 0 + strh r0, [r3, 0x2] + strh r0, [r3] + mov r0, r12 + strb r0, [r3, 0x12] + ldrb r2, [r3, 0xC] + movs r0, 0x6 + ands r0, r2 + cmp r0, 0 + beq _080AF48A + lsls r0, r2, 29 + lsrs r0, 30 + subs r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 1 + mov r1, r9 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] +_080AF48A: + mov r1, r12 + strb r1, [r3, 0xE] + ldrb r0, [r3, 0x10] + mov r1, r8 + ands r1, r0 + mov r0, r12 + strb r0, [r3, 0xF] + movs r0, 0x3 + negs r0, r0 + ands r1, r0 + movs r6, 0x5 + negs r6, r6 + ands r1, r6 + movs r7, 0x9 + negs r7, r7 + ands r1, r7 + ldrb r0, [r3, 0xC] + mov r4, r8 + ands r4, r0 + strb r4, [r3, 0xC] + movs r0, 0xFF + strb r0, [r3, 0x13] + movs r0, 0x1 + negs r0, r0 + strb r0, [r3, 0x14] + subs r0, 0x30 + ands r1, r0 + strb r1, [r3, 0x10] + ldrb r2, [r3, 0x15] + lsls r1, r2, 31 + lsrs r1, 31 + lsls r1, 2 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + mov r1, r8 + ands r0, r1 + strb r0, [r3, 0x15] + ldrb r0, [r3, 0x11] + movs r2, 0x4 + negs r2, r2 + ands r2, r0 + movs r0, 0x21 + negs r0, r0 + ands r2, r0 + strb r2, [r3, 0x11] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _080AF500 + adds r0, r4, 0 + mov r1, r9 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r3, 0xC] + adds r0, r2, 0 + ands r0, r6 + strb r0, [r3, 0x11] +_080AF500: + ldrb r2, [r3, 0x11] + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080AF518 + ldrb r0, [r3, 0xB] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0xB] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r3, 0x11] +_080AF518: + ldrb r0, [r3, 0x11] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r3, 0x11] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AF458 + movs r5, 0 + mov r6, r10 + mov r9, r5 + adds r7, r6, 0 + subs r7, 0x5C + movs r0, 0x18 + negs r0, r0 + adds r0, r6 + mov r8, r0 +_080AF53E: + lsls r4, r5, 3 + subs r4, r5 + lsls r4, 2 + adds r4, r6 + ldrh r2, [r4, 0x6] + strh r2, [r4, 0x8] + lsls r1, r5, 1 + ldrb r0, [r7, 0x1] + lsls r0, 3 + adds r1, r0 + adds r0, r6, 0 + subs r0, 0x40 + adds r0, r1 + strh r2, [r0] + ldrh r0, [r4, 0x6] + bl contest_get_move_excitement + ldrb r1, [r7, 0x1] + lsls r1, 2 + adds r1, r5, r1 + add r1, r8 + strb r0, [r1] + mov r1, r9 + strh r1, [r4, 0x6] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AF53E + ldr r2, _080AF598 + ldrb r1, [r2, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF594: .4byte 0x02019260 +_080AF598: .4byte 0x02019328 + thumb_func_end sub_80AF438 + + thumb_func_start sub_80AF59C +sub_80AF59C: @ 80AF59C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080AF5C4 + adds r2, r1, r0 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AF5C0 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AF5C8 +_080AF5C0: + movs r0, 0x1 + b _080AF5CA + .align 2, 0 +_080AF5C4: .4byte 0x02019260 +_080AF5C8: + movs r0, 0 +_080AF5CA: + pop {r1} + bx r1 + thumb_func_end sub_80AF59C + + thumb_func_start unref_sub_80AF5D0 +unref_sub_80AF5D0: @ 80AF5D0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r1, _080AF5E8 + ldrb r1, [r1] + cmp r0, r1 + beq _080AF600 +_080AF5E2: + movs r0, 0x1 + b _080AF626 + .align 2, 0 +_080AF5E8: .4byte gUnknown_02038695 +_080AF5EC: + ldrb r0, [r4, 0x6] + movs r1, 0x1 + b _080AF5F6 +_080AF5F2: + ldrb r0, [r4, 0x6] + movs r1, 0x2 +_080AF5F6: + orrs r0, r1 + strb r0, [r4, 0x6] + b _080AF5E2 +_080AF5FC: + strb r3, [r2] + b _080AF5E2 +_080AF600: + movs r0, 0 + ldr r4, _080AF62C + adds r5, r4, 0x2 +_080AF606: + cmp r3, 0x3 + beq _080AF5EC + cmp r3, 0x4 + beq _080AF5F2 + adds r2, r0, r5 + ldrb r1, [r2] + cmp r1, r3 + beq _080AF5E2 + cmp r1, 0xFF + beq _080AF5FC + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080AF606 + movs r0, 0 +_080AF626: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AF62C: .4byte 0x02019204 + thumb_func_end unref_sub_80AF5D0 + + thumb_func_start sub_80AF630 +sub_80AF630: @ 80AF630 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80AF688 + ldr r1, _080AF65C + lsls r4, 1 + adds r1, r4, r1 + strh r0, [r1] + ldr r2, _080AF660 + adds r2, r4, r2 + ldr r1, _080AF664 + adds r4, r1 + ldrh r4, [r4] + adds r0, r4 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF65C: .4byte gUnknown_02038688 +_080AF660: .4byte gUnknown_02038678 +_080AF664: .4byte gUnknown_02038670 + thumb_func_end sub_80AF630 + + thumb_func_start sub_80AF668 +sub_80AF668: @ 80AF668 + push {r4,lr} + movs r4, 0 +_080AF66C: + adds r0, r4, 0 + bl sub_80AF630 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF66C + bl sub_80AF6A0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF668 + + thumb_func_start sub_80AF688 +sub_80AF688: @ 80AF688 + lsls r0, 24 + ldr r1, _080AF69C + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 17 + asrs r0, 16 + bx lr + .align 2, 0 +_080AF69C: .4byte gUnknown_02038680 + thumb_func_end sub_80AF688 + + thumb_func_start sub_80AF6A0 +sub_80AF6A0: @ 80AF6A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x70 + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + movs r0, 0 + mov r9, r0 + mov r1, sp + adds r1, 0x8 + str r1, [sp, 0x64] + mov r3, sp + adds r3, 0xC + str r3, [sp, 0x68] + mov r6, sp + adds r6, 0x14 + str r6, [sp, 0x6C] + mov r4, sp +_080AF6CE: + bl Random + strh r0, [r4] + movs r2, 0 + cmp r2, r9 + bge _080AF70C + mov r1, sp + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1] + cmp r0, r1 + bne _080AF6F0 + subs r4, 0x2 + movs r7, 0x1 + negs r7, r7 + add r9, r7 + b _080AF70C +_080AF6F0: + adds r2, 0x1 + cmp r2, r9 + bge _080AF70C + lsls r0, r2, 1 + mov r3, sp + adds r1, r3, r0 + ldrh r0, [r4] + ldrh r1, [r1] + cmp r0, r1 + bne _080AF6F0 + subs r4, 0x2 + movs r6, 0x1 + negs r6, r6 + add r9, r6 +_080AF70C: + adds r4, 0x2 + movs r7, 0x1 + add r9, r7 + mov r0, r9 + cmp r0, 0x3 + ble _080AF6CE + movs r1, 0 + mov r9, r1 + mov r4, sp + ldr r6, _080AF81C + ldr r2, [sp, 0x64] + ldr r5, _080AF820 + ldr r3, [sp, 0x68] +_080AF726: + mov r7, r9 + lsls r1, r7, 4 + movs r7, 0 + ldrsh r0, [r6, r7] + str r0, [r2] + movs r7, 0 + ldrsh r0, [r5, r7] + str r0, [r3] + ldrh r0, [r4] + str r0, [r2, 0x8] + ldr r0, [sp, 0x6C] + adds r1, r0, r1 + mov r7, r9 + str r7, [r1] + adds r4, 0x2 + adds r6, 0x2 + adds r2, 0x10 + adds r5, 0x2 + adds r3, 0x10 + movs r0, 0x1 + add r9, r0 + mov r1, r9 + cmp r1, 0x3 + ble _080AF726 + movs r3, 0 + mov r9, r3 +_080AF75A: + movs r4, 0x3 + cmp r4, r9 + ble _080AF7E4 + add r7, sp, 0x48 + ldr r6, [sp, 0x68] + str r6, [sp, 0x58] + ldr r0, [sp, 0x64] + adds r0, 0x8 + str r0, [sp, 0x5C] + ldr r1, [sp, 0x6C] + str r1, [sp, 0x60] +_080AF770: + subs r3, r4, 0x1 + mov r10, r3 + mov r0, r10 + adds r1, r4, 0 + ldr r2, [sp, 0x64] + bl sub_80AF828 + lsls r0, 24 + cmp r0, 0 + beq _080AF7DE + mov r6, r10 + lsls r2, r6, 4 + ldr r0, [sp, 0x64] + adds r3, r0, r2 + ldr r0, [r3] + str r0, [sp, 0x48] + ldr r1, [sp, 0x58] + adds r6, r1, r2 + ldr r0, [r6] + str r0, [r7, 0x4] + ldr r0, [sp, 0x5C] + adds r0, r2 + mov r8, r0 + ldr r0, [r0] + str r0, [r7, 0x8] + ldr r1, [sp, 0x60] + adds r2, r1, r2 + ldr r0, [r2] + str r0, [r7, 0xC] + lsls r1, r4, 4 + ldr r0, [sp, 0x64] + adds r5, r0, r1 + ldr r0, [r5] + str r0, [r3] + ldr r3, [sp, 0x58] + adds r4, r3, r1 + ldr r0, [r4] + str r0, [r6] + ldr r6, [sp, 0x5C] + adds r3, r6, r1 + ldr r0, [r3] + mov r6, r8 + str r0, [r6] + ldr r0, [sp, 0x60] + adds r1, r0, r1 + ldr r0, [r1] + str r0, [r2] + ldr r0, [sp, 0x48] + str r0, [r5] + ldr r0, [r7, 0x4] + str r0, [r4] + ldr r0, [r7, 0x8] + str r0, [r3] + ldr r0, [r7, 0xC] + str r0, [r1] +_080AF7DE: + mov r4, r10 + cmp r4, r9 + bgt _080AF770 +_080AF7E4: + movs r1, 0x1 + add r9, r1 + mov r3, r9 + cmp r3, 0x2 + ble _080AF75A + movs r6, 0 + mov r9, r6 + ldr r2, _080AF824 + ldr r1, [sp, 0x6C] +_080AF7F6: + ldr r0, [r1] + adds r0, r2 + mov r7, r9 + strb r7, [r0] + adds r1, 0x10 + movs r0, 0x1 + add r9, r0 + mov r3, r9 + cmp r3, 0x3 + ble _080AF7F6 + add sp, 0x70 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF81C: .4byte gUnknown_02038678 +_080AF820: .4byte gUnknown_02038670 +_080AF824: .4byte gUnknown_02038690 + thumb_func_end sub_80AF6A0 + + thumb_func_start sub_80AF828 +sub_80AF828: @ 80AF828 + push {lr} + lsls r0, 4 + adds r0, r2 + lsls r1, 4 + adds r3, r1, r2 + ldr r2, [r0] + ldr r1, [r3] + cmp r2, r1 + blt _080AF858 + cmp r2, r1 + bgt _080AF84A + ldr r2, [r0, 0x4] + ldr r1, [r3, 0x4] + cmp r2, r1 + blt _080AF858 + cmp r2, r1 + ble _080AF84E +_080AF84A: + movs r2, 0 + b _080AF85A +_080AF84E: + ldr r1, [r0, 0x8] + ldr r0, [r3, 0x8] + movs r2, 0 + cmp r1, r0 + bge _080AF85A +_080AF858: + movs r2, 0x1 +_080AF85A: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80AF828 + + thumb_func_start sub_80AF860 +sub_80AF860: @ 80AF860 + push {lr} + sub sp, 0x4 + ldr r0, _080AF88C + movs r1, 0 + strh r1, [r0] + ldr r0, _080AF890 + strh r1, [r0] + bl sub_80AF138 + ldr r0, _080AF894 + ldr r1, _080AF898 + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8003460 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080AF88C: .4byte gUnknown_030042A0 +_080AF890: .4byte gUnknown_03004280 +_080AF894: .4byte gMenuWindow +_080AF898: .4byte gUnknownText_LinkStandbyAndWinner + thumb_func_end sub_80AF860 + + thumb_func_start unref_sub_80AF89C +unref_sub_80AF89C: @ 80AF89C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r2, r3, 2 + ldr r0, _080AF940 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r0, _080AF944 + movs r1, 0x14 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80AFB74 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + asrs r6, 16 + adds r4, r6 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80AFB74 + adds r4, r0, 0 + subs r4, r5 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + bl sub_80AFB40 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080AF948 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + add r0, r8 + strh r0, [r1, 0xC] + mov r0, r9 + strh r0, [r1, 0xE] + cmp r6, 0 + bge _080AF932 + mov r0, r9 + bl nullsub_19 +_080AF932: + adds r0, r7, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AF940: .4byte 0x02019338 +_080AF944: .4byte sub_80AF94C +_080AF948: .4byte gTasks + thumb_func_end unref_sub_80AF89C + + thumb_func_start sub_80AF94C +sub_80AF94C: @ 80AF94C + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AF988 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrb r5, [r2, 0xE] + ldrh r3, [r2, 0xA] + movs r0, 0xA + ldrsh r1, [r2, r0] + cmp r1, 0 + bne _080AF990 + adds r0, r5, 0 + bl nullsub_19 + adds r0, r4, 0 + bl DestroyTask + lsls r1, r5, 2 + ldr r0, _080AF98C + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + b _080AFA56 + .align 2, 0 +_080AF988: .4byte gTasks +_080AF98C: .4byte 0x02019338 +_080AF990: + ldrh r0, [r2, 0x1C] + adds r0, 0x1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080AFA56 + movs r0, 0 + strh r0, [r2, 0x1C] + cmp r1, 0 + bge _080AF9BC + ldrh r0, [r2, 0x8] + subs r1, r0, 0x1 + strh r1, [r2, 0x8] + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r3, 0x1 + strh r0, [r2, 0xA] + movs r0, 0x16 + bl PlaySE + b _080AF9D0 +_080AF9BC: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 24 + lsrs r6, r0, 24 + subs r0, r3, 0x1 + strh r0, [r2, 0xA] + movs r0, 0x15 + bl PlaySE +_080AF9D0: + ldr r3, _080AFA00 + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 3 + adds r0, r2, r3 + ldrh r1, [r0, 0xC] + ldr r0, _080AFA04 + cmp r1, r0 + beq _080AFA38 + adds r0, r3, r2 + adds r0, 0xC + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 5 + adds r1, 0x93 + adds r1, r6, r1 + lsls r1, 1 + ldr r2, _080AFA08 + adds r1, r2 + movs r2, 0x2 + bl RequestSpriteCopy + b _080AFA56 + .align 2, 0 +_080AFA00: .4byte gTasks +_080AFA04: .4byte 0x0000ffff +_080AFA08: .4byte 0x0600c000 +_080AFA0C: + adds r0, r2, r3 + lsls r1, 1 + adds r1, 0xE + adds r0, r1 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 5 + adds r1, 0x93 + adds r1, r6, r1 + lsls r1, 1 + ldr r7, _080AFA34 + adds r1, r7 + movs r2, 0x2 + bl RequestSpriteCopy + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080AFA56 + .align 2, 0 +_080AFA34: .4byte 0x0600c000 +_080AFA38: + movs r1, 0 + adds r3, 0x8 +_080AFA3C: + adds r0, r1, 0x4 + lsls r0, 1 + adds r0, r2 + adds r4, r0, r3 + movs r7, 0 + ldrsh r0, [r4, r7] + cmp r0, 0 + blt _080AFA0C + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bls _080AFA3C +_080AFA56: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AF94C + + thumb_func_start sub_80AFA5C +sub_80AFA5C: @ 80AFA5C + push {r4-r7,lr} + sub sp, 0x4 + movs r3, 0 + ldr r0, _080AFAAC + mov r12, r0 + mov r4, sp + movs r6, 0 + ldr r2, _080AFAB0 + ldr r5, _080AFAB4 +_080AFA6E: + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 5 + adds r0, r1, 0 + adds r0, 0x56 + lsls r0, 1 + add r0, r12 + strh r6, [r4] + mov r7, sp + str r7, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, 0x76 + lsls r1, 1 + add r1, r12 + strh r6, [r4] + str r7, [r2] + str r1, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080AFA6E + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AFAAC: .4byte 0x0600c000 +_080AFAB0: .4byte 0x040000d4 +_080AFAB4: .4byte 0x81000008 + thumb_func_end sub_80AFA5C + + thumb_func_start unref_sub_80AFAB8 +unref_sub_80AFAB8: @ 80AFAB8 + push {r4-r6,lr} + sub sp, 0x14 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r0, 16 + asrs r0, 16 + bl sub_80AFB74 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080AFAF4 + cmp r4, 0 + beq _080AFAE0 + ldr r2, _080AFAF8 + cmp r4, 0x1 + beq _080AFAE0 + ldr r2, _080AFAFC + cmp r4, 0x2 + bne _080AFAE0 + ldr r2, _080AFB00 +_080AFAE0: + movs r1, 0 + lsls r3, r4, 2 + movs r6, 0 +_080AFAE6: + cmp r1, r5 + bcs _080AFB04 + lsls r0, r1, 1 + add r0, sp + strh r2, [r0] + b _080AFB0A + .align 2, 0 +_080AFAF4: .4byte 0x000050a2 +_080AFAF8: .4byte 0x000060a2 +_080AFAFC: .4byte 0x000080a2 +_080AFB00: .4byte 0x000070a2 +_080AFB04: + lsls r0, r1, 1 + add r0, sp + strh r6, [r0] +_080AFB0A: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x8 + bls _080AFAE6 + adds r0, r3, r4 + lsls r0, 6 + ldr r1, _080AFB34 + adds r0, r1 + ldr r1, _080AFB38 + mov r2, sp + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _080AFB3C + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFB34: .4byte 0x0600c128 +_080AFB38: .4byte 0x040000d4 +_080AFB3C: .4byte 0x80000009 + thumb_func_end unref_sub_80AFAB8 + + thumb_func_start sub_80AFB40 +sub_80AFB40: @ 80AFB40 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AFB64 + cmp r0, 0 + beq _080AFB5A + ldr r1, _080AFB68 + cmp r0, 0x1 + beq _080AFB5A + ldr r1, _080AFB6C + cmp r0, 0x2 + bne _080AFB5A + ldr r1, _080AFB70 +_080AFB5A: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_080AFB64: .4byte 0x00005011 +_080AFB68: .4byte 0x00006011 +_080AFB6C: .4byte 0x00008011 +_080AFB70: .4byte 0x00007011 + thumb_func_end sub_80AFB40 + + thumb_func_start sub_80AFB74 +sub_80AFB74: @ 80AFB74 + push {lr} + lsls r0, 16 + asrs r0, 16 + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r2, r0, 24 + cmp r2, 0x10 + ble _080AFB8E + movs r1, 0x10 + b _080AFB98 +_080AFB8E: + movs r0, 0x10 + negs r0, r0 + cmp r2, r0 + bge _080AFB98 + movs r1, 0xF0 +_080AFB98: + lsls r0, r1, 24 + asrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80AFB74 + + thumb_func_start sub_80AFBA0 +sub_80AFBA0: @ 80AFBA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r2, r7, 2 + ldr r0, _080AFC30 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r0, _080AFC34 + movs r1, 0x14 + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + lsls r5, 16 + asrs r5, 16 + adds r0, r5, 0 + bl sub_80AFB74 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + adds r5, r0 + lsls r5, 16 + asrs r5, 16 + adds r0, r5, 0 + bl sub_80AFB74 + lsls r4, 24 + asrs r4, 24 + subs r0, r4 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r7, 0 + bl sub_80AFB40 + ldr r2, _080AFC38 + lsls r3, r6, 2 + adds r0, r3, r6 + lsls r0, 3 + adds r1, r0, r2 + adds r0, r4, 0 + cmp r4, 0 + bge _080AFC14 + negs r0, r4 +_080AFC14: + strh r0, [r1, 0x8] + lsls r0, r5, 24 + asrs r0, 24 + strh r0, [r1, 0xA] + cmp r4, 0 + bgt _080AFC28 + cmp r4, 0 + bne _080AFC3C + cmp r0, 0 + ble _080AFC3C +_080AFC28: + movs r0, 0x1 + strh r0, [r1, 0xC] + b _080AFC4A + .align 2, 0 +_080AFC30: .4byte 0x02019338 +_080AFC34: .4byte sub_80AFC74 +_080AFC38: .4byte gTasks +_080AFC3C: + ldr r2, _080AFC6C + lsls r3, r6, 2 + adds r0, r3, r6 + lsls r0, 3 + adds r0, r2 + ldr r1, _080AFC70 + strh r1, [r0, 0xC] +_080AFC4A: + adds r0, r3, r6 + lsls r0, 3 + adds r0, r2 + strh r7, [r0, 0xE] + mov r1, r8 + lsls r0, r1, 16 + cmp r0, 0 + bge _080AFC60 + adds r0, r7, 0 + bl nullsub_19 +_080AFC60: + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AFC6C: .4byte gTasks +_080AFC70: .4byte 0x0000ffff + thumb_func_end sub_80AFBA0 + + thumb_func_start sub_80AFC74 +sub_80AFC74: @ 80AFC74 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _080AFCD4 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + ldrb r7, [r4, 0xE] + ldrh r3, [r4, 0x8] + ldrh r1, [r4, 0xA] + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xE + bgt _080AFCA6 + b _080AFE1C +_080AFCA6: + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r2, [r4, 0xA] + movs r5, 0xA + ldrsh r0, [r4, r5] + cmp r0, 0 + bne _080AFCDC + adds r0, r7, 0 + bl nullsub_19 + mov r0, r8 + bl DestroyTask + lsls r1, r7, 2 + ldr r0, _080AFCD8 + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + b _080AFE1C + .align 2, 0 +_080AFCD4: .4byte gTasks +_080AFCD8: .4byte 0x02019338 +_080AFCDC: + cmp r3, 0 + bne _080AFD28 + lsls r0, r1, 16 + mov r9, r0 + cmp r0, 0 + bge _080AFCFA + adds r0, r7, 0 + bl sub_80AFB40 + adds r0, 0x2 + lsls r0, 16 + lsrs r6, r0, 16 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + b _080AFD08 +_080AFCFA: + adds r0, r7, 0 + bl sub_80AFB40 + lsls r0, 16 + lsrs r6, r0, 16 + ldrh r0, [r4, 0xA] + subs r0, 0x1 +_080AFD08: + strh r0, [r4, 0xA] + ldr r1, _080AFD24 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r2, r1, 0x1 + strh r2, [r0, 0x8] + lsls r1, 24 + lsrs r5, r1, 24 + b _080AFD94 + .align 2, 0 +_080AFD24: .4byte gTasks +_080AFD28: + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080AFD62 + lsls r0, r1, 16 + mov r9, r0 + cmp r0, 0 + bge _080AFD50 + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r2, 0x1 + strh r0, [r4, 0xA] + adds r0, r7, 0 + bl sub_80AFB40 + adds r0, 0x2 + b _080AFD90 +_080AFD50: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + subs r0, r2, 0x1 + strh r0, [r4, 0xA] + b _080AFD94 +_080AFD62: + lsls r0, r1, 16 + mov r9, r0 + cmp r0, 0 + bge _080AFD7C + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + adds r0, r2, 0x1 + strh r0, [r4, 0xA] + b _080AFD94 +_080AFD7C: + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + subs r0, r2, 0x1 + strh r0, [r4, 0xA] + adds r0, r7, 0 + bl sub_80AFB40 +_080AFD90: + lsls r0, 16 + lsrs r6, r0, 16 +_080AFD94: + mov r10, r5 + cmp r5, 0x7 + bls _080AFDA2 + adds r0, r5, 0 + adds r0, 0x18 + lsls r0, 24 + lsrs r5, r0, 24 +_080AFDA2: + mov r0, sp + strh r6, [r0] + ldr r0, _080AFDE8 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, 0x56 + adds r1, r5, r1 + lsls r1, 1 + ldr r0, _080AFDEC + adds r1, r0 + ldr r2, _080AFDF0 + mov r0, sp + bl CpuSet + mov r2, r9 + cmp r2, 0 + ble _080AFDFC + movs r0, 0x60 + bl PlaySE + ldr r4, _080AFDF4 + adds r0, r4, 0 + bl m4aMPlayImmInit + ldr r1, _080AFDF8 + mov r3, r10 + lsls r2, r3, 24 + asrs r2, 16 + adds r0, r4, 0 + bl m4aMPlayPitchControl + b _080AFE02 + .align 2, 0 +_080AFDE8: .4byte gUnknown_02038696 +_080AFDEC: .4byte 0x0600c000 +_080AFDF0: .4byte 0x01000001 +_080AFDF4: .4byte gMPlay_SE1 +_080AFDF8: .4byte 0x0000ffff +_080AFDFC: + movs r0, 0x16 + bl PlaySE +_080AFE02: + cmp r5, 0 + bne _080AFE1C + cmp r6, 0 + bne _080AFE1C + ldr r0, _080AFE2C + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + negs r0, r0 + strh r0, [r1, 0xC] +_080AFE1C: + 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 +_080AFE2C: .4byte gTasks + thumb_func_end sub_80AFC74 + + thumb_func_start sub_80AFE30 +sub_80AFE30: @ 80AFE30 + push {r4,r5,lr} + ldr r0, _080AFE64 + bl LoadSpriteSheet + movs r4, 0 + ldr r5, _080AFE68 +_080AFE3C: + ldr r0, _080AFE6C + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, r5 + ldrb r2, [r0] + ldr r0, _080AFE70 + movs r1, 0xB4 + movs r3, 0x1 + bl CreateSprite + lsls r1, r4, 2 + ldr r2, _080AFE74 + adds r1, r2 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0x3 + ble _080AFE3C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFE64: .4byte gUnknown_083CA350 +_080AFE68: .4byte gUnknown_083CA338 +_080AFE6C: .4byte gUnknown_02038696 +_080AFE70: .4byte gSpriteTemplate_83CA3AC +_080AFE74: .4byte 0x02019338 + thumb_func_end sub_80AFE30 + + thumb_func_start sub_80AFE78 +sub_80AFE78: @ 80AFE78 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, r6, 2 + ldr r3, _080AFEB0 + adds r2, r3 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + ldrb r7, [r2] + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + subs r3, 0xD8 + adds r0, r3 + movs r1, 0x4 + ldrsh r0, [r0, r1] + movs r1, 0xA + bl __divsi3 + lsls r0, 17 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x38 + ble _080AFEB4 + movs r5, 0x38 + b _080AFEBA + .align 2, 0 +_080AFEB0: .4byte 0x02019338 +_080AFEB4: + cmp r0, 0 + bge _080AFEBA + movs r5, 0 +_080AFEBA: + ldr r2, _080AFEEC + lsls r3, r7, 4 + adds r0, r3, r7 + lsls r0, 2 + adds r4, r0, r2 + movs r0, 0x3E + adds r0, r4 + mov r12, r0 + ldrb r1, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + strh r6, [r4, 0x2E] + strh r5, [r4, 0x30] + lsls r0, r5, 16 + asrs r0, 16 + movs r5, 0x24 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080AFEF0 + movs r0, 0x1 + b _080AFEF2 + .align 2, 0 +_080AFEEC: .4byte gSprites +_080AFEF0: + ldr r0, _080AFF08 +_080AFEF2: + strh r0, [r4, 0x32] + adds r0, r3, r7 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080AFF0C + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AFF08: .4byte 0x0000ffff +_080AFF0C: .4byte sub_80AFF60 + thumb_func_end sub_80AFE78 + + thumb_func_start sub_80AFF10 +sub_80AFF10: @ 80AFF10 + push {r4,lr} + movs r4, 0 +_080AFF14: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80AFE78 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AFF14 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AFF10 + + thumb_func_start sub_80AFF28 +sub_80AFF28: @ 80AFF28 + push {r4,lr} + movs r3, 0 + ldr r2, _080AFF54 + ldrb r1, [r2, 0x2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AFF4C + movs r4, 0x1 +_080AFF3A: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x3 + bgt _080AFF4C + ldrb r1, [r2, 0x2] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080AFF3A +_080AFF4C: + cmp r3, 0x4 + beq _080AFF58 + movs r0, 0 + b _080AFF5A + .align 2, 0 +_080AFF54: .4byte 0x02019338 +_080AFF58: + movs r0, 0x1 +_080AFF5A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AFF28 + + thumb_func_start sub_80AFF60 +sub_80AFF60: @ 80AFF60 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x24] + movs r0, 0x24 + ldrsh r1, [r3, r0] + movs r4, 0x30 + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _080AFF94 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r1, 2 + ldr r0, _080AFF8C + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + ldr r0, _080AFF90 + str r0, [r3, 0x1C] + b _080AFF9A + .align 2, 0 +_080AFF8C: .4byte 0x02019338 +_080AFF90: .4byte SpriteCallbackDummy +_080AFF94: + ldrh r0, [r3, 0x32] + adds r0, r2, r0 + strh r0, [r3, 0x24] +_080AFF9A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AFF60 + + thumb_func_start sub_80AFFA0 +sub_80AFFA0: @ 80AFFA0 + push {r4-r6,lr} + movs r2, 0 + ldr r6, _080AFFD0 + ldr r5, _080AFFD4 + ldr r3, _080AFFD8 + ldr r4, _080AFFDC +_080AFFAC: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r0, r2, r4 + ldrb r0, [r0] + adds r0, r5 + ldrb r0, [r0] + strh r0, [r1, 0x22] + adds r3, 0x4 + adds r2, 0x1 + cmp r2, 0x3 + ble _080AFFAC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFFD0: .4byte gSprites +_080AFFD4: .4byte gUnknown_083CA338 +_080AFFD8: .4byte 0x02019338 +_080AFFDC: .4byte gUnknown_02038696 + thumb_func_end sub_80AFFA0 + + thumb_func_start sub_80AFFE0 +sub_80AFFE0: @ 80AFFE0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r6, _080B0008 + ldr r4, _080B000C + ldr r2, _080B0010 +_080AFFEE: + adds r0, r3, r6 + ldrb r0, [r0] + cmp r0, 0x1 + bls _080B0024 + cmp r5, 0 + bne _080B0014 + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0xB4 + b _080B0022 + .align 2, 0 +_080B0008: .4byte gUnknown_02038696 +_080B000C: .4byte gSprites +_080B0010: .4byte 0x02019338 +_080B0014: + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x80 + lsls r0, 1 +_080B0022: + strh r0, [r1, 0x20] +_080B0024: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x3 + ble _080AFFEE + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AFFE0 + + thumb_func_start sub_80B0034 +sub_80B0034: @ 80B0034 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080B00A8 + bl LoadSpritePalette + movs r5, 0 + ldr r0, _080B00AC + mov r8, r0 + ldr r7, _080B00B0 + movs r6, 0 +_080B004A: + lsls r0, r5, 3 + ldr r1, _080B00B4 + adds r0, r1 + bl LoadCompressedObjectPic + ldr r0, _080B00B8 + adds r0, r6, r0 + ldr r1, _080B00BC + adds r1, r5, r1 + ldrb r1, [r1] + add r1, r8 + ldrb r2, [r1] + movs r1, 0xCC + movs r3, 0 + bl CreateSprite + lsls r4, r5, 2 + ldr r1, _080B00C0 + adds r4, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, _080B00C4 + bl SetSubspriteTables + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r6, 0x18 + adds r5, 0x1 + cmp r5, 0x3 + ble _080B004A + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B00A8: .4byte gUnknown_083CA3E4 +_080B00AC: .4byte gUnknown_083CA33C +_080B00B0: .4byte gSprites +_080B00B4: .4byte gUnknown_083CA3C4 +_080B00B8: .4byte gSpriteTemplate_83CA3F4 +_080B00BC: .4byte gUnknown_02038696 +_080B00C0: .4byte 0x02019338 +_080B00C4: .4byte gUnknown_083CA464 + thumb_func_end sub_80B0034 + + thumb_func_start sub_80B00C8 +sub_80B00C8: @ 80B00C8 + push {lr} + ldr r0, _080B0104 + bl LoadCompressedObjectPic + ldr r0, _080B0108 + bl LoadSpritePalette + ldr r0, _080B010C + movs r1, 0x1E + movs r2, 0x2C + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B0110 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1] + ldr r1, _080B0114 + adds r1, 0x58 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B0104: .4byte gUnknown_083CA46C +_080B0108: .4byte gUnknown_083CA474 +_080B010C: .4byte gSpriteTemplate_83CA484 +_080B0110: .4byte gSprites +_080B0114: .4byte 0x02019204 + thumb_func_end sub_80B00C8 + + thumb_func_start nullsub_18 +nullsub_18: @ 80B0118 + bx lr + thumb_func_end nullsub_18 + + thumb_func_start unref_sub_80B011C +unref_sub_80B011C: @ 80B011C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080B0198 + bl LoadCompressedObjectPic + movs r4, 0 + ldr r5, _080B019C +_080B012C: + lsls r0, r4, 3 + adds r0, r5 + bl LoadCompressedObjectPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B012C + movs r4, 0 + ldr r5, _080B01A0 + adds r0, r5, 0x1 + mov r8, r0 + ldr r7, _080B01A4 + ldr r6, _080B01A8 +_080B014A: + lsls r2, r4, 1 + adds r0, r2, r4 + lsls r0, 3 + ldr r1, _080B01AC + adds r0, r1 + adds r1, r2, r5 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + movs r2, 0x3E + adds r2, r1 + mov r12, r2 + ldrb r2, [r2] + movs r3, 0x4 + orrs r2, r3 + mov r3, r12 + strb r2, [r3] + strh r4, [r1, 0x2E] + adds r1, r4, r6 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B014A + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0198: .4byte gUnknown_083CC3AC +_080B019C: .4byte gUnknown_083CC3B4 +_080B01A0: .4byte gUnknown_083CA330 +_080B01A4: .4byte gSprites +_080B01A8: .4byte 0x0201920d +_080B01AC: .4byte gSpriteTemplate_83CC454 + thumb_func_end unref_sub_80B011C + + thumb_func_start unref_sub_80B01B0 +unref_sub_80B01B0: @ 80B01B0 + push {r4,r5,lr} + movs r2, 0 + ldr r5, _080B01D4 + ldr r4, _080B01D8 + ldr r3, _080B01DC +_080B01BA: + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + str r3, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _080B01BA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B01D4: .4byte 0x0201920d +_080B01D8: .4byte gSprites + 0x1C +_080B01DC: .4byte ObjectCB_SwitchPocketRotatingBallInit + thumb_func_end unref_sub_80B01B0 + + thumb_func_start unref_sub_80B01E0 +unref_sub_80B01E0: @ 80B01E0 + push {r4,r5,lr} + movs r3, 0 + ldr r2, _080B0224 + ldr r4, _080B0228 + ldrb r1, [r4, 0x9] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _080B022C + cmp r1, r0 + bne _080B021A + adds r5, r4, 0 + adds r5, 0x9 + adds r4, r1, 0 +_080B0202: + adds r3, 0x1 + cmp r3, 0x3 + bgt _080B021A + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + beq _080B0202 +_080B021A: + cmp r3, 0x4 + beq _080B0230 + movs r0, 0 + b _080B0232 + .align 2, 0 +_080B0224: .4byte gSprites +_080B0228: .4byte 0x02019204 +_080B022C: .4byte SpriteCallbackDummy +_080B0230: + movs r0, 0x1 +_080B0232: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_80B01E0 + + thumb_func_start ObjectCB_SwitchPocketRotatingBallInit +ObjectCB_SwitchPocketRotatingBallInit: @ 80B0238 + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + bl InitSpriteAffineAnim + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B0268 + ldr r0, _080B0264 + b _080B0272 + .align 2, 0 +_080B0264: .4byte sub_80B02A8 +_080B0268: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080B027C +_080B0272: + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B027C: .4byte sub_80B0280 + thumb_func_end ObjectCB_SwitchPocketRotatingBallInit + + thumb_func_start sub_80B0280 +sub_80B0280: @ 80B0280 + push {lr} + adds r3, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B02A0 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B02A4 + str r0, [r3, 0x1C] +_080B02A0: + pop {r0} + bx r0 + .align 2, 0 +_080B02A4: .4byte sub_80B02A8 + thumb_func_end sub_80B0280 + + thumb_func_start sub_80B02A8 +sub_80B02A8: @ 80B02A8 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080B02EC + adds r0, r1 + ldrb r1, [r0, 0xB] + lsls r1, 30 + lsrs r1, 30 + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080B02F0 + str r0, [r4, 0x1C] + movs r0, 0x18 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B02EC: .4byte 0x02019260 +_080B02F0: .4byte sub_80B02F4 + thumb_func_end sub_80B02A8 + + thumb_func_start sub_80B02F4 +sub_80B02F4: @ 80B02F4 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B0318 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + ldrb r0, [r4, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r0 + strb r1, [r4, 0x1] + ldr r0, _080B0320 + str r0, [r4, 0x1C] +_080B0318: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0320: .4byte SpriteCallbackDummy + thumb_func_end sub_80B02F4 + + thumb_func_start sub_80B0324 +sub_80B0324: @ 80B0324 + push {r4,lr} + ldr r0, _080B035C + movs r1, 0x1E + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0360 + strb r0, [r1, 0xD] + movs r2, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r4, _080B0364 + movs r3, 0xFF +_080B0342: + lsls r0, r2, 3 + adds r0, r1 + adds r0, r4 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080B0342 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B035C: .4byte sub_80B0458 +_080B0360: .4byte 0x02019204 +_080B0364: .4byte gUnknown_03004B28 + thumb_func_end sub_80B0324 + + thumb_func_start sub_80B0368 +sub_80B0368: @ 80B0368 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080B03A0 + ldr r5, _080B03A4 + ldrb r2, [r5, 0xD] + lsls r1, r2, 2 + adds r1, r2 + adds r1, r0 + lsls r1, 3 + adds r3, 0x8 + adds r1, r3 + movs r4, 0 + strh r4, [r1] + lsls r0, 2 + adds r0, 0x1 + lsls r0, 1 + ldrb r2, [r5, 0xD] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r0, r1 + adds r0, r3 + strh r4, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B03A0: .4byte gTasks +_080B03A4: .4byte 0x02019204 + thumb_func_end sub_80B0368 + + thumb_func_start sub_80B03A8 +sub_80B03A8: @ 80B03A8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B03D0 + movs r1, 0x1F + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B03D4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B03D0: .4byte sub_80B03D8 +_080B03D4: .4byte gTasks + thumb_func_end sub_80B03A8 + + thumb_func_start sub_80B03D8 +sub_80B03D8: @ 80B03D8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r2, _080B044C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x8] + adds r4, r0, 0 + ldr r6, _080B0450 + ldrb r1, [r6, 0xD] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r4 + lsls r0, 3 + adds r7, r2, 0 + adds r7, 0x8 + adds r1, r0, r7 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B040C + cmp r0, 0xFF + bne _080B0444 +_080B040C: + movs r3, 0 + movs r0, 0xFF + strh r0, [r1] + lsls r1, r4, 2 + adds r1, 0x1 + lsls r1, 1 + ldrb r2, [r6, 0xD] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, r7 + strh r3, [r1] + adds r0, r6, 0 + adds r0, 0x14 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 4 + adds r0, 0x6 + ldr r3, _080B0454 + movs r1, 0x2 + movs r2, 0 + bl BlendPalette + adds r0, r5, 0 + bl DestroyTask +_080B0444: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B044C: .4byte gTasks +_080B0450: .4byte 0x02019204 +_080B0454: .4byte 0x00004bff + thumb_func_end sub_80B03D8 + + thumb_func_start sub_80B0458 +sub_80B0458: @ 80B0458 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + lsls r1, r0, 2 + adds r1, r0 + mov r9, r1 + lsls r7, r1, 3 + ldr r0, _080B04A8 + mov r8, r0 + movs r1, 0x8 + negs r1, r1 + add r1, r8 + mov r10, r1 +_080B047C: + lsls r0, r6, 26 + lsrs r3, r0, 24 + lsls r0, r3, 1 + adds r0, r7 + mov r4, r8 + adds r2, r0, r4 + ldrh r4, [r2] + movs r5, 0 + ldrsh r0, [r2, r5] + cmp r0, 0xFF + beq _080B04F6 + adds r0, r3, 0x1 + lsls r1, r0, 1 + adds r1, r7 + add r1, r8 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r5, r0, 0 + cmp r1, 0 + bne _080B04AC + adds r0, r4, 0x1 + b _080B04AE + .align 2, 0 +_080B04A8: .4byte gUnknown_03004B28 +_080B04AC: + subs r0, r4, 0x1 +_080B04AE: + strh r0, [r2] + lsls r1, r3, 1 + mov r0, r9 + lsls r2, r0, 3 + adds r0, r1, r2 + mov r3, r10 + adds r3, 0x8 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0x10 + beq _080B04CC + cmp r0, 0 + bne _080B04DA +_080B04CC: + lsls r0, r5, 1 + adds r0, r2 + adds r0, r3 + ldrh r1, [r0] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0] +_080B04DA: + ldr r0, _080B0510 + adds r0, 0x14 + adds r0, r6, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 4 + adds r0, 0x6 + adds r1, r4, r7 + add r1, r8 + ldrb r2, [r1] + movs r1, 0x2 + ldr r3, _080B0514 + bl BlendPalette +_080B04F6: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _080B047C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0510: .4byte 0x02019204 +_080B0514: .4byte 0x00004bff + thumb_func_end sub_80B0458 + + thumb_func_start sub_80B0518 +sub_80B0518: @ 80B0518 + push {r4,lr} + ldr r0, _080B0540 + movs r1, 0x1E + bl CreateTask + ldr r1, _080B0544 + strb r0, [r1, 0xE] + movs r4, 0 +_080B0528: + adds r0, r4, 0 + bl sub_80B0548 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0528 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0540: .4byte sub_80B05FC +_080B0544: .4byte 0x02019204 + thumb_func_end sub_80B0518 + + thumb_func_start sub_80B0548 +sub_80B0548: @ 80B0548 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080B0580 + ldr r4, _080B0584 + ldrb r2, [r4, 0xE] + lsls r1, r2, 2 + adds r1, r2 + adds r1, r0 + lsls r1, 3 + adds r3, 0x8 + adds r1, r3 + movs r5, 0 + movs r2, 0xFF + strh r2, [r1] + lsls r0, 2 + adds r0, 0x1 + lsls r0, 1 + ldrb r2, [r4, 0xE] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r0, r1 + adds r0, r3 + strh r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0580: .4byte gTasks +_080B0584: .4byte 0x02019204 + thumb_func_end sub_80B0548 + + thumb_func_start sub_80B0588 +sub_80B0588: @ 80B0588 + push {r4,lr} + movs r4, 0 +_080B058C: + adds r0, r4, 0 + bl sub_80B05A4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B058C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0588 + + thumb_func_start sub_80B05A4 +sub_80B05A4: @ 80B05A4 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80B0548 + adds r0, r4, 0x5 + lsls r2, r0, 5 + ldr r3, _080B05E8 + adds r6, r2, r3 + ldr r5, _080B05EC + adds r2, r5 + ldr r1, _080B05F0 + str r6, [r1] + str r2, [r1, 0x4] + ldr r2, _080B05F4 + str r2, [r1, 0x8] + ldr r6, [r1, 0x8] + lsls r0, 4 + adds r4, 0xC + adds r0, r4 + lsls r0, 1 + subs r3, 0x14 + adds r3, r0, r3 + subs r5, 0x14 + adds r0, r5 + str r3, [r1] + str r0, [r1, 0x4] + str r2, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B05E8: .4byte gPlttBufferUnfaded + 0x14 +_080B05EC: .4byte gPlttBufferFaded + 0x14 +_080B05F0: .4byte 0x040000d4 +_080B05F4: .4byte 0x80000001 + thumb_func_end sub_80B05A4 + + thumb_func_start nullsub_19 +nullsub_19: @ 80B05F8 + bx lr + thumb_func_end nullsub_19 + + thumb_func_start sub_80B05FC +sub_80B05FC: @ 80B05FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r7, 0 + lsls r1, r0, 2 + adds r1, r0 + mov r9, r1 + lsls r6, r1, 3 + ldr r0, _080B0664 + mov r8, r0 + ldr r1, _080B0668 + mov r10, r1 +_080B061C: + lsls r0, r7, 26 + lsrs r3, r0, 24 + lsls r0, r3, 1 + adds r0, r6 + mov r4, r8 + adds r2, r0, r4 + movs r5, 0 + ldrsh r0, [r2, r5] + cmp r0, 0xFF + beq _080B06C2 + adds r0, r3, 0x2 + lsls r0, 1 + adds r0, r6 + adds r1, r0, r4 + ldrh r0, [r1] + adds r0, 0x1 + movs r4, 0 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B06C2 + strh r4, [r1] + adds r0, r3, 0x1 + lsls r1, r0, 1 + adds r1, r6 + add r1, r8 + movs r4, 0 + ldrsh r1, [r1, r4] + adds r4, r0, 0 + cmp r1, 0 + bne _080B066C + ldrh r0, [r2] + adds r0, 0x1 + b _080B0670 + .align 2, 0 +_080B0664: .4byte gUnknown_03004B28 +_080B0668: .4byte 0x00004bff +_080B066C: + ldrh r0, [r2] + subs r0, 0x1 +_080B0670: + strh r0, [r2] + lsls r1, r3, 1 + mov r5, r9 + lsls r2, r5, 3 + adds r0, r1, r2 + ldr r3, _080B06DC + adds r3, 0x8 + adds r0, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + adds r5, r1, 0 + cmp r0, 0x10 + beq _080B068E + cmp r0, 0 + bne _080B069C +_080B068E: + lsls r0, r4, 1 + adds r0, r2 + adds r0, r3 + ldrh r1, [r0] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0] +_080B069C: + adds r4, r7, 0x5 + lsls r4, 4 + adds r0, r4, 0 + adds r0, 0xA + adds r5, r6 + add r5, r8 + ldrb r2, [r5] + movs r1, 0x1 + mov r3, r10 + bl BlendPalette + adds r4, 0xC + adds r4, r7 + ldrb r2, [r5] + adds r0, r4, 0 + movs r1, 0x1 + mov r3, r10 + bl BlendPalette +_080B06C2: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _080B061C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B06DC: .4byte gTasks + thumb_func_end sub_80B05FC + + thumb_func_start unref_sub_80B06E0 +unref_sub_80B06E0: @ 80B06E0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + ldr r0, _080B073C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r0, _080B0740 + mov r8, r0 + ldr r1, _080B0744 + mov r12, r1 +_080B0704: + lsls r4, r3, 2 + lsls r0, r3, 26 + lsrs r0, 23 + adds r0, r6 + add r0, r8 + adds r2, r7, r3 + ldrb r1, [r2] + strh r1, [r0] + ldrb r0, [r2] + cmp r0, 0 + beq _080B0726 + mov r1, r12 + adds r0, r4, r1 + ldrb r1, [r0, 0x2] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x2] +_080B0726: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080B0704 + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B073C: .4byte sub_80B0748 +_080B0740: .4byte gUnknown_03004B28 +_080B0744: .4byte 0x02019338 + thumb_func_end unref_sub_80B06E0 + + thumb_func_start sub_80B0748 +sub_80B0748: @ 80B0748 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r2, _080B07F4 + movs r1, 0x8 + adds r1, r2 + mov r10, r1 + ldr r3, [sp] + lsls r3, 2 + str r3, [sp, 0x1C] + ldr r1, [sp] + adds r0, r3, r1 + lsls r0, 3 + str r0, [sp, 0xC] +_080B0774: + ldr r0, _080B07F8 + ldr r3, [sp, 0x4] + adds r0, r3, r0 + ldrb r4, [r0] + lsls r0, r4, 26 + lsrs r1, r0, 24 + lsls r0, r1, 1 + str r0, [sp, 0x8] + ldr r3, [sp] + lsls r0, r3, 2 + adds r0, r3 + lsls r6, r0, 3 + ldr r3, [sp, 0x8] + adds r0, r3, r6 + add r0, r10 + mov r9, r0 + ldrb r7, [r0] + cmp r7, 0 + bne _080B079C + b _080B0910 +_080B079C: + adds r3, r1, 0x1 + lsls r0, r3, 1 + adds r0, r6 + add r0, r10 + ldrb r0, [r0] + mov r8, r0 + adds r2, r1, 0x2 + lsls r0, r2, 1 + adds r0, r6 + add r0, r10 + ldrb r5, [r0] + adds r1, 0x3 + lsls r0, r1, 1 + adds r0, r6 + add r0, r10 + ldrb r6, [r0] + str r3, [sp, 0x10] + str r2, [sp, 0x14] + str r1, [sp, 0x18] + cmp r7, 0x1 + bne _080B0818 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + beq _080B07D2 + b _080B08EA +_080B07D2: + movs r6, 0 + adds r0, r4, 0x5 + lsls r0, 4 + adds r0, 0x1 + movs r1, 0x3 + adds r2, r5, 0 + ldr r3, _080B07FC + bl BlendPalette + cmp r5, 0 + bne _080B0800 + mov r0, r8 + cmp r0, 0x4 + bne _080B0800 + mov r1, r9 + strh r6, [r1] + b _080B08EA + .align 2, 0 +_080B07F4: .4byte gTasks +_080B07F8: .4byte gUnknown_02038696 +_080B07FC: .4byte 0x00007fff +_080B0800: + adds r0, r5, 0x2 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xD + bls _080B08EA + movs r5, 0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + b _080B08EA +_080B0818: + cmp r7, 0x2 + beq _080B0820 + cmp r7, 0x4 + bne _080B0896 +_080B0820: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bne _080B08EA + movs r6, 0 + adds r0, r4, 0x5 + lsls r0, 4 + adds r0, 0x1 + ldr r2, _080B0854 + lsls r1, r4, 1 + adds r1, r2 + ldrh r3, [r1] + movs r1, 0x3 + adds r2, r5, 0 + bl BlendPalette + cmp r5, 0 + bne _080B0858 + mov r2, r8 + cmp r2, 0x2 + bne _080B0858 + mov r3, r9 + strh r6, [r3] + b _080B08EA + .align 2, 0 +_080B0854: .4byte gUnknown_083CC5A4 +_080B0858: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xE + bne _080B08EA + movs r5, 0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r7, 0x4 + bne _080B08EA + cmp r0, 0x1 + bne _080B08EA + adds r4, 0x9 + lsls r4, 4 + adds r0, r4, 0x2 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0 + bl BlendPalette + adds r4, 0x5 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0 + bl BlendPalette + b _080B08EA +_080B0896: + cmp r7, 0x3 + bne _080B08EA + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xC + bne _080B08EA + movs r6, 0 + adds r0, r4, 0x5 + lsls r0, 4 + adds r4, r0, 0x1 + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + movs r3, 0 + bl BlendPalette + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bne _080B08EA + ldr r0, _080B0930 + lsls r1, r4, 1 + adds r0, r1, r0 + ldrh r2, [r0] + ldr r0, _080B0934 + adds r1, r0 + ldrh r0, [r1] + ldr r1, _080B0938 + str r2, [r1] + str r0, [r1, 0x4] + movs r0, 0x80 + lsls r0, 24 + orrs r7, r0 + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x8] + ldr r2, [sp, 0xC] + adds r0, r1, r2 + add r0, r10 + strh r6, [r0] +_080B08EA: + ldr r3, [sp, 0x10] + lsls r0, r3, 1 + ldr r1, [sp, 0xC] + adds r0, r1 + add r0, r10 + mov r2, r8 + strh r2, [r0] + ldr r3, [sp, 0x14] + lsls r0, r3, 1 + adds r0, r1 + add r0, r10 + strh r5, [r0] + ldr r1, [sp, 0x18] + lsls r0, r1, 1 + ldr r2, [sp, 0xC] + adds r0, r2 + add r0, r10 + strh r6, [r0] + ldr r2, _080B093C +_080B0910: + ldr r0, [sp, 0x4] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r0, 0x3 + bhi _080B0920 + b _080B0774 +_080B0920: + movs r4, 0 + ldr r3, [sp, 0x1C] + ldr r1, [sp] + adds r0, r3, r1 + lsls r1, r0, 3 + adds r2, 0x8 + adds r0, r1, r2 + b _080B0950 + .align 2, 0 +_080B0930: .4byte gPlttBufferFaded +_080B0934: .4byte gPlttBufferUnfaded +_080B0938: .4byte 0x040000d4 +_080B093C: .4byte gTasks +_080B0940: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bhi _080B0958 + lsls r0, r4, 3 + adds r0, r1 + adds r0, r2 +_080B0950: + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + beq _080B0940 +_080B0958: + cmp r4, 0x4 + bne _080B0980 + movs r4, 0 + ldr r3, _080B0990 + movs r5, 0x3 + negs r5, r5 +_080B0964: + lsls r1, r4, 2 + adds r1, r3 + ldrb r2, [r1, 0x2] + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1, 0x2] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0964 + ldr r0, [sp] + bl DestroyTask +_080B0980: + 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 +_080B0990: .4byte 0x02019338 + thumb_func_end sub_80B0748 + + thumb_func_start unref_sub_80B0994 +unref_sub_80B0994: @ 80B0994 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _080B09A6 + ldr r0, _080B09AC + ldrb r1, [r0, 0x6] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x6] +_080B09A6: + pop {r0} + bx r0 + .align 2, 0 +_080B09AC: .4byte 0x02019204 + thumb_func_end unref_sub_80B0994 + + thumb_func_start sub_80B09B0 +sub_80B09B0: @ 80B09B0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r1, _080B09D4 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B09D8 + adds r0, r2, 0 + bl sub_80B0368 + b _080B09DE + .align 2, 0 +_080B09D4: .4byte 0x02019260 +_080B09D8: + adds r0, r2, 0 + bl sub_80B03A8 +_080B09DE: + pop {r0} + bx r0 + thumb_func_end sub_80B09B0 + + thumb_func_start sub_80B09E4 +sub_80B09E4: @ 80B09E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r9, r0 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080B0B2C + mov r1, r9 + adds r7, r1, r0 + ldrb r0, [r7] + lsls r5, r0, 2 + adds r5, r0 + lsls r5, 27 + movs r2, 0x80 + lsls r2, 22 + adds r5, r2 + lsrs r5, 24 + lsls r4, r1, 3 + ldr r0, _080B0B30 + adds r0, r4, r0 + bl LoadCompressedObjectPic + ldr r0, _080B0B34 + adds r4, r0 + adds r0, r4, 0 + bl LoadSpritePalette + mov r3, r9 + lsls r4, r3, 1 + add r4, r9 + lsls r4, 3 + ldr r0, _080B0B38 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB8 + adds r2, r5, 0 + movs r3, 0x1D + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0xF8 + adds r2, r5, 0 + movs r3, 0x1D + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B0B3C + mov r10, r1 + lsls r5, r6, 4 + adds r5, r6 + lsls r5, 2 + add r5, r10 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x40 + ldr r3, _080B0B40 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B0B44 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldrb r0, [r7] + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 6 + ldr r0, _080B0B48 + adds r3, r0 + mov r1, r8 + lsls r4, r1, 4 + add r4, r8 + lsls r4, 2 + add r4, r10 + ldrh r0, [r4, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r2, _080B0B4C + mov r10, r2 + add r0, r10 + str r0, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0xC0 + lsls r2, 19 + bl sub_8040F80 + ldrb r0, [r7] + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 6 + ldr r7, _080B0B50 + adds r3, r7 + ldrh r0, [r5, 0x4] + lsls r0, 22 + lsrs r0, 17 + add r0, r10 + str r0, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0xC0 + lsls r2, 19 + bl sub_8040F80 + ldrh r0, [r4, 0x4] + lsls r0, 22 + lsrs r0, 17 + movs r1, 0xA0 + lsls r1, 3 + adds r0, r1 + add r0, r10 + movs r2, 0 + str r2, [sp, 0x8] + ldr r1, _080B0B54 + add r3, sp, 0x8 + mov r12, r3 + str r3, [r1] + str r0, [r1, 0x4] + ldr r3, _080B0B58 + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strb r2, [r0] + strb r2, [r0] + ldrh r0, [r5, 0x4] + lsls r0, 22 + lsrs r0, 17 + movs r7, 0xA0 + lsls r7, 3 + adds r0, r7 + add r0, r10 + str r2, [sp, 0x8] + mov r2, r12 + str r2, [r1] + str r0, [r1, 0x4] + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + strh r6, [r4, 0x2E] + mov r3, r8 + strh r3, [r5, 0x2E] + mov r7, r9 + strh r7, [r4, 0x30] + mov r0, r9 + strh r0, [r5, 0x30] + mov r0, r8 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B0B2C: .4byte gUnknown_02038696 +_080B0B30: .4byte gUnknown_083CC4B4 +_080B0B34: .4byte gUnknown_083CC4D4 +_080B0B38: .4byte gSpriteTemplate_83CC53C +_080B0B3C: .4byte gSprites +_080B0B40: .4byte 0x000003ff +_080B0B44: .4byte 0xfffffc00 +_080B0B48: .4byte 0x0600e026 +_080B0B4C: .4byte 0x06010000 +_080B0B50: .4byte 0x0600e036 +_080B0B54: .4byte 0x040000d4 +_080B0B58: .4byte 0x850000c0 + thumb_func_end sub_80B09E4 + + thumb_func_start sub_80B0B5C +sub_80B0B5C: @ 80B0B5C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0B94 + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + adds r5, r1 + ldrh r0, [r5, 0x2E] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r1 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + adds r0, r5, 0 + bl DestroySpriteAndFreeResources + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0B94: .4byte gSprites + thumb_func_end sub_80B0B5C + + thumb_func_start sub_80B0B98 +sub_80B0B98: @ 80B0B98 + ldr r1, _080B0BAC + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080B0BB0 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080B0BAC: .4byte REG_BLDCNT +_080B0BB0: .4byte 0x00000907 + thumb_func_end sub_80B0B98 + + thumb_func_start sub_80B0BB4 +sub_80B0BB4: @ 80B0BB4 + ldr r0, _080B0BC0 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_080B0BC0: .4byte REG_BLDCNT + thumb_func_end sub_80B0BB4 + + thumb_func_start sub_80B0BC4 +sub_80B0BC4: @ 80B0BC4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r4, r0, 0 + mov r9, r1 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + bl sub_80B0B98 + ldr r1, _080B0C38 + mov r8, r1 + lsls r6, r4, 4 + adds r6, r4 + lsls r6, 2 + adds r0, r6, r1 + movs r1, 0x30 + ldrsh r2, [r0, r1] + lsls r2, 2 + ldr r1, _080B0C3C + adds r2, r1 + ldrb r1, [r2, 0x2] + movs r3, 0x2 + orrs r1, r3 + strb r1, [r2, 0x2] + ldrh r5, [r0, 0x2E] + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x1 + bl StartSpriteAffineAnim + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + mov r1, r8 + adds r0, r4, r1 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r0, 0x1C + add r8, r0 + add r6, r8 + ldr r0, _080B0C40 + str r0, [r6] + add r4, r8 + ldr r0, _080B0C44 + str r0, [r4] + mov r1, r9 + cmp r1, 0 + bne _080B0C48 + movs r0, 0x65 + bl PlaySE + b _080B0C4E + .align 2, 0 +_080B0C38: .4byte gSprites +_080B0C3C: .4byte 0x02019338 +_080B0C40: .4byte sub_80B0C5C +_080B0C44: .4byte SpriteCallbackDummy +_080B0C48: + movs r0, 0x2 + bl PlaySE +_080B0C4E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B0BC4 + + thumb_func_start sub_80B0C5C +sub_80B0C5C: @ 80B0C5C + push {lr} + mov r12, r0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B0CA4 + mov r0, r12 + ldrh r1, [r0, 0x2E] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080B0CA8 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080B0CA4 + mov r3, r12 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r0, _080B0CAC + mov r1, r12 + str r0, [r1, 0x1C] +_080B0CA4: + pop {r0} + bx r0 + .align 2, 0 +_080B0CA8: .4byte gSprites +_080B0CAC: .4byte sub_80B0CB0 + thumb_func_end sub_80B0C5C + + thumb_func_start sub_80B0CB0 +sub_80B0CB0: @ 80B0CB0 + push {lr} + movs r1, 0x30 + ldrsh r2, [r0, r1] + lsls r2, 2 + ldr r1, _080B0CD8 + adds r2, r1 + ldrb r3, [r2, 0x2] + movs r1, 0x3 + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x2] + ldrh r0, [r0, 0x2E] + lsls r0, 24 + lsrs r0, 24 + bl sub_80B0B5C + bl sub_80B0BB4 + pop {r0} + bx r0 + .align 2, 0 +_080B0CD8: .4byte 0x02019338 + thumb_func_end sub_80B0CB0 + + thumb_func_start sub_80B0CDC +sub_80B0CDC: @ 80B0CDC + lsls r0, 24 + lsrs r0, 22 + ldr r1, _080B0CF0 + adds r0, r1 + ldrb r2, [r0, 0x2] + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x2] + bx lr + .align 2, 0 +_080B0CF0: .4byte 0x02019338 + thumb_func_end sub_80B0CDC + + thumb_func_start unref_sub_80B0CF4 +unref_sub_80B0CF4: @ 80B0CF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r0, _080B0D5C + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + cmp r1, 0 + bne _080B0D6C + movs r4, 0 + ldr r6, _080B0D60 + adds r3, r6, 0x1 + mov r8, r3 + ldr r5, _080B0D64 + adds r7, r5, 0x1 +_080B0D1C: + lsls r1, r4, 1 + adds r0, r1, r6 + ldrb r2, [r0] + mov r3, r8 + adds r0, r1, r3 + ldrb r3, [r0] + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r1, r7 + ldrb r0, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080B0D68 + movs r1, 0 + bl FillWindowRect_DefaultPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0D1C + bl sub_80AE514 + bl sub_80AEB30 + b _080B0D70 + .align 2, 0 +_080B0D5C: .4byte 0x02000000 +_080B0D60: .4byte gUnknown_083CA308 +_080B0D64: .4byte gUnknown_083CA310 +_080B0D68: .4byte gUnknown_03004210 +_080B0D6C: + bl sub_80B0D7C +_080B0D70: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80B0CF4 + + thumb_func_start sub_80B0D7C +sub_80B0D7C: @ 80B0D7C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + movs r5, 0 + ldr r0, _080B0ED0 + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B0D98 + b _080B0EC2 +_080B0D98: + movs r4, 0 + ldr r7, _080B0ED4 + adds r3, r7, 0x1 + mov r9, r3 + ldr r6, _080B0ED8 + adds r0, r6, 0x1 + mov r8, r0 +_080B0DA6: + lsls r1, r4, 1 + adds r0, r1, r7 + ldrb r2, [r0] + mov r3, r9 + adds r0, r1, r3 + ldrb r3, [r0] + adds r0, r1, r6 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + add r1, r8 + ldrb r0, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080B0EDC + movs r1, 0 + bl FillWindowRect_DefaultPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0DA6 + movs r4, 0 + ldr r6, _080B0ED8 + adds r7, r6, 0x1 +_080B0DE2: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B0EE0 + adds r0, r1 + ldrh r2, [r0, 0x4] + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080B0E08 + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + add r1, sp, 0x8 + movs r0, 0xAE + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080B0E08: + mov r0, sp + adds r0, r5 + adds r0, 0x8 + lsls r1, r2, 16 + asrs r1, 16 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r0, _080B0EE4 + adds r0, r4, r0 + ldrb r0, [r0] + movs r1, 0x16 + adds r2, r0, 0 + muls r2, r1 + movs r3, 0x94 + lsls r3, 2 + adds r2, r3 + lsls r0, 1 + adds r1, r0, r6 + ldrb r3, [r1] + adds r0, r7 + ldrb r0, [r0] + str r0, [sp] + ldr r0, _080B0EDC + add r1, sp, 0x8 + bl sub_8003460 + movs r5, 0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0DE2 + movs r4, 0 + ldr r6, _080B0ED4 + adds r7, r6, 0x1 +_080B0E52: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B0EE0 + adds r0, r1 + ldrh r2, [r0, 0x2] + movs r1, 0x2 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080B0E78 + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + add r1, sp, 0x8 + movs r0, 0xAE + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080B0E78: + mov r0, sp + adds r0, r5 + adds r0, 0x8 + lsls r1, r2, 16 + asrs r1, 16 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r0, _080B0EE4 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + lsls r1, 1 + adds r0, r1, r6 + ldrb r3, [r0] + adds r1, r7 + ldrb r0, [r1] + str r0, [sp] + ldr r0, _080B0EDC + add r1, sp, 0x8 + bl sub_8003460 + movs r5, 0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0E52 + bl sub_80AEB30 +_080B0EC2: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0ED0: .4byte 0x02000000 +_080B0ED4: .4byte gUnknown_083CA308 +_080B0ED8: .4byte gUnknown_083CA310 +_080B0EDC: .4byte gUnknown_03004210 +_080B0EE0: .4byte 0x02019260 +_080B0EE4: .4byte gUnknown_02038696 + thumb_func_end sub_80B0D7C + + thumb_func_start unref_sub_80B0EE8 +unref_sub_80B0EE8: @ 80B0EE8 + push {r4-r7,lr} + adds r7, r0, 0 + movs r4, 0 + subs r0, r1, 0x1 + cmp r4, r0 + bge _080B0F20 + adds r6, r0, 0 +_080B0EF6: + adds r3, r0, 0 + adds r5, r4, 0x1 + cmp r0, r4 + ble _080B0F18 + lsls r0, 2 + subs r0, 0x4 + adds r0, r7 +_080B0F04: + ldr r1, [r0] + ldr r2, [r0, 0x4] + cmp r1, r2 + ble _080B0F10 + str r1, [r0, 0x4] + str r2, [r0] +_080B0F10: + subs r0, 0x4 + subs r3, 0x1 + cmp r3, r4 + bgt _080B0F04 +_080B0F18: + adds r4, r5, 0 + adds r0, r6, 0 + cmp r4, r0 + blt _080B0EF6 +_080B0F20: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80B0EE8 + + thumb_func_start sub_80B0F28 +sub_80B0F28: @ 80B0F28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + add r4, sp, 0x4 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x8 + bl memset + movs r5, 0 + add r4, sp, 0x4 + adds r6, r4, 0 + movs r7, 0 +_080B0F4E: + bl Random + adds r1, r0, 0 + mov r0, sp + adds r0, r7 + adds r0, 0x4 + strh r1, [r0] + movs r2, 0 + cmp r2, r5 + bge _080B0F86 + lsls r0, r1, 16 + lsrs r0, 16 + mov r1, sp + ldrh r1, [r1, 0x4] + cmp r0, r1 + beq _080B0F80 +_080B0F6E: + adds r2, 0x1 + cmp r2, r5 + bge _080B0F86 + lsls r0, r2, 1 + adds r0, r4, r0 + ldrh r1, [r6] + ldrh r0, [r0] + cmp r1, r0 + bne _080B0F6E +_080B0F80: + subs r6, 0x2 + subs r7, 0x2 + subs r5, 0x1 +_080B0F86: + adds r6, 0x2 + adds r7, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _080B0F4E + mov r2, r8 + cmp r2, 0 + bne _080B1050 + movs r5, 0 + ldr r3, _080B1008 + mov r8, r3 +_080B0F9C: + mov r6, r8 + strb r5, [r6] + movs r4, 0 + cmp r4, r5 + bge _080B1018 + ldr r7, _080B100C + mov r9, r7 + lsls r0, r5, 1 + adds r1, r0, 0 + add r1, r9 + mov r12, r1 + mov r2, sp + adds r2, 0x4 + str r2, [sp, 0xC] + add r0, sp + adds r0, 0x4 + str r0, [sp, 0x10] + ldr r3, _080B1008 + adds r6, r3, 0 + mov r10, r6 +_080B0FC4: + ldrb r0, [r3] + lsls r2, r0, 1 + mov r7, r9 + adds r0, r2, r7 + movs r6, 0 + ldrsh r1, [r0, r6] + mov r7, r12 + movs r6, 0 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080B0FEC + cmp r1, r0 + bne _080B1010 + ldr r7, [sp, 0xC] + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, [sp, 0x10] + ldrh r1, [r1] + cmp r0, r1 + bcs _080B1010 +_080B0FEC: + adds r2, r5, 0 + cmp r5, r4 + ble _080B1004 + subs r0, r5, 0x1 + mov r6, r10 + adds r1, r0, r6 +_080B0FF8: + ldrb r0, [r1] + strb r0, [r1, 0x1] + subs r1, 0x1 + subs r2, 0x1 + cmp r2, r4 + bgt _080B0FF8 +_080B1004: + strb r5, [r3] + b _080B1018 + .align 2, 0 +_080B1008: .4byte gUnknown_02038696 +_080B100C: .4byte gUnknown_02038670 +_080B1010: + adds r3, 0x1 + adds r4, 0x1 + cmp r4, r5 + blt _080B0FC4 +_080B1018: + cmp r4, r5 + bne _080B1020 + mov r7, r8 + strb r5, [r7] +_080B1020: + movs r0, 0x1 + add r8, r0 + adds r5, 0x1 + cmp r5, 0x3 + ble _080B0F9C + ldr r4, _080B104C + mov r0, sp + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy + movs r5, 0 +_080B1038: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, r4 + strb r5, [r0] + adds r5, 0x1 + cmp r5, 0x3 + ble _080B1038 + b _080B10FC + .align 2, 0 +_080B104C: .4byte gUnknown_02038696 +_080B1050: + mov r0, sp + movs r1, 0xFF + movs r2, 0x4 + bl memset + movs r5, 0 + ldr r3, _080B1070 + movs r6, 0 +_080B1060: + ldr r0, _080B1074 + adds r0, r6, r0 + ldrb r0, [r0, 0xB] + lsls r0, 30 + lsrs r2, r0, 30 + mov r7, sp + adds r1, r7, r2 + b _080B1082 + .align 2, 0 +_080B1070: .4byte gUnknown_02038696 +_080B1074: .4byte 0x02019260 +_080B1078: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + mov r0, sp + adds r1, r0, r2 +_080B1082: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080B1078 + strb r5, [r1] + strb r2, [r3] + adds r3, 0x1 + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B1060 + movs r5, 0 +_080B1098: + movs r4, 0x3 + adds r1, r5, 0x1 + mov r10, r1 + cmp r4, r5 + ble _080B10F6 + mov r9, r4 + ldr r2, _080B110C + mov r8, r2 + add r3, sp, 0x4 + mov r12, r3 +_080B10AC: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r6, _080B1110 + adds r1, r0, r6 + ldrb r2, [r1, 0xB] + ldr r7, _080B1114 + adds r0, r7 + ldrb r3, [r0, 0xB] + mov r1, r9 + ands r1, r2 + mov r0, r9 + ands r0, r3 + subs r3, r4, 0x1 + cmp r1, r0 + bne _080B10F0 + mov r0, r8 + adds r7, r3, r0 + adds r2, r4, r0 + ldrb r6, [r7] + ldrb r1, [r2] + cmp r6, r1 + bcs _080B10F0 + lsls r0, r3, 1 + add r0, r12 + lsls r1, r4, 1 + add r1, r12 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bcs _080B10F0 + ldrb r0, [r2] + strb r6, [r2] + strb r0, [r7] +_080B10F0: + adds r4, r3, 0 + cmp r4, r5 + bgt _080B10AC +_080B10F6: + mov r5, r10 + cmp r5, 0x2 + ble _080B1098 +_080B10FC: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B110C: .4byte gUnknown_02038696 +_080B1110: .4byte 0x02019244 +_080B1114: .4byte 0x02019260 + thumb_func_end sub_80B0F28 + + thumb_func_start sub_80B1118 +sub_80B1118: @ 80B1118 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0xA0 +_080B111E: + ldr r0, _080B1144 + adds r0, r5, r0 + ldr r1, _080B1148 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, 0x5 + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + adds r5, 0x20 + adds r4, 0x1 + cmp r4, 0x3 + ble _080B111E + bl sub_80AE514 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1144: .4byte 0x02018004 +_080B1148: .4byte gUnknown_02038696 + thumb_func_end sub_80B1118 + + thumb_func_start sub_80B114C +sub_80B114C: @ 80B114C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r7, r6, 3 + subs r0, r7, r6 + lsls r0, 2 + ldr r4, _080B11B8 + adds r5, r0, r4 + movs r0, 0 + strh r0, [r5, 0x2] + strh r0, [r5] + adds r0, r6, 0 + bl sub_80AF404 + lsls r0, 24 + mov r8, r4 + cmp r0, 0 + bne _080B1176 + b _080B13DC +_080B1176: + ldrh r0, [r5, 0x6] + ldr r1, _080B11BC + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0] + mov r12, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + strb r0, [r5, 0xA] + ldrh r0, [r5, 0x6] + ldrh r1, [r5, 0x8] + cmp r0, r1 + bne _080B11C0 + cmp r0, 0 + beq _080B11C0 + ldrb r0, [r5, 0x15] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5, 0x15] + ldrb r2, [r5, 0xB] + lsls r1, r2, 25 + lsrs r1, 29 + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 4 + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0xB] + b _080B11D8 + .align 2, 0 +_080B11B8: .4byte 0x02019260 +_080B11BC: .4byte gContestMoves +_080B11C0: + lsls r4, r6, 3 + subs r1, r4, r6 + lsls r1, 2 + ldr r3, _080B1264 + adds r1, r3 + ldrb r2, [r1, 0xB] + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + adds r7, r4, 0 + mov r8, r3 +_080B11D8: + subs r0, r7, r6 + lsls r0, 2 + add r0, r8 + ldr r2, _080B1268 + mov r1, r12 + lsls r3, r1, 2 + adds r2, r3, r2 + ldrb r1, [r2, 0x1] + strh r1, [r0] + strh r1, [r0, 0x2] + mov r0, r8 + adds r0, 0x70 + ldrb r1, [r2, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strb r6, [r0, 0x11] + movs r2, 0 + adds r4, r3, 0 + movs r1, 0 + mov r5, r8 + adds r5, 0x7D + mov r3, r8 +_080B1204: + strb r1, [r3, 0xE] + adds r0, r5, r2 + strb r1, [r0] + adds r3, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B1204 + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1264 + adds r5, r0, r1 + ldrb r1, [r5, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B123C + ldrh r0, [r5, 0x8] + ldrh r1, [r5, 0x6] + bl AreMovesContestCombo + lsls r0, 24 + cmp r0, 0 + bne _080B123C + ldrb r1, [r5, 0x15] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x15] +_080B123C: + ldr r0, _080B126C + adds r0, r4, r0 + ldr r0, [r0] + bl _call_via_r0 + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1264 + adds r2, r0, r1 + ldrb r1, [r2, 0x10] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0x10 + bne _080B1270 + ldrh r1, [r2, 0x2] + subs r1, 0xA + movs r0, 0xD + ldrsb r0, [r2, r0] + b _080B128A + .align 2, 0 +_080B1264: .4byte 0x02019260 +_080B1268: .4byte gContestEffects +_080B126C: .4byte gContestEffectFuncs +_080B1270: + ldrb r1, [r2, 0x11] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B1284 + movs r1, 0xD + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + b _080B1288 +_080B1284: + movs r0, 0xD + ldrsb r0, [r2, r0] +_080B1288: + ldrh r1, [r2, 0x2] +_080B128A: + adds r0, r1 + strh r0, [r2, 0x2] + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B12E8 + adds r4, r0, r1 + movs r0, 0 + strb r0, [r4, 0x16] + ldrb r1, [r4, 0x15] + subs r0, 0x41 + ands r0, r1 + strb r0, [r4, 0x15] + adds r0, r6, 0 + bl sub_80B214C + lsls r0, 24 + cmp r0, 0 + beq _080B1322 + ldrh r0, [r4, 0x8] + ldrh r1, [r4, 0x6] + bl AreMovesContestCombo + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080B12EC + ldrb r1, [r4, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B12EC + strb r2, [r4, 0x16] + movs r0, 0x40 + orrs r1, r0 + movs r0, 0x11 + negs r0, r0 + ands r1, r0 + movs r0, 0 + ldrsh r2, [r4, r0] + ldrb r0, [r4, 0x16] + muls r0, r2 + strb r0, [r4, 0x17] + movs r0, 0x8 + orrs r1, r0 + strb r1, [r4, 0x15] + b _080B1322 + .align 2, 0 +_080B12E8: .4byte 0x02019260 +_080B12EC: + ldr r2, _080B1310 + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1314 + adds r3, r0, r1 + ldrh r0, [r3, 0x6] + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0 + beq _080B1318 + ldrb r0, [r3, 0x15] + movs r1, 0x10 + orrs r0, r1 + movs r1, 0x40 + orrs r0, r1 + b _080B1320 + .align 2, 0 +_080B1310: .4byte gContestMoves +_080B1314: .4byte 0x02019260 +_080B1318: + ldrb r1, [r3, 0x15] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 +_080B1320: + strb r0, [r3, 0x15] +_080B1322: + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B139C + mov r8, r1 + adds r4, r0, r1 + ldrb r1, [r4, 0x15] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080B1348 + ldrb r0, [r4, 0xB] + lsls r0, 25 + lsrs r0, 29 + adds r0, 0x1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + strb r1, [r4, 0x18] +_080B1348: + ldrb r1, [r4, 0xC] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080B1362 + ldrb r0, [r4, 0x15] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r4, 0x15] + movs r0, 0 + strh r0, [r4, 0x2] + strh r0, [r4] +_080B1362: + ldrh r0, [r4, 0x6] + bl contest_get_move_excitement + mov r2, r8 + adds r2, 0xC8 + strb r0, [r2] + ldrb r1, [r4, 0x11] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B137A + strb r5, [r2] +_080B137A: + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + ble _080B13A4 + mov r0, r8 + subs r0, 0x5C + ldrb r0, [r0, 0x13] + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r2, r1] + adds r0, r1 + cmp r0, 0x4 + ble _080B13A0 + movs r0, 0x3C + b _080B13A6 + .align 2, 0 +_080B139C: .4byte 0x02019260 +_080B13A0: + movs r0, 0xA + b _080B13A6 +_080B13A4: + movs r0, 0 +_080B13A6: + strb r0, [r2, 0x2] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + b _080B13CA +_080B13BE: + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 +_080B13C4: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080B13D2 +_080B13CA: + cmp r2, r6 + beq _080B13C4 + cmp r0, 0 + bne _080B13BE +_080B13D2: + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B13E8 + adds r0, r1 + strb r2, [r0, 0x1B] +_080B13DC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B13E8: .4byte 0x02019260 + thumb_func_end sub_80B114C + + thumb_func_start sub_80B13EC +sub_80B13EC: @ 80B13EC + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _080B1400 + adds r2, r0 + strb r1, [r2, 0x13] + bx lr + .align 2, 0 +_080B1400: .4byte 0x02019260 + thumb_func_end sub_80B13EC + + thumb_func_start sub_80B1404 +sub_80B1404: @ 80B1404 + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _080B1418 + adds r2, r0 + strb r1, [r2, 0x14] + bx lr + .align 2, 0 +_080B1418: .4byte 0x02019260 + thumb_func_end sub_80B1404 + + thumb_func_start sub_80B141C +sub_80B141C: @ 80B141C + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x3B + bls _080B1436 + movs r1, 0x35 + bl sub_80B13EC + b _080B1466 +_080B1436: + cmp r1, 0x27 + bls _080B1442 + movs r1, 0x34 + bl sub_80B13EC + b _080B1466 +_080B1442: + cmp r1, 0x1D + bls _080B144E + movs r1, 0x33 + bl sub_80B13EC + b _080B1466 +_080B144E: + cmp r1, 0x13 + bls _080B145A + movs r1, 0x32 + bl sub_80B13EC + b _080B1466 +_080B145A: + cmp r2, 0x9 + bls _080B1466 + adds r0, r3, 0 + movs r1, 0x31 + bl sub_80B13EC +_080B1466: + pop {r0} + bx r0 + thumb_func_end sub_80B141C + + thumb_func_start sub_80B146C +sub_80B146C: @ 80B146C + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080B14C8 + lsls r1, r4, 6 + ldr r2, _080B14CC + adds r1, r2 + bl StringCopy + ldr r0, _080B14D0 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r4, _080B14D4 + adds r1, r4 + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080B14D8 + adds r1, r2 + bl StringCopy + ldr r2, _080B14DC + adds r0, r4, 0 + adds r0, 0x70 + ldrb r1, [r0, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x6] + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + lsls r1, r0, 29 + cmp r1, 0 + bne _080B14E8 + ldr r0, _080B14E0 + ldr r1, _080B14E4 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B14C8: .4byte gStringVar1 +_080B14CC: .4byte gUnknown_02038572 +_080B14D0: .4byte gStringVar2 +_080B14D4: .4byte 0x02019260 +_080B14D8: .4byte gMoveNames +_080B14DC: .4byte gContestMoves +_080B14E0: .4byte gStringVar3 +_080B14E4: .4byte gUnknown_083CC280 +_080B14E8: + lsrs r0, r1, 29 + cmp r0, 0x1 + bne _080B1500 + ldr r0, _080B14F8 + ldr r1, _080B14FC + bl StringCopy + b _080B1538 + .align 2, 0 +_080B14F8: .4byte gStringVar3 +_080B14FC: .4byte gUnknown_083CC288 +_080B1500: + lsrs r0, r1, 29 + cmp r0, 0x2 + bne _080B1518 + ldr r0, _080B1510 + ldr r1, _080B1514 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B1510: .4byte gStringVar3 +_080B1514: .4byte gUnknown_083CC290 +_080B1518: + lsrs r0, r1, 29 + cmp r0, 0x3 + bne _080B1530 + ldr r0, _080B1528 + ldr r1, _080B152C + bl StringCopy + b _080B1538 + .align 2, 0 +_080B1528: .4byte gStringVar3 +_080B152C: .4byte gUnknown_083CC299 +_080B1530: + ldr r0, _080B1568 + ldr r1, _080B156C + bl StringCopy +_080B1538: + ldr r4, _080B1570 + ldr r1, _080B1574 + lsls r0, r5, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringExpandPlaceholders + bl sub_80AF138 + ldr r0, _080B1578 + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1568: .4byte gStringVar3 +_080B156C: .4byte gUnknown_083CC2A3 +_080B1570: .4byte gStringVar4 +_080B1574: .4byte gUnknown_083CC188 +_080B1578: .4byte gMenuWindow + thumb_func_end sub_80B146C + + thumb_func_start sub_80B157C +sub_80B157C: @ 80B157C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080B1598 + adds r1, r0 + ldrb r0, [r1, 0xC] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1, 0xC] + movs r0, 0 + strh r0, [r1, 0x6] + bx lr + .align 2, 0 +_080B1598: .4byte 0x02019260 + thumb_func_end sub_80B157C + + thumb_func_start sub_80B159C +sub_80B159C: @ 80B159C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r0, 0 + mov r12, r0 + movs r4, 0 + ldr r1, _080B1600 + mov r9, r1 + add r2, sp, 0x4 + mov r6, r9 + movs r5, 0 + adds r3, r2, 0 +_080B15B8: + mov r0, sp + adds r1, r0, r4 + adds r0, r4, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r4 + strb r5, [r0] + adds r4, 0x1 + cmp r4, 0x3 + ble _080B15B8 + movs r4, 0 + ldr r7, _080B1604 + adds r5, r2, 0 + movs r1, 0x1 + mov r8, r1 +_080B15D6: + movs r2, 0 + adds r1, r7, 0 +_080B15DA: + ldrb r0, [r1, 0x19] + cmp r0, r4 + beq _080B1608 + adds r1, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B15DA +_080B15E8: + cmp r2, 0x4 + bne _080B1680 + movs r2, 0 + ldrb r0, [r5] + cmp r0, 0 + bne _080B1616 + ldrb r0, [r7, 0x19] + cmp r0, 0xFF + bne _080B1616 + mov r12, r2 + movs r2, 0x1 + b _080B163A + .align 2, 0 +_080B1600: .4byte gUnknown_02038696 +_080B1604: .4byte 0x02019260 +_080B1608: + mov r1, sp + adds r0, r1, r2 + strb r4, [r0] + adds r0, r5, r2 + mov r1, r8 + strb r1, [r0] + b _080B15E8 +_080B1616: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080B1672 + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080B1616 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x19] + cmp r0, 0xFF + bne _080B1616 + lsls r0, r2, 24 + lsrs r0, 24 + mov r12, r0 + adds r2, 0x1 +_080B163A: + cmp r2, 0x3 + bgt _080B1672 + ldr r6, _080B16C8 + lsls r0, r2, 3 + subs r0, r2 + lsls r3, r0, 2 +_080B1646: + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080B166A + adds r0, r3, r7 + ldrb r0, [r0, 0x19] + cmp r0, 0xFF + bne _080B166A + mov r1, r12 + adds r0, r1, r6 + adds r1, r2, r6 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B166A + lsls r0, r2, 24 + lsrs r0, 24 + mov r12, r0 +_080B166A: + adds r3, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B1646 +_080B1672: + mov r0, sp + add r0, r12 + strb r4, [r0] + mov r1, r12 + adds r0, r5, r1 + mov r1, r8 + strb r1, [r0] +_080B1680: + adds r4, 0x1 + cmp r4, 0x3 + ble _080B15D6 + movs r4, 0 + ldr r5, _080B16CC + adds r3, r5, 0 + subs r3, 0x60 + movs r6, 0xFF + movs r7, 0x3F +_080B1692: + adds r1, r4, r5 + mov r0, sp + adds r2, r0, r4 + ldrb r0, [r2] + strb r0, [r1] + ldrb r0, [r3, 0x9] + orrs r0, r6 + strb r0, [r3, 0x9] + ldrb r1, [r3] + adds r0, r7, 0 + ands r0, r1 + strb r0, [r3] + mov r0, r9 + adds r1, r4, r0 + ldrb r0, [r2] + strb r0, [r1] + adds r3, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _080B1692 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B16C8: .4byte gUnknown_02038696 +_080B16CC: .4byte 0x020192d0 + thumb_func_end sub_80B159C + + thumb_func_start sub_80B16D0 +sub_80B16D0: @ 80B16D0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x1 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x54 + ble _080B1702 + movs r0, 0 + strh r0, [r2, 0x30] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldr r0, _080B1708 + str r0, [r2, 0x1C] + ldr r2, _080B170C + ldrb r1, [r2, 0x6] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x6] +_080B1702: + pop {r0} + bx r0 + .align 2, 0 +_080B1708: .4byte SpriteCallbackDummy +_080B170C: .4byte 0x02019204 + thumb_func_end sub_80B16D0 + + thumb_func_start sub_80B1710 +sub_80B1710: @ 80B1710 + push {r4,r5,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080B172C + ldrb r5, [r0, 0x12] + cmp r1, 0x8 + bls _080B1720 + b _080B18C0 +_080B1720: + lsls r0, r1, 2 + ldr r1, _080B1730 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B172C: .4byte 0x02019204 +_080B1730: .4byte _080B1734 + .align 2, 0 +_080B1734: + .4byte _080B1758 + .4byte _080B1758 + .4byte _080B1788 + .4byte _080B17BC + .4byte _080B17F0 + .4byte _080B1824 + .4byte _080B1858 + .4byte _080B18C0 + .4byte _080B188C +_080B1758: + ldr r0, _080B177C + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x2E] + ldr r2, _080B1780 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1784 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x20 + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B177C: .4byte gSprites +_080B1780: .4byte 0x000003ff +_080B1784: .4byte 0xfffffc00 +_080B1788: + ldr r0, _080B17B0 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x4 + ldr r3, _080B17B4 + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B17B8 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x1F + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B17B0: .4byte gSprites +_080B17B4: .4byte 0x000003ff +_080B17B8: .4byte 0xfffffc00 +_080B17BC: + ldr r0, _080B17E4 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x8 + ldr r3, _080B17E8 + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B17EC + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x1F + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B17E4: .4byte gSprites +_080B17E8: .4byte 0x000003ff +_080B17EC: .4byte 0xfffffc00 +_080B17F0: + ldr r0, _080B1818 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0xC + ldr r3, _080B181C + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1820 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B1818: .4byte gSprites +_080B181C: .4byte 0x000003ff +_080B1820: .4byte 0xfffffc00 +_080B1824: + ldr r0, _080B184C + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0xC + ldr r3, _080B1850 + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1854 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B184C: .4byte gSprites +_080B1850: .4byte 0x000003ff +_080B1854: .4byte 0xfffffc00 +_080B1858: + ldr r0, _080B1880 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x10 + ldr r3, _080B1884 + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1888 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B1880: .4byte gSprites +_080B1884: .4byte 0x000003ff +_080B1888: .4byte 0xfffffc00 +_080B188C: + ldr r0, _080B18B4 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x18 + ldr r3, _080B18B8 + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B18BC + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0xC3 + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B18B4: .4byte gSprites +_080B18B8: .4byte 0x000003ff +_080B18BC: .4byte 0xfffffc00 +_080B18C0: + ldr r0, _080B1914 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x14 + ldr r3, _080B1918 + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B191C + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE +_080B18E4: + adds r2, r4, 0 + ldr r4, _080B1914 + adds r2, r5 + lsls r2, 2 + adds r1, r2, r4 + movs r0, 0 + strh r0, [r1, 0x30] + adds r1, 0x3E + ldrb r3, [r1] + subs r0, 0x5 + ands r0, r3 + strb r0, [r1] + adds r4, 0x1C + adds r2, r4 + ldr r0, _080B1920 + str r0, [r2] + ldr r2, _080B1924 + ldrb r0, [r2, 0x6] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x6] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1914: .4byte gSprites +_080B1918: .4byte 0x000003ff +_080B191C: .4byte 0xfffffc00 +_080B1920: .4byte sub_80B16D0 +_080B1924: .4byte 0x02019204 + thumb_func_end sub_80B1710 + + thumb_func_start sub_80B1928 +sub_80B1928: @ 80B1928 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r6, _080B19BC + ldr r0, _080B19C0 + mov r10, r0 + movs r1, 0x58 + adds r1, r6 + mov r9, r1 + ldr r0, _080B19C4 + mov r8, r0 + ldr r7, _080B19C8 +_080B1946: + movs r0, 0x13 + ldrsb r0, [r6, r0] + ldr r4, _080B19CC + cmp r5, r0 + bge _080B1952 + adds r4, 0x40 +_080B1952: + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r0, r5, 0 + adds r0, 0x11 + adds r1, r0 + lsls r1, 5 + add r1, r8 + adds r0, r4, 0 + adds r2, r7, 0 + bl CpuSet + adds r0, r4, 0 + adds r0, 0x20 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r10 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r5, 0 + adds r2, 0x19 + adds r1, r2 + lsls r1, 5 + add r1, r8 + adds r2, r7, 0 + bl CpuSet + movs r0, 0x13 + ldrsb r0, [r6, r0] + cmp r0, 0x4 + ble _080B19A8 + bl sub_80B1A2C +_080B19A8: + adds r5, 0x1 + cmp r5, 0x4 + ble _080B1946 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B19BC: .4byte 0x02019204 +_080B19C0: .4byte gSprites +_080B19C4: .4byte 0x06010000 +_080B19C8: .4byte REG_BG0CNT +_080B19CC: .4byte gContestApplauseMeterGfx + thumb_func_end sub_80B1928 + + thumb_func_start unref_sub_80B19D0 +unref_sub_80B19D0: @ 80B19D0 + push {lr} + sub sp, 0x18 + ldr r1, _080B19F4 + add r0, sp, 0x4 + bl StringCopy + ldr r0, _080B19F8 + movs r2, 0xAA + lsls r2, 2 + movs r1, 0 + str r1, [sp] + add r1, sp, 0x4 + movs r3, 0 + bl sub_8003460 + add sp, 0x18 + pop {r0} + bx r0 + .align 2, 0 +_080B19F4: .4byte gUnknown_083CC2EC +_080B19F8: .4byte gUnknown_03004210 + thumb_func_end unref_sub_80B19D0 + + thumb_func_start contest_get_move_excitement +contest_get_move_excitement: @ 80B19FC + lsls r0, 16 + ldr r3, _080B1A20 + ldr r1, _080B1A24 + lsrs r0, 13 + adds r0, r1 + ldrb r1, [r0, 0x1] + lsls r1, 29 + lsrs r1, 29 + ldr r0, _080B1A28 + ldrh r2, [r0] + lsls r0, r2, 2 + adds r0, r2 + adds r1, r0 + adds r1, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + bx lr + .align 2, 0 +_080B1A20: .4byte gContestExcitementTable +_080B1A24: .4byte gContestMoves +_080B1A28: .4byte gUnknown_0203869C + thumb_func_end contest_get_move_excitement + + thumb_func_start sub_80B1A2C +sub_80B1A2C: @ 80B1A2C + push {r4,r5,lr} + ldr r0, _080B1A60 + movs r1, 0xA + bl CreateTask + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080B1A64 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x1 + strh r0, [r4, 0xA] + ldr r0, _080B1A68 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080B1A60: .4byte c3_08130B10 +_080B1A64: .4byte gTasks +_080B1A68: .4byte 0x0000abe2 + thumb_func_end sub_80B1A2C + + thumb_func_start c3_08130B10 +c3_08130B10: @ 80B1A6C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B1A9C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080B1B06 + movs r0, 0 + strh r0, [r2, 0x8] + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080B1AA0 + ldrh r0, [r2, 0x10] + adds r0, 0x1 + b _080B1AA4 + .align 2, 0 +_080B1A9C: .4byte gTasks +_080B1AA0: + ldrh r0, [r2, 0x10] + subs r0, 0x1 +_080B1AA4: + strh r0, [r2, 0x10] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + lsls r0, 4 + movs r3, 0x84 + lsls r3, 1 + adds r6, r3, 0 + adds r0, r6 + lsls r0, 16 + lsrs r0, 16 + ldrb r2, [r4, 0x10] + ldr r3, _080B1B0C + movs r1, 0x1 + bl BlendPalette + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B1AD6 + cmp r0, 0x10 + bne _080B1B06 +_080B1AD6: + ldrh r0, [r4, 0xE] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0xE] + ldr r0, _080B1B10 + ldrb r0, [r0, 0x13] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bgt _080B1B06 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 4 + adds r0, r6 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1F + bl BlendPalette + adds r0, r5, 0 + bl DestroyTask +_080B1B06: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1B0C: .4byte 0x00007fff +_080B1B10: .4byte 0x02019204 + thumb_func_end c3_08130B10 + + thumb_func_start sub_80B1B14 +sub_80B1B14: @ 80B1B14 + push {r4,lr} + ldr r0, _080B1B58 + movs r1, 0xA + bl CreateTask + ldr r4, _080B1B5C + ldr r3, _080B1B60 + adds r2, r3, 0 + adds r2, 0x58 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B1B64 + strh r1, [r0, 0x24] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r3, 0x6] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1B58: .4byte sub_80B1B68 +_080B1B5C: .4byte gSprites +_080B1B60: .4byte 0x02019204 +_080B1B64: .4byte 0x0000ffba + thumb_func_end sub_80B1B14 + + thumb_func_start sub_80B1B68 +sub_80B1B68: @ 80B1B68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + ldr r4, _080B1BD0 + adds r0, r4, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B1BD4 + adds r2, r0, r1 + ldr r0, _080B1BD8 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r5, 0xD0 + lsls r5, 3 + adds r0, r5, 0 + ldrh r5, [r1, 0x1C] + adds r0, r5 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 24 + ldrh r5, [r2, 0x24] + adds r0, r5 + strh r0, [r2, 0x24] + ldrb r0, [r1, 0x1C] + strh r0, [r1, 0x1C] + movs r1, 0x24 + ldrsh r0, [r2, r1] + cmp r0, 0 + ble _080B1BB2 + movs r0, 0 + strh r0, [r2, 0x24] +_080B1BB2: + movs r5, 0x24 + ldrsh r0, [r2, r5] + cmp r0, 0 + bne _080B1BCA + ldrb r1, [r4, 0x6] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x6] + adds r0, r3, 0 + bl DestroyTask +_080B1BCA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1BD0: .4byte 0x02019204 +_080B1BD4: .4byte gSprites +_080B1BD8: .4byte gTasks + thumb_func_end sub_80B1B68 + + thumb_func_start sub_80B1BDC +sub_80B1BDC: @ 80B1BDC + push {r4-r6,lr} + ldr r6, _080B1C04 + ldr r4, _080B1C08 + adds r5, r4, 0 + adds r5, 0x58 + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + bge _080B1C0C + ldrb r1, [r4, 0x6] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + b _080B1C28 + .align 2, 0 +_080B1C04: .4byte gSprites +_080B1C08: .4byte 0x02019204 +_080B1C0C: + ldr r0, _080B1C30 + movs r1, 0xA + bl CreateTask + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + strh r1, [r0, 0x24] + ldrb r0, [r4, 0x6] + movs r1, 0x40 + orrs r0, r1 +_080B1C28: + strb r0, [r4, 0x6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1C30: .4byte sub_80B1C34 + thumb_func_end sub_80B1BDC + + thumb_func_start sub_80B1C34 +sub_80B1C34: @ 80B1C34 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r5, _080B1CAC + adds r0, r5, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B1CB0 + adds r3, r0, r1 + ldr r0, _080B1CB4 + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + adds r2, r0 + movs r1, 0xD0 + lsls r1, 3 + adds r0, r1, 0 + ldrh r1, [r2, 0x1C] + adds r0, r1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r3, 0x24] + subs r1, r0 + strh r1, [r3, 0x24] + ldrb r0, [r2, 0x1C] + strh r0, [r2, 0x1C] + movs r2, 0x24 + ldrsh r0, [r3, r2] + movs r1, 0x46 + negs r1, r1 + cmp r0, r1 + bge _080B1C82 + ldr r0, _080B1CB8 + strh r0, [r3, 0x24] +_080B1C82: + movs r2, 0x24 + ldrsh r0, [r3, r2] + cmp r0, r1 + bne _080B1CA6 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, 0x6] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x6] + adds r0, r4, 0 + bl DestroyTask +_080B1CA6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1CAC: .4byte 0x02019204 +_080B1CB0: .4byte gSprites +_080B1CB4: .4byte gTasks +_080B1CB8: .4byte 0x0000ffba + thumb_func_end sub_80B1C34 + + thumb_func_start sub_80B1CBC +sub_80B1CBC: @ 80B1CBC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B1CF0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B1CF4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + ldr r2, _080B1CF8 + ldrb r0, [r2, 0x6] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1CF0: .4byte sub_80B1CFC +_080B1CF4: .4byte gTasks +_080B1CF8: .4byte 0x02019204 + thumb_func_end sub_80B1CBC + + thumb_func_start sub_80B1CFC +sub_80B1CFC: @ 80B1CFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B1D20 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B1D30 + cmp r0, 0x1 + bgt _080B1D24 + cmp r0, 0 + beq _080B1D2A + b _080B1D78 + .align 2, 0 +_080B1D20: .4byte gTasks +_080B1D24: + cmp r0, 0x2 + beq _080B1D50 + b _080B1D78 +_080B1D2A: + bl sub_80B1B14 + b _080B1D44 +_080B1D30: + ldr r0, _080B1D4C + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080B1D78 + movs r0, 0x8 + ldrsb r0, [r4, r0] + bl nullsub_18 +_080B1D44: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _080B1D78 + .align 2, 0 +_080B1D4C: .4byte 0x02019204 +_080B1D50: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B1D78 + movs r0, 0 + strh r0, [r4, 0x1E] + bl sub_80B1928 + ldr r2, _080B1D80 + ldrb r1, [r2, 0x6] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x6] + adds r0, r5, 0 + bl DestroyTask +_080B1D78: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1D80: .4byte 0x02019204 + thumb_func_end sub_80B1CFC + + thumb_func_start unref_sub_80B1D84 +unref_sub_80B1D84: @ 80B1D84 + ldr r3, _080B1DB0 + ldr r2, _080B1DB4 + adds r2, 0x58 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x24] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080B1DB0: .4byte gSprites +_080B1DB4: .4byte 0x02019204 + thumb_func_end unref_sub_80B1D84 + + thumb_func_start unref_sub_80B1DB8 +unref_sub_80B1DB8: @ 80B1DB8 + ldr r2, _080B1DD4 + ldr r0, _080B1DD8 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080B1DD4: .4byte gSprites +_080B1DD8: .4byte 0x02019204 + thumb_func_end unref_sub_80B1DB8 + + thumb_func_start sub_80B1DDC +sub_80B1DDC: @ 80B1DDC + push {lr} + ldr r0, _080B1DF4 + movs r1, 0xF + bl CreateTask + ldr r2, _080B1DF8 + ldrb r0, [r2, 0x6] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x6] + pop {r0} + bx r0 + .align 2, 0 +_080B1DF4: .4byte sub_80B1DFC +_080B1DF8: .4byte 0x02019204 + thumb_func_end sub_80B1DDC + + thumb_func_start sub_80B1DFC +sub_80B1DFC: @ 80B1DFC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080B1E3C + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + adds r6, r2, 0 + cmp r0, 0x6 + ble _080B1E8E + movs r0, 0 + strh r0, [r3, 0x1C] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B1E50 + ldr r1, _080B1E40 + ldr r2, _080B1E44 + ldr r0, _080B1E48 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B1E4C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080B1E66 + .align 2, 0 +_080B1E3C: .4byte gTasks +_080B1E40: .4byte 0x02016800 +_080B1E44: .4byte 0x06002000 +_080B1E48: .4byte 0x040000d4 +_080B1E4C: .4byte 0x84000400 +_080B1E50: + ldr r1, _080B1E94 + ldr r2, _080B1E98 + ldr r0, _080B1E9C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B1EA0 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] +_080B1E66: + adds r0, r4, 0 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r0, 0x1E] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0x1E] + movs r1, 0x20 + ldrsh r0, [r0, r1] + cmp r0, 0x9 + bne _080B1E8E + ldr r2, _080B1EA4 + ldrb r1, [r2, 0x6] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x6] + adds r0, r5, 0 + bl DestroyTask +_080B1E8E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1E94: .4byte 0x02015800 +_080B1E98: .4byte 0x06002000 +_080B1E9C: .4byte 0x040000d4 +_080B1EA0: .4byte 0x84000400 +_080B1EA4: .4byte 0x02019204 + thumb_func_end sub_80B1DFC + + thumb_func_start sub_80B1EA8 +sub_80B1EA8: @ 80B1EA8 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080B1EE4 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + cmp r4, 0 + ble _080B1F08 + ldr r7, _080B1EE8 + lsls r0, r5, 24 + adds r4, r0, 0 + cmp r4, 0 + ble _080B1EF0 + movs r5, 0 + ldr r2, _080B1EEC + movs r1, 0x13 + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + b _080B1F1E + .align 2, 0 +_080B1EE4: .4byte sub_80B1F4C +_080B1EE8: .4byte 0x0000237e +_080B1EEC: .4byte 0x02019204 +_080B1EF0: + ldr r2, _080B1F04 + movs r1, 0x13 + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + b _080B1F1E + .align 2, 0 +_080B1F04: .4byte 0x02019204 +_080B1F08: + movs r7, 0 + lsls r0, r5, 24 + adds r4, r0, 0 + cmp r4, 0 + ble _080B1F18 + movs r5, 0 + movs r3, 0xC + b _080B1F1C +_080B1F18: + movs r5, 0xC + movs r3, 0 +_080B1F1C: + ldr r2, _080B1F44 +_080B1F1E: + ldr r1, _080B1F48 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0x8] + strh r5, [r0, 0xA] + asrs r1, r4, 24 + strh r1, [r0, 0xC] + strh r3, [r0, 0xE] + ldrb r1, [r2, 0x7] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x7] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1F44: .4byte 0x02019204 +_080B1F48: .4byte gTasks + thumb_func_end sub_80B1EA8 + + thumb_func_start sub_80B1F4C +sub_80B1F4C: @ 80B1F4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080B1F7C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + cmp r0, 0 + blt _080B1FC4 + movs r0, 0 + strh r0, [r3, 0x1C] + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0 + ble _080B1F80 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + b _080B1F84 + .align 2, 0 +_080B1F7C: .4byte gTasks +_080B1F80: + ldrh r0, [r3, 0xA] + subs r0, 0x1 +_080B1F84: + strh r0, [r3, 0xA] + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r2 + ldrb r2, [r4, 0xA] + ldrh r3, [r4, 0x8] + movs r0, 0x11 + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldrh r3, [r4, 0x8] + movs r0, 0x1A + movs r1, 0x1 + bl BlendPalette + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B1FC4 + adds r0, r5, 0 + bl DestroyTask + ldr r2, _080B1FCC + ldrb r1, [r2, 0x7] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x7] +_080B1FC4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1FCC: .4byte 0x02019204 + thumb_func_end sub_80B1F4C + + thumb_func_start sub_80B1FD0 +sub_80B1FD0: @ 80B1FD0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r0, _080B204C + ldr r6, _080B2050 + adds r4, r0, 0 + adds r4, 0xD8 + adds r7, r0, 0 +_080B1FE8: + ldrb r1, [r7, 0x10] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _080B2064 + mov r0, r8 + cmp r0, 0 + beq _080B2064 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80B208C + ldrb r2, [r4, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _080B2054 + adds r1, r2 + ldr r2, _080B2058 + bl CpuSet + ldrb r0, [r4, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldr r2, _080B205C + ldr r0, _080B2060 + adds r0, r5, r0 + ldrb r0, [r0] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1, 0x22] + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r3, 0x5 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + b _080B2076 + .align 2, 0 +_080B204C: .4byte 0x02019260 +_080B2050: .4byte gSprites +_080B2054: .4byte 0x060100a0 +_080B2058: .4byte REG_BG0HOFS +_080B205C: .4byte gUnknown_083CA33C +_080B2060: .4byte gUnknown_02038696 +_080B2064: + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080B2076: + strb r1, [r0] + adds r4, 0x4 + adds r7, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B1FE8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B1FD0 + + thumb_func_start sub_80B208C +sub_80B208C: @ 80B208C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080B20B0 + adds r2, r1, r0 + ldrb r1, [r2, 0x10] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x40 + bne _080B20B8 + ldrb r0, [r2, 0x19] + lsls r0, 6 + ldr r1, _080B20B4 + adds r0, r1 + b _080B20BA + .align 2, 0 +_080B20B0: .4byte 0x02019260 +_080B20B4: .4byte gContestNextTurnNumbersGfx +_080B20B8: + ldr r0, _080B20C0 +_080B20BA: + pop {r1} + bx r1 + .align 2, 0 +_080B20C0: .4byte gContestNextTurnRandomGfx + thumb_func_end sub_80B208C + + thumb_func_start unref_sub_80B20C4 +unref_sub_80B20C4: @ 80B20C4 + push {r4-r7,lr} + movs r6, 0 + ldr r7, _080B2134 +_080B20CA: + adds r0, r6, r7 + ldrb r0, [r0] + cmp r0, 0 + beq _080B2126 + lsls r0, r6, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080B2126 + ldr r0, _080B2138 + adds r0, r6, r0 + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + adds r4, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_80AEFE8 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 6 + ldr r2, _080B213C + adds r1, r4, r2 + strh r0, [r1] + ldr r1, _080B2140 + adds r2, r4, r1 + adds r1, r0, 0x1 + strh r1, [r2] + ldr r1, _080B2144 + adds r2, r4, r1 + adds r1, r0, 0 + adds r1, 0x10 + strh r1, [r2] + ldr r2, _080B2148 + adds r4, r2 + adds r0, 0x11 + strh r0, [r4] + movs r0, 0x63 + bl PlaySE +_080B2126: + adds r6, 0x1 + cmp r6, 0x3 + ble _080B20CA + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2134: .4byte 0x020192dd +_080B2138: .4byte gUnknown_02038696 +_080B213C: .4byte 0x0600c028 +_080B2140: .4byte 0x0600c02a +_080B2144: .4byte 0x0600c068 +_080B2148: .4byte 0x0600c06a + thumb_func_end unref_sub_80B20C4 + + thumb_func_start sub_80B214C +sub_80B214C: @ 80B214C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080B2178 + adds r2, r1, r0 + ldrb r1, [r2, 0x15] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080B2172 + ldrb r1, [r2, 0xC] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080B217C +_080B2172: + movs r0, 0 + b _080B217E + .align 2, 0 +_080B2178: .4byte 0x02019260 +_080B217C: + movs r0, 0x1 +_080B217E: + pop {r1} + bx r1 + thumb_func_end sub_80B214C + + thumb_func_start sub_80B2184 +sub_80B2184: @ 80B2184 + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _080B2250 + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080B2254 + movs r2, 0xF0 + strh r2, [r0] + ldr r0, _080B2258 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080B225C + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080B2260 + movs r0, 0 + str r0, [sp] + ldr r0, _080B2264 + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080B2268 + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080B226C + bl LZDecompressVram + ldrb r1, [r4] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r4] + movs r4, 0 + ldr r6, _080B2270 + adds r7, r2, 0 + movs r5, 0x4 + ldr r3, _080B2274 +_080B21EE: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + ldrb r0, [r3, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + adds r3, 0x4 + adds r4, 0x1 + cmp r4, 0x3 + ble _080B21EE + ldr r3, _080B2278 + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r4, 0x1 + orrs r0, r4 + strb r0, [r3] + ldr r2, _080B227C + ldrb r0, [r2] + ands r1, r0 + orrs r1, r4 + strb r1, [r2] + adds r2, 0x2 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x1] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2250: .4byte REG_BG1CNT +_080B2254: .4byte gUnknown_030042C0 +_080B2258: .4byte gUnknown_030041B4 +_080B225C: .4byte REG_BG1HOFS +_080B2260: .4byte 0x0600f000 +_080B2264: .4byte 0x040000d4 +_080B2268: .4byte 0x85000400 +_080B226C: .4byte gUnknown_08D17C3C +_080B2270: .4byte gSprites +_080B2274: .4byte 0x02019338 +_080B2278: .4byte REG_BG2CNT +_080B227C: .4byte REG_BG0CNT + thumb_func_end sub_80B2184 + + thumb_func_start sub_80B2280 +sub_80B2280: @ 80B2280 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r2, _080B2358 + movs r3, 0x80 + lsls r3, 6 + ldr r0, _080B235C + mov r12, r0 + ldr r0, _080B2360 + mov r8, r0 + movs r5, 0 + ldr r1, _080B2364 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080B2368 + movs r7, 0x85 + lsls r7, 24 +_080B22A4: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080B22A4 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _080B236C + movs r2, 0 + str r2, [sp] + ldr r0, _080B2364 + mov r3, sp + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _080B2368 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + strh r2, [r0] + mov r3, r8 + strh r2, [r3] + ldr r2, _080B2370 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + movs r4, 0 + ldr r5, _080B2374 + adds r6, r3, 0 + ldr r3, _080B2378 +_080B231E: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1, 0x5] + ldrb r0, [r3, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1, 0x5] + adds r3, 0x4 + adds r4, 0x1 + cmp r4, 0x3 + ble _080B231E + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2358: .4byte 0x06008000 +_080B235C: .4byte gUnknown_030042C0 +_080B2360: .4byte gUnknown_030041B4 +_080B2364: .4byte 0x040000d4 +_080B2368: .4byte 0x85000400 +_080B236C: .4byte 0x0600f000 +_080B2370: .4byte REG_BG1CNT +_080B2374: .4byte gSprites +_080B2378: .4byte 0x02019338 + thumb_func_end sub_80B2280 + + thumb_func_start sub_80B237C +sub_80B237C: @ 80B237C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080B23AC + movs r0, 0 + strh r0, [r1] + ldr r1, _080B23B0 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl PlaySE12WithPanning + ldr r1, _080B23B4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B23B8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B23AC: .4byte gUnknown_030042C0 +_080B23B0: .4byte gUnknown_030041B4 +_080B23B4: .4byte gTasks +_080B23B8: .4byte sub_80B23BC + thumb_func_end sub_80B237C + + thumb_func_start sub_80B23BC +sub_80B23BC: @ 80B23BC + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080B23F4 + ldrh r0, [r1] + subs r0, 0x7 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080B23D4 + movs r0, 0 + strh r0, [r1] +_080B23D4: + ldrh r2, [r1] + cmp r2, 0 + bne _080B23EE + ldr r0, _080B23F8 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + strh r2, [r1, 0xC] + ldr r0, _080B23FC + str r0, [r1] +_080B23EE: + pop {r0} + bx r0 + .align 2, 0 +_080B23F4: .4byte gUnknown_030041B4 +_080B23F8: .4byte gTasks +_080B23FC: .4byte sub_80B2400 + thumb_func_end sub_80B23BC + + thumb_func_start sub_80B2400 +sub_80B2400: @ 80B2400 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080B2424 + lsls r3, r4, 2 + adds r0, r3, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x1 + beq _080B247C + cmp r1, 0x1 + bgt _080B2428 + cmp r1, 0 + beq _080B2432 + b _080B24FC + .align 2, 0 +_080B2424: .4byte gTasks +_080B2428: + cmp r1, 0x2 + beq _080B24D6 + cmp r1, 0x3 + beq _080B24EC + b _080B24FC +_080B2432: + movs r2, 0 + adds r6, r3, 0 + ldr r5, _080B2470 + ldr r3, _080B2474 +_080B243A: + adds r0, r2, r5 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _080B243A + bl sub_80AFA5C + bl sub_80B0588 + bl sub_80AEF50 + bl sub_80B1118 + movs r0, 0x1 + bl sub_80B1FD0 + bl sub_80AFFA0 + ldr r0, _080B2478 + adds r1, r6, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x8] + b _080B24FC + .align 2, 0 +_080B2470: .4byte 0x02019218 +_080B2474: .4byte gUnknown_02038696 +_080B2478: .4byte gTasks +_080B247C: + ldr r0, _080B24C0 + ldrb r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080B24D0 + ldr r2, _080B24C4 + ldrb r0, [r2, 0x7] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x7] + bl sub_80AE074 + lsls r0, 24 + cmp r0, 0 + beq _080B249E + bl sub_80AF438 +_080B249E: + ldr r4, _080B24C8 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B24CC + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080B24FC + .align 2, 0 +_080B24C0: .4byte gUnknown_0203869A +_080B24C4: .4byte 0x02019204 +_080B24C8: .4byte sub_80C8C80 +_080B24CC: .4byte sub_80AD8DC +_080B24D0: + bl sub_80AF438 + b _080B24E2 +_080B24D6: + ldr r0, _080B24E8 + ldrb r1, [r0, 0x7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080B24FC +_080B24E2: + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080B24FC + .align 2, 0 +_080B24E8: .4byte 0x02019204 +_080B24EC: + bl sub_80AF120 + bl sub_80AEB30 + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080B2504 + str r0, [r5] +_080B24FC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2504: .4byte sub_80B253C + thumb_func_end sub_80B2400 + + thumb_func_start sub_80B2508 +sub_80B2508: @ 80B2508 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080B2530 + ldrh r0, [r1] + adds r0, 0x7 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _080B252C + ldr r0, _080B2534 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B2538 + str r0, [r1] +_080B252C: + pop {r0} + bx r0 + .align 2, 0 +_080B2530: .4byte gUnknown_030041B4 +_080B2534: .4byte gTasks +_080B2538: .4byte sub_80ADCDC + thumb_func_end sub_80B2508 + + thumb_func_start sub_80B253C +sub_80B253C: @ 80B253C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B255C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x9 + bgt _080B2560 + adds r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080B259C + .align 2, 0 +_080B255C: .4byte gTasks +_080B2560: + ldrh r3, [r1, 0xA] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r0, 0 + bne _080B257E + ldrh r2, [r1, 0x8] + movs r4, 0x8 + ldrsh r0, [r1, r4] + cmp r0, 0x10 + bne _080B257A + adds r0, r3, 0x1 + strh r0, [r1, 0xA] + b _080B259C +_080B257A: + adds r0, r2, 0x1 + b _080B259A +_080B257E: + ldrh r0, [r1, 0x8] + movs r3, 0x8 + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080B2598 + strh r2, [r1, 0xA] + strh r2, [r1, 0xC] + ldr r0, _080B2594 + str r0, [r1] + b _080B259C + .align 2, 0 +_080B2594: .4byte sub_80B25A4 +_080B2598: + subs r0, 0x1 +_080B259A: + strh r0, [r1, 0x8] +_080B259C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B253C + + thumb_func_start sub_80B25A4 +sub_80B25A4: @ 80B25A4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B25C4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x9 + bgt _080B25C8 + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + b _080B25D8 + .align 2, 0 +_080B25C4: .4byte gTasks +_080B25C8: + movs r0, 0 + strh r0, [r4, 0xC] + movs r0, 0x61 + movs r1, 0 + bl PlaySE12WithPanning + ldr r0, _080B25E0 + str r0, [r4] +_080B25D8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B25E0: .4byte sub_80B2508 + thumb_func_end sub_80B25A4 + + thumb_func_start sub_80B25E4 +sub_80B25E4: @ 80B25E4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r6, 0 + ldr r5, _080B26B4 +_080B25F6: + bl AllocOamMatrix + lsls r1, r6, 2 + ldr r2, _080B26B8 + mov r8, r2 + adds r4, r1, r2 + ldrb r1, [r4] + lsls r3, r1, 4 + adds r3, r1 + lsls r3, 2 + adds r3, r5 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1F + ands r0, r1 + lsls r0, 1 + ldrb r1, [r3, 0x3] + movs r7, 0x3F + negs r7, r7 + adds r2, r7, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x3] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r2, [r0, 0x1] + movs r3, 0x4 + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strb r2, [r0, 0x1] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + bl StartSpriteAffineAnim + mov r7, r9 + cmp r7, 0x2 + bne _080B267A + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl AnimateSprite + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r3, 0x5 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + strb r1, [r0] +_080B267A: + adds r6, 0x1 + cmp r6, 0x3 + ble _080B25F6 + ldr r0, _080B26BC + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B26C0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r7, r9 + strh r7, [r1, 0x8] + ldr r2, _080B26C4 + add r2, r8 + ldrb r0, [r2, 0x7] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x7] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B26B4: .4byte gSprites +_080B26B8: .4byte 0x02019338 +_080B26BC: .4byte sub_80B26C8 +_080B26C0: .4byte gTasks +_080B26C4: .4byte 0xfffffecc + thumb_func_end sub_80B25E4 + + thumb_func_start sub_80B26C8 +sub_80B26C8: @ 80B26C8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080B2750 + ldr r4, _080B2754 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080B274A + ldr r0, _080B2758 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x8] + cmp r0, 0x1 + bne _080B2718 + adds r5, r2, 0 + movs r3, 0x4 + adds r2, r4, 0 + movs r4, 0x3 +_080B26FE: + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + adds r2, 0x4 + subs r4, 0x1 + cmp r4, 0 + bge _080B26FE +_080B2718: + movs r4, 0 +_080B271A: + lsls r0, r4, 2 + ldr r5, _080B2754 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B2750 + adds r0, r1 + bl FreeSpriteOamMatrix + adds r4, 0x1 + cmp r4, 0x3 + ble _080B271A + ldr r0, _080B275C + adds r2, r5, r0 + ldrb r1, [r2, 0x7] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x7] + adds r0, r6, 0 + bl DestroyTask +_080B274A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2750: .4byte gSprites +_080B2754: .4byte 0x02019338 +_080B2758: .4byte gTasks +_080B275C: .4byte 0xfffffecc + thumb_func_end sub_80B26C8 + + thumb_func_start sub_80B2760 +sub_80B2760: @ 80B2760 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bls _080B2770 + movs r1, 0x1 +_080B2770: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B2760 + + thumb_func_start sub_80B2778 +sub_80B2778: @ 80B2778 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080B278C + cmp r1, r0 + bls _080B2786 + movs r1, 0 +_080B2786: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B278C: .4byte 0x0000019b + thumb_func_end sub_80B2778 + + thumb_func_start sub_80B2790 +sub_80B2790: @ 80B2790 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r4, _080B27F0 + adds r0, r4 + ldrh r0, [r0, 0x6] + bl sub_80B2760 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080B27F4 + lsls r0, r6, 6 + adds r0, r1 + ldrh r0, [r0] + bl sub_80B2778 + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, 0xE8 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + bl sub_8075624 + ldr r1, _080B27F8 + movs r2, 0 + adds r0, r1, 0x3 +_080B27D0: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _080B27D0 + cmp r5, 0x90 + beq _080B2848 + cmp r5, 0x90 + bgt _080B2806 + cmp r5, 0x4C + beq _080B2898 + cmp r5, 0x4C + bgt _080B27FC + cmp r5, 0xD + beq _080B2898 + b _080B28BE + .align 2, 0 +_080B27F0: .4byte 0x02019260 +_080B27F4: .4byte gUnknown_02038570 +_080B27F8: .4byte gUnknown_02024E84 +_080B27FC: + cmp r5, 0x82 + beq _080B2898 + cmp r5, 0x8F + beq _080B2898 + b _080B28BE +_080B2806: + cmp r5, 0xD8 + beq _080B2880 + cmp r5, 0xD8 + bgt _080B2814 + cmp r5, 0xAE + beq _080B2822 + b _080B28BE +_080B2814: + cmp r5, 0xDA + beq _080B288C + movs r0, 0x88 + lsls r0, 1 + cmp r5, r0 + beq _080B2848 + b _080B28BE +_080B2822: + ldr r0, _080B2840 + lsls r1, r7, 3 + subs r1, r7 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x6] + cmp r0, 0x7 + beq _080B2838 + ldrb r0, [r1, 0x7] + cmp r0, 0x7 + bne _080B28B8 +_080B2838: + ldr r1, _080B2844 + movs r0, 0 + b _080B28BC + .align 2, 0 +_080B2840: .4byte gBaseStats +_080B2844: .4byte gUnknown_0202F7C4 +_080B2848: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r4, _080B2878 + adds r0, r4 + ldrb r5, [r0, 0x1B] + ldr r6, _080B287C + lsls r5, 6 + adds r0, r5, r6 + ldrh r0, [r0] + bl sub_80B2778 + adds r4, 0xE8 + strh r0, [r4, 0x2] + adds r6, 0x38 + adds r5, r6 + ldr r0, [r5] + str r0, [r4, 0x10] + ldrb r0, [r4, 0x4] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x4] + b _080B28BE + .align 2, 0 +_080B2878: .4byte 0x02019260 +_080B287C: .4byte gUnknown_02038570 +_080B2880: + ldr r1, _080B2888 + movs r0, 0xFF + b _080B28BC + .align 2, 0 +_080B2888: .4byte gUnknown_0202F7BE +_080B288C: + ldr r1, _080B2894 + movs r0, 0 + b _080B28BC + .align 2, 0 +_080B2894: .4byte gUnknown_0202F7BE +_080B2898: + ldr r0, _080B28B0 + adds r2, r0, 0 + adds r2, 0x5A + ldrb r1, [r2] + cmp r1, 0 + bne _080B28B8 + movs r0, 0x2 + strb r0, [r2] + ldr r0, _080B28B4 + strb r1, [r0] + b _080B28BE + .align 2, 0 +_080B28B0: .4byte 0x02019204 +_080B28B4: .4byte gUnknown_0202F7C4 +_080B28B8: + ldr r1, _080B28C8 + movs r0, 0x1 +_080B28BC: + strb r0, [r1] +_080B28BE: + bl sub_80B2968 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B28C8: .4byte gUnknown_0202F7C4 + thumb_func_end sub_80B2790 + + thumb_func_start unref_sub_80B28CC +unref_sub_80B28CC: @ 80B28CC + push {r4,lr} + ldr r4, _080B28EC + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + subs r4, 0xEA + ldrb r0, [r4] + cmp r0, 0 + beq _080B28E6 + subs r0, 0x1 + strb r0, [r4] +_080B28E6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B28EC: .4byte 0x02019348 + thumb_func_end unref_sub_80B28CC + + thumb_func_start sub_80B28F0 +sub_80B28F0: @ 80B28F0 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _080B2924 + strb r4, [r6, 0x5] + ldr r5, _080B2928 + lsls r4, 6 + adds r0, r4, r5 + ldrh r0, [r0] + bl sub_80B2778 + strh r0, [r6] + adds r0, r5, 0 + adds r0, 0x38 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r6, 0x8] + adds r5, 0x3C + adds r4, r5 + ldr r0, [r4] + str r0, [r6, 0xC] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2924: .4byte 0x02019348 +_080B2928: .4byte gUnknown_02038570 + thumb_func_end sub_80B28F0 + + thumb_func_start sub_80B292C +sub_80B292C: @ 80B292C + push {lr} + ldr r0, _080B2958 + bl object_new_hidden_with_callback + ldr r1, _080B295C + strb r0, [r1, 0x3] + ldr r0, _080B2960 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B2964 + adds r0, r1 + bl InitSpriteAffineAnim + bl sub_80B2968 + pop {r0} + bx r0 + .align 2, 0 +_080B2958: .4byte SpriteCallbackDummy +_080B295C: .4byte gUnknown_02024BE0 +_080B2960: .4byte gUnknown_02024C08 +_080B2964: .4byte gSprites + thumb_func_end sub_80B292C + + thumb_func_start sub_80B2968 +sub_80B2968: @ 80B2968 + push {r4,lr} + ldr r0, _080B29AC + ldrb r0, [r0, 0x3] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080B29B0 + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0x3 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + movs r0, 0x3 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B29AC: .4byte gUnknown_02024BE0 +_080B29B0: .4byte gSprites + thumb_func_end sub_80B2968 + + thumb_func_start sub_80B29B4 +sub_80B29B4: @ 80B29B4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080B29D4 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x6] + cmp r0, 0x20 + bhi _080B2A6C + lsls r0, 2 + ldr r1, _080B29D8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B29D4: .4byte gBattleMoves +_080B29D8: .4byte _080B29DC + .align 2, 0 +_080B29DC: + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A60 + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A60 + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C +_080B2A60: + ldr r1, _080B2A68 + movs r0, 0x2 + b _080B2A70 + .align 2, 0 +_080B2A68: .4byte gUnknown_02024C08 +_080B2A6C: + ldr r1, _080B2A78 + movs r0, 0x3 +_080B2A70: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B2A78: .4byte gUnknown_02024C08 + thumb_func_end sub_80B29B4 + + thumb_func_start sub_80B2A7C +sub_80B2A7C: @ 80B2A7C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r1, _080B2AC8 + ldrb r0, [r1] + cmp r0, 0 + beq _080B2AB6 +_080B2AA8: + adds r6, 0x1 + cmp r6, 0x2 + bgt _080B2AB6 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B2AA8 +_080B2AB6: + mov r0, r9 + cmp r0, 0xFF + bne _080B2AD0 + ldr r0, _080B2ACC + ldrb r0, [r0] + cmp r6, r0 + beq _080B2AD0 + movs r0, 0 + b _080B2C38 + .align 2, 0 +_080B2AC8: .4byte gUnknown_02038690 +_080B2ACC: .4byte gUnknown_02038695 +_080B2AD0: + ldr r0, _080B2AE4 + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080B2B16 + lsls r0, 2 + ldr r1, _080B2AE8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2AE4: .4byte gUnknown_0203869C +_080B2AE8: .4byte _080B2AEC + .align 2, 0 +_080B2AEC: + .4byte _080B2B16 + .4byte _080B2B00 + .4byte _080B2B04 + .4byte _080B2B08 + .4byte _080B2B0E +_080B2B00: + adds r0, r7, 0x3 + b _080B2B12 +_080B2B04: + adds r0, r7, 0x6 + b _080B2B12 +_080B2B08: + adds r0, r7, 0 + adds r0, 0x9 + b _080B2B12 +_080B2B0E: + adds r0, r7, 0 + adds r0, 0xC +_080B2B12: + lsls r0, 24 + lsrs r7, r0, 24 +_080B2B16: + mov r1, r9 + cmp r1, 0xFE + beq _080B2BC4 + mov r0, r9 + movs r1, 0x1 + bl sub_80B2C4C + adds r4, r0, 0 + lsls r4, 24 + ldr r2, _080B2B98 + lsrs r4, 19 + ldr r0, _080B2B9C + adds r1, r2, r0 + adds r1, r4, r1 + ldr r5, _080B2BA0 + lsls r6, 6 + adds r0, r5, 0 + adds r0, 0x38 + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r1] + adds r1, r4, r2 + mov r8, r1 + adds r0, r6, r5 + ldrh r1, [r0] + ldr r0, _080B2BA4 + add r0, r8 + strh r1, [r0] + movs r0, 0xB8 + lsls r0, 6 + adds r1, r2, r0 + adds r1, r4, r1 + adds r0, r5, 0 + adds r0, 0x3C + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r1] + ldr r1, _080B2BA8 + adds r0, r2, r1 + adds r0, r4, r0 + adds r1, r5, 0x2 + adds r1, r6, r1 + str r2, [sp] + bl StringCopy + ldr r2, [sp] + ldr r0, _080B2BAC + adds r2, r0 + adds r4, r2 + adds r5, 0xD + adds r6, r5 + adds r0, r4, 0 + adds r1, r6, 0 + bl StringCopy + mov r1, r9 + cmp r1, 0xFF + beq _080B2BB8 + ldr r0, _080B2BB0 + ldrh r1, [r0] + ldr r0, _080B2BB4 + add r0, r8 + strb r1, [r0] + b _080B2C36 + .align 2, 0 +_080B2B98: .4byte gSaveBlock1 +_080B2B9C: .4byte 0x00002dfc +_080B2BA0: .4byte gUnknown_02038570 +_080B2BA4: .4byte 0x00002e04 +_080B2BA8: .4byte 0x00002e07 +_080B2BAC: .4byte 0x00002e12 +_080B2BB0: .4byte gUnknown_0203869C +_080B2BB4: .4byte 0x00002e06 +_080B2BB8: + ldr r0, _080B2BC0 + add r0, r8 + strb r7, [r0] + b _080B2C36 + .align 2, 0 +_080B2BC0: .4byte 0x00002e06 +_080B2BC4: + ldr r5, _080B2C14 + ldr r2, _080B2C18 + lsls r4, r6, 6 + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r5] + adds r0, r2, 0 + adds r0, 0x3C + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r5, 0x4] + adds r0, r4, r2 + ldrh r0, [r0] + strh r0, [r5, 0x8] + adds r0, r5, 0 + adds r0, 0xB + adds r1, r2, 0x2 + adds r1, r4, r1 + str r2, [sp] + bl StringCopy + ldr r0, _080B2C1C + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + ldr r2, [sp] + cmp r0, 0 + beq _080B2C24 + adds r0, r5, 0 + adds r0, 0x16 + lsls r1, r6, 3 + subs r1, r6 + lsls r1, 2 + ldr r2, _080B2C20 + adds r1, r2 + bl StringCopy + b _080B2C32 + .align 2, 0 +_080B2C14: .4byte 0x02015de0 +_080B2C18: .4byte gUnknown_02038570 +_080B2C1C: .4byte gUnknown_0203869A +_080B2C20: .4byte gLinkPlayers + 0x8 +_080B2C24: + adds r0, r5, 0 + adds r0, 0x16 + adds r1, r2, 0 + adds r1, 0xD + adds r1, r4, r1 + bl StringCopy +_080B2C32: + ldr r0, _080B2C48 + strb r7, [r0, 0xA] +_080B2C36: + movs r0, 0x1 +_080B2C38: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B2C48: .4byte 0x02015de0 + thumb_func_end sub_80B2A7C + + thumb_func_start sub_80B2C4C +sub_80B2C4C: @ 80B2C4C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r0, 0x2 + beq _080B2C6E + cmp r0, 0x2 + ble _080B2C66 + cmp r0, 0x3 + beq _080B2CA0 + b _080B2CD4 +_080B2C66: + cmp r2, 0 + blt _080B2CD4 + adds r0, r2, 0 + b _080B2D16 +_080B2C6E: + cmp r1, 0 + beq _080B2C98 + movs r2, 0x4 + ldr r0, _080B2C9C + adds r4, r0, 0 + adds r4, 0x60 + adds r3, r0, 0 + adds r3, 0x80 +_080B2C7E: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5,r6} + stm r1!, {r5,r6} + subs r4, 0x20 + subs r3, 0x20 + subs r2, 0x1 + cmp r2, 0x2 + bgt _080B2C7E +_080B2C98: + movs r0, 0x2 + b _080B2D16 + .align 2, 0 +_080B2C9C: .4byte gSaveBlock1 + 0x2DFC +_080B2CA0: + cmp r1, 0 + beq _080B2CCA + movs r2, 0x7 + ldr r0, _080B2CD0 + adds r4, r0, 0 + adds r4, 0xC0 + adds r3, r0, 0 + adds r3, 0xE0 +_080B2CB0: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5,r7} + stm r1!, {r5,r7} + subs r4, 0x20 + subs r3, 0x20 + subs r2, 0x1 + cmp r2, 0x5 + bgt _080B2CB0 +_080B2CCA: + movs r0, 0x5 + b _080B2D16 + .align 2, 0 +_080B2CD0: .4byte gSaveBlock1 + 0x2DFC +_080B2CD4: + ldr r0, _080B2CE8 + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080B2D14 + lsls r0, 2 + ldr r1, _080B2CEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2CE8: .4byte gUnknown_0203869C +_080B2CEC: .4byte _080B2CF0 + .align 2, 0 +_080B2CF0: + .4byte _080B2D04 + .4byte _080B2D08 + .4byte _080B2D0C + .4byte _080B2D10 + .4byte _080B2D14 +_080B2D04: + movs r0, 0x8 + b _080B2D16 +_080B2D08: + movs r0, 0x9 + b _080B2D16 +_080B2D0C: + movs r0, 0xA + b _080B2D16 +_080B2D10: + movs r0, 0xB + b _080B2D16 +_080B2D14: + movs r0, 0xC +_080B2D16: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B2C4C + + thumb_func_start sub_80B2D1C +sub_80B2D1C: @ 80B2D1C + push {r4-r7,lr} + ldr r0, _080B2D48 + ldr r4, _080B2D4C + ldr r1, _080B2D50 + adds r3, r0, r1 + movs r2, 0x7 +_080B2D28: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5,r6} + stm r1!, {r5,r6} + adds r4, 0x20 + adds r3, 0x20 + subs r2, 0x1 + cmp r2, 0 + bge _080B2D28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2D48: .4byte gSaveBlock1 +_080B2D4C: .4byte gUnknown_083CC5D0 +_080B2D50: .4byte 0x00002dfc + thumb_func_end sub_80B2D1C + + thumb_func_start CreateShopMenu +CreateShopMenu: @ 80B2D54 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ScriptContext2_Enable + ldr r1, _080B2D90 + movs r0, 0 + strb r4, [r1, 0xC] + strb r0, [r1, 0x9] + cmp r4, 0 + bne _080B2D9C + movs r0, 0x2 + strb r0, [r1, 0xA] + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0x7 + bl MenuDrawTextWindow + ldr r3, _080B2D94 + ldr r0, _080B2D98 + str r0, [sp] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x3 + bl PrintMenuItemsReordered + b _080B2DBC + .align 2, 0 +_080B2D90: .4byte gUnknown_03000708 +_080B2D94: .4byte gUnknown_083CC6D0 +_080B2D98: .4byte gUnknown_083CC6E8 +_080B2D9C: + movs r0, 0x1 + strb r0, [r1, 0xA] + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0x5 + bl MenuDrawTextWindow + ldr r3, _080B2DEC + ldr r0, _080B2DF0 + str r0, [sp] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x2 + bl PrintMenuItemsReordered +_080B2DBC: + ldr r0, _080B2DF4 + ldrb r3, [r0, 0xA] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl InitMenu + ldr r0, _080B2DF8 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B2DEC: .4byte gUnknown_083CC6D0 +_080B2DF0: .4byte gUnknown_083CC6EB +_080B2DF4: .4byte gUnknown_03000708 +_080B2DF8: .4byte sub_80B2E38 + thumb_func_end CreateShopMenu + + thumb_func_start SetShopMenuCallback +SetShopMenuCallback: @ 80B2DFC + ldr r1, _080B2E04 + str r0, [r1] + bx lr + .align 2, 0 +_080B2E04: .4byte gUnknown_03000708 + thumb_func_end SetShopMenuCallback + + thumb_func_start SetShopItemsForSale +SetShopItemsForSale: @ 80B2E08 + push {lr} + adds r1, r0, 0 + movs r2, 0 + ldr r3, _080B2E34 + str r1, [r3, 0x4] + strb r2, [r3, 0x8] + ldrh r0, [r1] + cmp r0, 0 + beq _080B2E30 +_080B2E1A: + ldrb r0, [r3, 0x8] + adds r0, 0x1 + strb r0, [r3, 0x8] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080B2E1A +_080B2E30: + pop {r0} + bx r0 + .align 2, 0 +_080B2E34: .4byte gUnknown_03000708 + thumb_func_end SetShopItemsForSale + + thumb_func_start sub_80B2E38 +sub_80B2E38: @ 80B2E38 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080B2E60 + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080B2E68 + ldr r4, _080B2E64 + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _080B2EF4 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080B2E82 + .align 2, 0 +_080B2E60: .4byte gMain +_080B2E64: .4byte gUnknown_03000708 +_080B2E68: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080B2E90 + ldr r4, _080B2E8C + ldrb r0, [r4, 0x9] + ldrb r1, [r4, 0xA] + cmp r0, r1 + beq _080B2EF4 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080B2E82: + bl MoveMenuCursor + strb r0, [r4, 0x9] + b _080B2EF4 + .align 2, 0 +_080B2E8C: .4byte gUnknown_03000708 +_080B2E90: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B2EE0 + movs r0, 0x5 + bl PlaySE + ldr r3, _080B2EB0 + ldrb r0, [r3, 0xC] + cmp r0, 0 + bne _080B2EBC + ldr r1, _080B2EB4 + ldr r2, _080B2EB8 + b _080B2EC0 + .align 2, 0 +_080B2EB0: .4byte gUnknown_03000708 +_080B2EB4: .4byte gUnknown_083CC6D0 +_080B2EB8: .4byte gUnknown_083CC6E8 +_080B2EBC: + ldr r1, _080B2ED8 + ldr r2, _080B2EDC +_080B2EC0: + ldrb r0, [r3, 0x9] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080B2EF4 + .align 2, 0 +_080B2ED8: .4byte gUnknown_083CC6D0 +_080B2EDC: .4byte gUnknown_083CC6EB +_080B2EE0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B2EF4 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl HandleShopMenuQuit +_080B2EF4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2E38 + + thumb_func_start sub_80B2EFC +sub_80B2EFC: @ 80B2EFC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B2F24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080B2F28 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080B2F2C + str r0, [r1] + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080B2F24: .4byte gTasks +_080B2F28: .4byte BuyMenuDrawGraphics +_080B2F2C: .4byte sub_80B2FA0 + thumb_func_end sub_80B2EFC + + thumb_func_start sub_80B2F30 +sub_80B2F30: @ 80B2F30 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B2F58 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080B2F5C + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080B2F60 + str r0, [r1] + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080B2F58: .4byte gTasks +_080B2F5C: .4byte sub_80A6300 +_080B2F60: .4byte sub_80B2FA0 + thumb_func_end sub_80B2F30 + + thumb_func_start HandleShopMenuQuit +HandleShopMenuQuit: @ 80B2F64 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xB + movs r3, 0x8 + bl MenuZeroFillWindowRect + bl sub_80BE3BC + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080B2F9C + ldr r0, [r0] + cmp r0, 0 + beq _080B2F96 + bl _call_via_r0 +_080B2F96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2F9C: .4byte gUnknown_03000708 + thumb_func_end HandleShopMenuQuit + + thumb_func_start sub_80B2FA0 +sub_80B2FA0: @ 80B2FA0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080B2FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B2FCE + ldr r0, _080B2FD8 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + lsls r0, 16 + ldrh r1, [r1, 0x1A] + orrs r0, r1 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_080B2FCE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2FD4: .4byte gPaletteFade +_080B2FD8: .4byte gTasks + thumb_func_end sub_80B2FA0 + + thumb_func_start ReturnToShopMenuAfterExitingSellMenu +ReturnToShopMenuAfterExitingSellMenu: @ 80B2FDC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B2FF8 + ldrb r0, [r0, 0xC] + bl CreateShopMenu + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2FF8: .4byte gUnknown_03000708 + thumb_func_end ReturnToShopMenuAfterExitingSellMenu + + thumb_func_start Task_ExitSellMenu +Task_ExitSellMenu: @ 80B2FFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B3040 + ldr r0, _080B3028 + ldrb r0, [r0, 0xC] + cmp r0, 0x2 + bne _080B3034 + ldr r1, _080B302C + ldr r2, _080B3030 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080B3040 + .align 2, 0 +_080B3028: .4byte gUnknown_03000708 +_080B302C: .4byte gOtherText_CanIHelpYou +_080B3030: .4byte ReturnToShopMenuAfterExitingSellMenu +_080B3034: + ldr r1, _080B3048 + ldr r2, _080B304C + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080B3040: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3048: .4byte gOtherText_AnythingElse +_080B304C: .4byte ReturnToShopMenuAfterExitingSellMenu + thumb_func_end Task_ExitSellMenu + + thumb_func_start sub_80B3050 +sub_80B3050: @ 80B3050 + push {lr} + bl pal_fill_black + ldr r0, _080B3064 + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B3064: .4byte Task_ExitSellMenu + thumb_func_end sub_80B3050 + + thumb_func_start sub_80B3068 +sub_80B3068: @ 80B3068 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl Task_ExitSellMenu + pop {r0} + bx r0 + thumb_func_end sub_80B3068 + + thumb_func_start unref_sub_80B3078 +unref_sub_80B3078: @ 80B3078 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B308C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080B3090 + str r0, [r1] + bx lr + .align 2, 0 +_080B308C: .4byte gTasks +_080B3090: .4byte Task_ExitSellMenu + thumb_func_end unref_sub_80B3078 + + thumb_func_start sub_80B3094 +sub_80B3094: @ 80B3094 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80B3094 + + thumb_func_start sub_80B30AC +sub_80B30AC: @ 80B30AC + push {r4,lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r3, _080B30F0 + ldr r1, _080B30F4 + ldr r0, _080B30F8 + str r3, [r0] + str r1, [r0, 0x4] + ldr r4, _080B30FC + str r4, [r0, 0x8] + ldr r1, [r0, 0x8] + movs r2, 0x80 + lsls r2, 4 + adds r1, r3, r2 + ldr r2, _080B3100 + str r1, [r0] + str r2, [r0, 0x4] + str r4, [r0, 0x8] + ldr r1, [r0, 0x8] + movs r1, 0x80 + lsls r1, 5 + adds r3, r1 + ldr r1, _080B3104 + str r3, [r0] + str r1, [r0, 0x4] + str r4, [r0, 0x8] + ldr r0, [r0, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B30F0: .4byte gBG1TilemapBuffer +_080B30F4: .4byte 0x0600e800 +_080B30F8: .4byte 0x040000d4 +_080B30FC: .4byte 0x80000400 +_080B3100: .4byte 0x0600e000 +_080B3104: .4byte 0x0600f000 + thumb_func_end sub_80B30AC + + thumb_func_start BuyMenuDrawGraphics +BuyMenuDrawGraphics: @ 80B3108 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + bl sub_80F9438 + bl remove_some_task + ldr r0, _080B3204 + movs r5, 0 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + ldr r0, _080B3208 + mov r8, r0 + ldrb r0, [r0, 0x8] + movs r1, 0x80 + orrs r0, r1 + mov r1, r8 + strb r0, [r1, 0x8] + movs r1, 0xE0 + lsls r1, 19 + movs r6, 0 + str r6, [sp, 0x4] + ldr r0, _080B320C + add r2, sp, 0x4 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080B3210 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080B3214 + ldr r1, _080B3218 + bl LZDecompressVram + ldr r0, _080B321C + ldr r1, _080B3220 + bl sub_800D238 + ldr r0, _080B3224 + movs r1, 0xC0 + movs r2, 0x20 + bl LoadCompressedPalette + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + ldr r4, _080B3228 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + bl BuyMenuDrawMapGraphics + ldr r0, _080B322C + strb r6, [r0, 0x9] + strb r5, [r0, 0xB] + movs r0, 0 + movs r1, 0 + movs r2, 0x20 + movs r3, 0x20 + bl MenuZeroFillWindowRect + ldr r0, _080B3230 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + movs r2, 0 + bl sub_80B7C14 + movs r0, 0 + movs r1, 0x7 + bl sub_80B3764 + bl sub_80B37EC + bl sub_80B3270 + ldr r0, _080B3234 + movs r1, 0x8 + bl CreateTask + bl sub_80B3240 + movs r0, 0x1 + negs r0, r0 + str r6, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + mov r2, r8 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080B3238 + bl SetVBlankCallback + ldr r0, _080B323C + bl SetMainCallback2 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3204: .4byte REG_BG1HOFS +_080B3208: .4byte gPaletteFade +_080B320C: .4byte 0x040000d4 +_080B3210: .4byte 0x85000100 +_080B3214: .4byte gBuyMenuFrame_Gfx +_080B3218: .4byte 0x06007c00 +_080B321C: .4byte gBuyMenuFrame_Tilemap +_080B3220: .4byte 0x02018000 +_080B3224: .4byte gMenuMoneyPal +_080B3228: .4byte gWindowConfig_81E6DFC +_080B322C: .4byte gUnknown_03000708 +_080B3230: .4byte gSaveBlock1 +_080B3234: .4byte sub_80B40E8 +_080B3238: .4byte sub_80B30AC +_080B323C: .4byte sub_80B3094 + thumb_func_end BuyMenuDrawGraphics + + thumb_func_start sub_80B3240 +sub_80B3240: @ 80B3240 + push {lr} + sub sp, 0x4 + ldr r1, _080B326C + mov r0, sp + movs r2, 0x4 + bl memcpy + mov r0, sp + adds r0, 0x2 + movs r1, 0xD1 + movs r2, 0x2 + bl LoadPalette + mov r0, sp + movs r1, 0xD8 + movs r2, 0x2 + bl LoadPalette + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080B326C: .4byte gUnknown_083CC710 + thumb_func_end sub_80B3240 + + thumb_func_start sub_80B3270 +sub_80B3270: @ 80B3270 + push {lr} + bl sub_80F944C + ldr r0, _080B32A0 + ldrb r0, [r0, 0x8] + cmp r0, 0x7 + bls _080B329A + movs r0, 0 + movs r1, 0xAC + movs r2, 0xC + bl sub_80F953C + movs r0, 0x1 + movs r1, 0xAC + movs r2, 0x94 + bl sub_80F953C + movs r0, 0 + movs r1, 0x1 + bl sub_80F979C +_080B329A: + pop {r0} + bx r0 + .align 2, 0 +_080B32A0: .4byte gUnknown_03000708 + thumb_func_end sub_80B3270 + + thumb_func_start sub_80B32A4 +sub_80B32A4: @ 80B32A4 + push {lr} + ldr r0, _080B32B8 + ldrb r0, [r0, 0xB] + cmp r0, 0 + bne _080B32BC + movs r0, 0 + movs r1, 0x1 + bl sub_80F979C + b _080B32C4 + .align 2, 0 +_080B32B8: .4byte gUnknown_03000708 +_080B32BC: + movs r0, 0 + movs r1, 0 + bl sub_80F979C +_080B32C4: + ldr r1, _080B32DC + ldrb r0, [r1, 0xB] + adds r0, 0x7 + ldrb r1, [r1, 0x8] + cmp r0, r1 + blt _080B32E0 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + b _080B32E8 + .align 2, 0 +_080B32DC: .4byte gUnknown_03000708 +_080B32E0: + movs r0, 0x1 + movs r1, 0 + bl sub_80F979C +_080B32E8: + pop {r0} + bx r0 + thumb_func_end sub_80B32A4 + + thumb_func_start sub_80B32EC +sub_80B32EC: @ 80B32EC + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r2 + lsls r1, 1 + adds r1, r0 + ldr r2, _080B3304 + adds r0, r2, 0 + strh r0, [r1] + strh r0, [r1, 0x2] + bx lr + .align 2, 0 +_080B3304: .4byte 0x0000c3e1 + thumb_func_end sub_80B32EC + + thumb_func_start BuyMenuDrawMapMetatileLayer +BuyMenuDrawMapMetatileLayer: @ 80B3308 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r2 + lsls r1, 1 + adds r1, r0 + ldrh r0, [r3] + strh r0, [r1] + ldrh r0, [r3, 0x2] + strh r0, [r1, 0x2] + adds r2, r1, 0 + adds r2, 0x40 + ldrh r0, [r3, 0x4] + strh r0, [r2] + adds r1, 0x42 + ldrh r0, [r3, 0x6] + strh r0, [r1] + bx lr + thumb_func_end BuyMenuDrawMapMetatileLayer + + thumb_func_start BuyMenuDrawMapMetatile +BuyMenuDrawMapMetatile: @ 80B3330 + push {r4-r7,lr} + adds r7, r2, 0 + lsls r3, 24 + lsrs r3, 24 + adds r2, r3, 0 + lsls r0, 17 + lsrs r0, 16 + lsls r1, 22 + movs r4, 0x80 + lsls r4, 15 + adds r1, r4 + lsrs r1, 16 + cmp r3, 0x1 + beq _080B3364 + cmp r3, 0x1 + bgt _080B3356 + cmp r3, 0 + beq _080B335C + b _080B33C0 +_080B3356: + cmp r2, 0x2 + beq _080B3398 + b _080B33C0 +_080B335C: + ldr r5, _080B3360 + b _080B3366 + .align 2, 0 +_080B3360: .4byte gBG2TilemapBuffer +_080B3364: + ldr r5, _080B3390 +_080B3366: + lsls r6, r0, 16 + asrs r6, 16 + lsls r4, r1, 16 + asrs r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + adds r3, r7, 0 + bl BuyMenuDrawMapMetatileLayer + ldr r0, _080B3394 + adds r5, r0 + adds r3, r7, 0 + adds r3, 0x8 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl BuyMenuDrawMapMetatileLayer + b _080B33C0 + .align 2, 0 +_080B3390: .4byte gBG3TilemapBuffer +_080B3394: .4byte 0xfffff800 +_080B3398: + ldr r5, _080B33C8 + lsls r6, r0, 16 + asrs r6, 16 + lsls r4, r1, 16 + asrs r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + adds r3, r7, 0 + bl BuyMenuDrawMapMetatileLayer + ldr r0, _080B33CC + adds r5, r0 + adds r3, r7, 0 + adds r3, 0x8 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl BuyMenuDrawMapMetatileLayer +_080B33C0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B33C8: .4byte gBG3TilemapBuffer +_080B33CC: .4byte 0xfffff000 + thumb_func_end BuyMenuDrawMapMetatile + + thumb_func_start sub_80B33D0 +sub_80B33D0: @ 80B33D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r6, r0, 0 + adds r4, r1, 0 + mov r8, r2 + lsls r4, 22 + ldr r5, _080B3418 + lsls r6, 17 + asrs r6, 16 + movs r0, 0x80 + lsls r0, 15 + adds r4, r0 + asrs r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + mov r3, r8 + bl BuyMenuDrawMapMetatileLayer + ldr r0, _080B341C + adds r5, r0 + movs r0, 0x8 + add r8, r0 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + mov r3, r8 + bl BuyMenuDrawMapMetatileLayer + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3418: .4byte gBG3TilemapBuffer +_080B341C: .4byte 0xfffff800 + thumb_func_end sub_80B33D0 + + thumb_func_start sub_80B3420 +sub_80B3420: @ 80B3420 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r1, sp + mov r0, sp + ldrh r0, [r0] + subs r0, 0x3 + strh r0, [r1] + ldrh r0, [r4] + subs r0, 0x3 + strh r0, [r4] + movs r1, 0 + ldr r0, _080B34A8 + mov r10, r0 + ldr r2, _080B34AC + mov r9, r2 +_080B3452: + movs r4, 0 + lsls r1, 16 + mov r8, r1 + asrs r7, r1, 16 +_080B345A: + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r4, 16 + asrs r6, r4, 16 + adds r0, r6 + mov r2, sp + movs r3, 0x2 + ldrsh r1, [r2, r3] + adds r1, r7 + bl MapGridGetMetatileIdAt + lsls r0, 16 + lsrs r5, r0, 16 + cmp r7, 0x5 + beq _080B34D0 + cmp r6, 0x6 + beq _080B34D0 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, r6 + mov r2, sp + movs r3, 0x2 + ldrsh r1, [r2, r3] + adds r1, r7 + bl MapGridGetMetatileLayerTypeAt + lsls r0, 24 + lsrs r3, r0, 24 + cmp r5, r10 + bhi _080B34B0 + mov r1, r9 + ldr r0, [r1] + ldr r0, [r0, 0x10] + lsls r1, r5, 4 + ldr r2, [r0, 0xC] + adds r2, r1 + b _080B34C0 + .align 2, 0 +_080B34A8: .4byte 0x000001ff +_080B34AC: .4byte gMapHeader +_080B34B0: + mov r2, r9 + ldr r0, [r2] + ldr r1, [r0, 0x14] + ldr r2, _080B34CC + adds r0, r5, r2 + lsls r0, 4 + ldr r2, [r1, 0xC] + adds r2, r0 +_080B34C0: + adds r0, r6, 0 + adds r1, r7, 0 + bl BuyMenuDrawMapMetatile + b _080B3506 + .align 2, 0 +_080B34CC: .4byte 0xfffffe00 +_080B34D0: + cmp r5, r10 + bhi _080B34EC + asrs r0, r4, 16 + mov r3, r9 + ldr r1, [r3] + ldr r1, [r1, 0x10] + lsls r3, r5, 4 + ldr r2, [r1, 0xC] + adds r2, r3 + mov r3, r8 + asrs r1, r3, 16 + bl sub_80B33D0 + b _080B3506 +_080B34EC: + asrs r0, r4, 16 + mov r2, r9 + ldr r1, [r2] + ldr r2, [r1, 0x14] + ldr r3, _080B354C + adds r1, r5, r3 + lsls r1, 4 + ldr r2, [r2, 0xC] + adds r2, r1 + mov r3, r8 + asrs r1, r3, 16 + bl sub_80B33D0 +_080B3506: + cmp r7, 0 + bne _080B3520 + asrs r1, r4, 16 + cmp r1, 0 + beq _080B3520 + cmp r1, 0x6 + beq _080B3520 + lsls r1, 17 + asrs r1, 16 + ldr r0, _080B3550 + movs r2, 0x40 + bl sub_80B32EC +_080B3520: + movs r1, 0x80 + lsls r1, 9 + adds r0, r4, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080B345A + adds r0, r1, 0 + add r0, r8 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B3452 + 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 +_080B354C: .4byte 0xfffffe00 +_080B3550: .4byte gBG1TilemapBuffer + thumb_func_end sub_80B3420 + + thumb_func_start BuyMenuDrawMapGraphics +BuyMenuDrawMapGraphics: @ 80B3554 + push {lr} + bl sub_80F9020 + bl sub_80B356C + bl sub_80B368C + bl sub_80B3420 + pop {r0} + bx r0 + thumb_func_end BuyMenuDrawMapGraphics + + thumb_func_start sub_80B356C +sub_80B356C: @ 80B356C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + mov r8, r0 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + bl PlayerGetZCoord + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r5, 0 + ldr r2, _080B3674 + movs r1, 0x10 +_080B3598: + lsls r0, r5, 3 + adds r0, r2 + strh r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080B3598 + movs r5, 0 + ldr r7, _080B3678 + subs r1, r7, 0x6 + mov r9, r1 +_080B35B0: + movs r4, 0 + adds r2, r5, 0x1 + mov r10, r2 +_080B35B6: + mov r1, sp + ldr r3, _080B367C + adds r0, r3, 0 + ldrh r1, [r1] + adds r0, r1 + adds r0, r4 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080B3680 + adds r1, r2, 0 + mov r3, sp + ldrh r3, [r3, 0x2] + adds r1, r3 + adds r1, r5 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x4] + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x10 + beq _080B3650 + mov r0, r8 + lsls r3, r0, 3 + mov r1, r9 + adds r0, r3, r1 + movs r6, 0 + strh r2, [r0] + mov r0, r9 + adds r0, 0x2 + adds r0, r3, r0 + strh r4, [r0] + ldr r1, _080B3684 + adds r0, r3, r1 + strh r5, [r0] + ldr r1, _080B3688 + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r2, r0, r1 + ldrb r0, [r2, 0x18] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x1 + bne _080B3616 + adds r0, r3, r7 + strh r6, [r0] +_080B3616: + ldrb r0, [r2, 0x18] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x2 + bne _080B3626 + adds r1, r3, r7 + movs r0, 0x1 + strh r0, [r1] +_080B3626: + ldrb r0, [r2, 0x18] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x3 + bne _080B3636 + adds r1, r3, r7 + movs r0, 0x2 + strh r0, [r1] +_080B3636: + ldrb r0, [r2, 0x18] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x4 + bne _080B3646 + adds r1, r3, r7 + movs r0, 0x3 + strh r0, [r1] +_080B3646: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_080B3650: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _080B35B6 + mov r2, r10 + lsls r0, r2, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _080B35B0 + 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 +_080B3674: .4byte gUnknown_020386A4 +_080B3678: .4byte gUnknown_020386AA +_080B367C: .4byte 0x0000fffd +_080B3680: .4byte 0x0000fffe +_080B3684: .4byte gUnknown_020386A8 +_080B3688: .4byte gMapObjects + thumb_func_end sub_80B356C + + thumb_func_start sub_80B368C +sub_80B368C: @ 80B368C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r5, 0 + ldr r6, _080B3710 + adds r0, r6, 0x6 + mov r8, r0 + ldr r7, _080B3714 +_080B369E: + lsls r4, r5, 3 + adds r1, r4, r6 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x10 + beq _080B36F8 + adds r1, r0, 0 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x5] + adds r1, r6, 0x2 + adds r1, r4, r1 + ldrh r2, [r1] + lsls r2, 4 + adds r2, 0x8 + lsls r2, 16 + asrs r2, 16 + adds r1, r6, 0x4 + adds r1, r4, r1 + ldrh r3, [r1] + lsls r3, 20 + movs r1, 0x80 + lsls r1, 14 + adds r3, r1 + asrs r3, 16 + movs r1, 0x2 + str r1, [sp] + ldr r1, _080B3718 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, _080B371C + adds r2, r0 + mov r1, r8 + adds r0, r4, r1 + ldrb r1, [r0] + adds r0, r2, 0 + bl StartSpriteAnim +_080B36F8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080B369E + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3710: .4byte gUnknown_020386A4 +_080B3714: .4byte gMapObjects +_080B3718: .4byte SpriteCallbackDummy +_080B371C: .4byte gSprites + thumb_func_end sub_80B368C + + thumb_func_start sub_80B3720 +sub_80B3720: @ 80B3720 + push {r4-r6,lr} + movs r1, 0 + ldr r6, _080B3754 + ldr r5, _080B3758 + ldr r4, _080B375C + ldr r0, _080B3760 + adds r3, r0, 0 +_080B372E: + lsls r0, r1, 16 + asrs r2, r0, 16 + lsls r1, r2, 1 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, 0 + beq _080B3742 + adds r1, r6 + adds r0, r3 + strh r0, [r1] +_080B3742: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, r5 + ble _080B372E + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3754: .4byte gBG1TilemapBuffer +_080B3758: .4byte 0x000003ff +_080B375C: .4byte 0x02018000 +_080B3760: .4byte 0x0000c3e0 + thumb_func_end sub_80B3720 + + thumb_func_start sub_80B3764 +sub_80B3764: @ 80B3764 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + bl sub_80B3720 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_80B39D0 + ldr r0, _080B3798 + ldrb r0, [r0, 0x9] + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0xE + movs r2, 0x2 + movs r3, 0x8 + bl InitMenu + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3798: .4byte gUnknown_03000708 + thumb_func_end sub_80B3764 + + thumb_func_start sub_80B379C +sub_80B379C: @ 80B379C + push {r4-r7,lr} + movs r1, 0 + ldr r0, _080B37E0 + mov r12, r0 + ldr r7, _080B37E4 + ldr r0, _080B37E8 + adds r6, r0, 0 +_080B37AA: + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xC + adds r5, r1, 0x1 + lsls r4, r0, 5 + lsls r3, r1, 5 +_080B37B6: + adds r1, r4, r2 + lsls r1, 1 + add r1, r12 + adds r0, r3, r2 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + adds r0, r6, r0 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xD + bls _080B37B6 + lsls r0, r5, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _080B37AA + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B37E0: .4byte gBG1TilemapBuffer +_080B37E4: .4byte 0x02018300 +_080B37E8: .4byte 0x0000c3e0 + thumb_func_end sub_80B379C + + thumb_func_start sub_80B37EC +sub_80B37EC: @ 80B37EC + push {lr} + bl sub_80B3A70 + pop {r0} + bx r0 + thumb_func_end sub_80B37EC + + thumb_func_start sub_80B37F8 +sub_80B37F8: @ 80B37F8 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B3884 + ldrb r0, [r1, 0xB] + ldrb r2, [r1, 0x9] + adds r0, r2 + ldr r1, [r1, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl itemid_get_market_price + adds r4, r0, 0 + movs r0, 0x1 + bl GetPriceReduction + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + asrs r4, r0 + ldr r0, _080B3888 + lsls r5, r6, 2 + adds r5, r6 + lsls r5, 3 + adds r5, r0 + movs r1, 0xA + ldrsh r0, [r5, r1] + muls r0, r4 + movs r1, 0x6 + movs r2, 0x6 + movs r3, 0xB + bl sub_80B7A94 + ldr r0, _080B388C + movs r1, 0xFC + strb r1, [r0] + movs r1, 0x14 + strb r1, [r0, 0x1] + movs r1, 0x6 + strb r1, [r0, 0x2] + adds r0, 0x3 + movs r2, 0xA + ldrsh r1, [r5, r2] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080B3890 + movs r1, 0x1 + movs r2, 0xB + bl MenuPrint + ldr r0, _080B3894 + movs r1, 0x2 + str r1, [sp] + ldr r1, _080B3898 + str r1, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xB + movs r3, 0xC + bl sub_80A3FA0 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3884: .4byte gUnknown_03000708 +_080B3888: .4byte gTasks +_080B388C: .4byte gStringVar1 +_080B3890: .4byte gOtherText_xString1 +_080B3894: .4byte gBG1TilemapBuffer +_080B3898: .4byte 0x0000c3e1 + thumb_func_end sub_80B37F8 + + thumb_func_start sub_80B389C +sub_80B389C: @ 80B389C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r8, r2 + lsls r0, 16 + lsrs r2, r0, 16 + mov r9, r2 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r5, _080B392C + mov r0, r8 + cmp r0, 0 + beq _080B38C8 + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0x2 + strb r0, [r5, 0x2] + adds r5, 0x3 +_080B38C8: + adds r0, r2, 0 + adds r1, r5, 0 + bl itemid_copy_name + ldr r6, _080B392C + lsls r7, r4, 3 + movs r0, 0x1 + str r0, [sp] + adds r0, r6, 0 + movs r1, 0x70 + adds r2, r7, 0 + movs r3, 0x58 + bl sub_8072A18 + adds r5, r6, 0 + mov r0, r8 + cmp r0, 0 + beq _080B38EE + adds r5, r6, 0x3 +_080B38EE: + mov r0, r9 + bl itemid_get_market_price + adds r4, r0, 0 + movs r0, 0x1 + bl GetPriceReduction + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + asrs r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x4 + bl sub_80B79F8 + adds r0, r6, 0 + movs r1, 0xCA + adds r2, r7, 0 + movs r3, 0x1 + bl sub_80729D8 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B392C: .4byte gStringVar1 + thumb_func_end sub_80B389C + + thumb_func_start sub_80B3930 +sub_80B3930: @ 80B3930 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r2, 0 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r2, _080B39A0 + cmp r4, 0 + beq _080B395A + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x1 + strb r0, [r2, 0x1] + movs r0, 0x2 + strb r0, [r2, 0x2] + adds r2, 0x3 +_080B395A: + lsls r6, r3, 5 + ldr r0, _080B39A4 + mov r8, r0 + adds r1, r6, r0 + adds r0, r2, 0 + bl StringCopy + ldr r5, _080B39A0 + mov r0, r9 + lsls r7, r0, 3 + movs r0, 0x1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x70 + adds r2, r7, 0 + movs r3, 0x58 + bl sub_8072A18 + adds r2, r5, 0 + cmp r4, 0 + beq _080B3986 + adds r2, r5, 0x3 +_080B3986: + mov r0, r8 + subs r0, 0x1 + adds r3, r6, r0 + ldrh r1, [r3, 0x14] + ldr r0, _080B39A8 + cmp r1, r0 + bne _080B39AC + movs r0, 0x19 + mov r1, r9 + adds r2, r4, 0 + bl sub_80B7B34 + b _080B39C2 + .align 2, 0 +_080B39A0: .4byte gStringVar1 +_080B39A4: .4byte gDecorations + 0x1 +_080B39A8: .4byte 0x00002710 +_080B39AC: + ldrh r1, [r3, 0x14] + adds r0, r2, 0 + movs r2, 0x4 + bl sub_80B79F8 + adds r0, r5, 0 + movs r1, 0xCA + adds r2, r7, 0 + movs r3, 0x1 + bl sub_80729D8 +_080B39C2: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B3930 + + thumb_func_start sub_80B39D0 +sub_80B39D0: @ 80B39D0 + push {r4-r6,lr} + adds r6, r1, 0 + adds r5, r2, 0 + b _080B3A1A +_080B39D8: + ldrb r0, [r1, 0xC] + cmp r0, 0 + bne _080B39FC + ldrb r0, [r1, 0xB] + adds r0, r4 + ldr r1, [r1, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r4, 25 + movs r2, 0x80 + lsls r2, 18 + adds r1, r2 + lsrs r1, 24 + adds r2, r5, 0 + bl sub_80B389C + b _080B3A18 +_080B39FC: + ldrb r0, [r1, 0xB] + adds r0, r4 + ldr r1, [r1, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r4, 25 + movs r2, 0x80 + lsls r2, 18 + adds r1, r2 + lsrs r1, 24 + adds r2, r5, 0 + bl sub_80B3930 +_080B3A18: + adds r0, r4, 0x1 +_080B3A1A: + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bgt _080B3A2E + ldr r1, _080B3A68 + ldrb r0, [r1, 0xB] + adds r0, r4 + ldrb r2, [r1, 0x8] + cmp r0, r2 + blt _080B39D8 +_080B3A2E: + cmp r4, 0x8 + beq _080B3A60 + ldr r1, _080B3A68 + ldrb r0, [r1, 0xB] + adds r0, r4 + ldrb r1, [r1, 0x8] + cmp r0, r1 + bne _080B3A60 + lsls r3, r4, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0xE + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + ldr r0, _080B3A6C + movs r1, 0xE + adds r2, r4, 0 + bl MenuPrint +_080B3A60: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3A68: .4byte gUnknown_03000708 +_080B3A6C: .4byte gOtherText_CancelNoTerminator + thumb_func_end sub_80B39D0 + + thumb_func_start sub_80B3A70 +sub_80B3A70: @ 80B3A70 + push {r4,lr} + sub sp, 0x8 + ldr r2, _080B3A9C + ldrb r1, [r2, 0xB] + ldrb r0, [r2, 0x9] + adds r0, r1, r0 + ldrb r1, [r2, 0x8] + cmp r0, r1 + beq _080B3ACC + ldrb r4, [r2, 0xC] + cmp r4, 0 + bne _080B3AA0 + ldr r1, [r2, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl itemid_get_description + movs r1, 0x30 + str r1, [sp] + str r4, [sp, 0x4] + b _080B3ABA + .align 2, 0 +_080B3A9C: .4byte gUnknown_03000708 +_080B3AA0: + ldr r1, _080B3AC8 + ldr r2, [r2, 0x4] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 5 + adds r1, 0x18 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x30 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] +_080B3ABA: + movs r1, 0x4 + movs r2, 0x68 + movs r3, 0x68 + bl sub_8072AB0 + b _080B3AE0 + .align 2, 0 +_080B3AC8: .4byte gDecorations +_080B3ACC: + ldr r0, _080B3AE8 + movs r1, 0x30 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x4 + movs r2, 0x68 + movs r3, 0x68 + bl sub_8072AB0 +_080B3AE0: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3AE8: .4byte gOtherText_QuitShopping + thumb_func_end sub_80B3A70 + + thumb_func_start sub_80B3AEC +sub_80B3AEC: @ 80B3AEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080B3B5C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080B3B06 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B3B7A +_080B3B06: + ldr r4, _080B3B60 + ldrb r1, [r4, 0x9] + adds r0, r1, 0 + movs r2, 0 + bl sub_80B39D0 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + adds r0, r1 + ldr r1, [r4, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x4 + bne _080B3B74 + ldr r0, _080B3B64 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x9 + ble _080B3B74 + movs r0, 0xC + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B3B74 + ldr r1, _080B3B68 + ldr r2, _080B3B6C + ldr r3, _080B3B70 + adds r0, r5, 0 + bl DisplayItemMessageOnField + b _080B3B7A + .align 2, 0 +_080B3B5C: .4byte gMain +_080B3B60: .4byte gUnknown_03000708 +_080B3B64: .4byte gTasks +_080B3B68: .4byte gOtherText_FreePremierBall +_080B3B6C: .4byte sub_80B4378 +_080B3B70: .4byte 0x0000c3e1 +_080B3B74: + adds r0, r5, 0 + bl sub_80B4378 +_080B3B7A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3AEC + + thumb_func_start sub_80B3B80 +sub_80B3B80: @ 80B3B80 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x26 + bl sav12_xor_increment + ldr r5, _080B3BC0 + ldr r0, _080B3BC4 + ldr r1, [r0] + adds r0, r5, 0 + bl sub_80B79E0 + movs r0, 0x5F + bl PlaySE + ldr r0, [r5] + movs r1, 0 + movs r2, 0 + bl sub_80B7BEC + ldr r1, _080B3BC8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B3BCC + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3BC0: .4byte gSaveBlock1 + 0x490 +_080B3BC4: .4byte gUnknown_020386A0 +_080B3BC8: .4byte gTasks +_080B3BCC: .4byte sub_80B3AEC + thumb_func_end sub_80B3B80 + + thumb_func_start sub_80B3BD0 +sub_80B3BD0: @ 80B3BD0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B3BF0 + ldrb r1, [r0, 0x9] + adds r0, r1, 0 + movs r2, 0 + bl sub_80B39D0 + adds r0, r4, 0 + bl sub_80B4378 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3BF0: .4byte gUnknown_03000708 + thumb_func_end sub_80B3BD0 + + thumb_func_start sub_80B3BF4 +sub_80B3BF4: @ 80B3BF4 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x7 + movs r1, 0x8 + movs r2, 0xD + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _080B3C7C + movs r1, 0x4 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x8 + movs r2, 0x9 + movs r3, 0x4 + bl sub_80A3FA0 + bl sub_80B379C + bl sub_80B3420 + ldr r0, _080B3C80 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080B3C84 + ldr r1, [r1] + bl IsEnoughMoney + lsls r0, 24 + cmp r0, 0 + beq _080B3D18 + ldr r4, _080B3C88 + ldrb r0, [r4, 0xC] + cmp r0, 0 + bne _080B3CAC + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + adds r0, r1 + ldr r1, [r4, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + ldr r2, _080B3C8C + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + ldrh r1, [r1, 0xA] + bl sub_80A9424 + lsls r0, 24 + cmp r0, 0 + beq _080B3C9C + ldr r1, _080B3C90 + ldr r2, _080B3C94 + ldr r3, _080B3C98 + adds r0, r5, 0 + bl DisplayItemMessageOnField + adds r0, r5, 0 + bl sub_80B4470 + b _080B3D24 + .align 2, 0 +_080B3C7C: .4byte gBG1TilemapBuffer +_080B3C80: .4byte gSaveBlock1 +_080B3C84: .4byte gUnknown_020386A0 +_080B3C88: .4byte gUnknown_03000708 +_080B3C8C: .4byte gTasks +_080B3C90: .4byte gOtherText_HereYouGo +_080B3C94: .4byte sub_80B3B80 +_080B3C98: .4byte 0x0000c3e1 +_080B3C9C: + ldr r1, _080B3CA4 + ldr r2, _080B3CA8 + b _080B3CD8 + .align 2, 0 +_080B3CA4: .4byte gOtherText_NoRoomFor +_080B3CA8: .4byte sub_80B3BD0 +_080B3CAC: + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + adds r0, r1 + ldr r1, [r4, 0x4] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl IsThereStorageSpaceForDecoration + lsls r0, 24 + cmp r0, 0 + beq _080B3CF0 + ldrb r0, [r4, 0xC] + cmp r0, 0x1 + bne _080B3CD4 + ldr r1, _080B3CD0 + b _080B3CD6 + .align 2, 0 +_080B3CD0: .4byte gOtherText_HereYouGo2 +_080B3CD4: + ldr r1, _080B3CE4 +_080B3CD6: + ldr r2, _080B3CE8 +_080B3CD8: + ldr r3, _080B3CEC + adds r0, r5, 0 + bl DisplayItemMessageOnField + b _080B3D24 + .align 2, 0 +_080B3CE4: .4byte gOtherText_HereYouGo3 +_080B3CE8: .4byte sub_80B3B80 +_080B3CEC: .4byte 0x0000c3e1 +_080B3CF0: + ldr r4, _080B3D08 + ldr r1, _080B3D0C + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080B3D10 + ldr r3, _080B3D14 + adds r0, r5, 0 + adds r1, r4, 0 + bl DisplayItemMessageOnField + b _080B3D24 + .align 2, 0 +_080B3D08: .4byte gStringVar4 +_080B3D0C: .4byte gOtherText_SpaceForIsFull +_080B3D10: .4byte sub_80B3BD0 +_080B3D14: .4byte 0x0000c3e1 +_080B3D18: + ldr r1, _080B3D2C + ldr r2, _080B3D30 + ldr r3, _080B3D34 + adds r0, r5, 0 + bl DisplayItemMessageOnField +_080B3D24: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3D2C: .4byte gOtherText_NotEnoughMoney +_080B3D30: .4byte sub_80B3BD0 +_080B3D34: .4byte 0x0000c3e1 + thumb_func_end sub_80B3BF4 + + thumb_func_start sub_80B3D38 +sub_80B3D38: @ 80B3D38 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _080B3D70 + movs r1, 0x4 + str r1, [sp] + ldr r1, _080B3D74 + str r1, [sp, 0x4] + movs r1, 0x8 + movs r2, 0x9 + movs r3, 0x4 + bl sub_80A3FA0 + ldr r1, _080B3D78 + adds r0, r4, 0 + bl sub_80F914C + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3D70: .4byte gBG1TilemapBuffer +_080B3D74: .4byte 0x0000c3e1 +_080B3D78: .4byte gUnknown_083CC708 + thumb_func_end sub_80B3D38 + + thumb_func_start sub_80B3D7C +sub_80B3D7C: @ 80B3D7C + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B3DC0 + ldrb r1, [r0, 0x9] + adds r0, r1, 0 + movs r2, 0 + bl sub_80B39D0 + movs r0, 0x7 + movs r1, 0x8 + movs r2, 0xD + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _080B3DC4 + movs r1, 0x4 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x8 + movs r2, 0x9 + movs r3, 0x4 + bl sub_80A3FA0 + adds r0, r4, 0 + bl sub_80B4378 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3DC0: .4byte gUnknown_03000708 +_080B3DC4: .4byte gBG1TilemapBuffer + thumb_func_end sub_80B3D7C + + thumb_func_start sub_80B3DC8 +sub_80B3DC8: @ 80B3DC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, r6, 0 + ldr r7, _080B3EA8 + ldrb r1, [r7, 0xD] + adds r0, r6, 0 + bl sub_80A52C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B3DEE + adds r0, r6, 0 + bl sub_80B37F8 +_080B3DEE: + ldr r0, _080B3EAC + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B3ED8 + ldr r0, _080B3EB0 + mov r8, r0 + ldrb r0, [r7, 0xB] + ldrb r1, [r7, 0x9] + adds r0, r1 + ldr r1, [r7, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl itemid_get_market_price + adds r4, r0, 0 + movs r0, 0x1 + bl GetPriceReduction + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + asrs r4, r0 + ldr r0, _080B3EB4 + lsls r5, r6, 2 + adds r5, r6 + lsls r5, 3 + adds r5, r0 + movs r1, 0xA + ldrsh r0, [r5, r1] + muls r0, r4 + mov r2, r8 + str r0, [r2] + movs r0, 0 + movs r1, 0xA + movs r2, 0xD + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _080B3EB8 + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xB + movs r3, 0xC + bl sub_80A3FA0 + bl sub_80B379C + bl sub_80B3420 + ldrb r0, [r7, 0xB] + ldrb r1, [r7, 0x9] + adds r0, r1 + ldr r1, [r7, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + ldr r1, _080B3EBC + bl itemid_copy_name + ldr r0, _080B3EC0 + movs r2, 0xA + ldrsh r1, [r5, r2] + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080B3EC4 + mov r2, r8 + ldr r1, [r2] + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + ldr r4, _080B3EC8 + ldr r1, _080B3ECC + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080B3ED0 + ldr r3, _080B3ED4 + adds r0, r6, 0 + adds r1, r4, 0 + bl DisplayItemMessageOnField + b _080B3EF0 + .align 2, 0 +_080B3EA8: .4byte gUnknown_03000708 +_080B3EAC: .4byte gMain +_080B3EB0: .4byte gUnknown_020386A0 +_080B3EB4: .4byte gTasks +_080B3EB8: .4byte gBG1TilemapBuffer +_080B3EBC: .4byte gStringVar1 +_080B3EC0: .4byte gStringVar2 +_080B3EC4: .4byte gStringVar3 +_080B3EC8: .4byte gStringVar4 +_080B3ECC: .4byte gOtherText_ThatWillBe +_080B3ED0: .4byte sub_80B3D38 +_080B3ED4: .4byte 0x0000c3e1 +_080B3ED8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B3EF0 + ldrb r1, [r7, 0x9] + adds r0, r1, 0 + movs r2, 0 + bl sub_80B39D0 + adds r0, r4, 0 + bl sub_80B4378 +_080B3EF0: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B3DC8 + + thumb_func_start sub_80B3EFC +sub_80B3EFC: @ 80B3EFC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B3F78 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0xA] + movs r0, 0 + movs r1, 0xA + movs r2, 0xD + movs r3, 0xD + bl MenuDrawTextWindow + adds r0, r5, 0 + bl sub_80B37F8 + ldr r6, _080B3F7C + ldrb r0, [r6, 0xB] + ldrb r1, [r6, 0x9] + adds r0, r1 + ldr r1, [r6, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl itemid_get_market_price + adds r4, r0, 0 + movs r0, 0x1 + bl GetPriceReduction + ldr r1, _080B3F80 + movs r2, 0x92 + lsls r2, 3 + adds r1, r2 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + asrs r4, r0 + ldr r0, [r1] + adds r1, r4, 0 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x63 + bls _080B3F62 + movs r0, 0x63 +_080B3F62: + strb r0, [r6, 0xD] + ldr r0, _080B3F78 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B3F84 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3F78: .4byte gTasks +_080B3F7C: .4byte gUnknown_03000708 +_080B3F80: .4byte gSaveBlock1 +_080B3F84: .4byte sub_80B3DC8 + thumb_func_end sub_80B3EFC + + thumb_func_start sub_80B3F88 +sub_80B3F88: @ 80B3F88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080B4020 + mov r8, r0 + ldr r1, [r0, 0x28] + ldr r3, _080B4024 + adds r1, r3 + adds r2, r1, 0 + adds r2, 0x80 + ldr r7, [r0, 0x24] + mov r10, r7 + ldr r0, _080B4028 + mov r9, r0 + movs r6, 0xD +_080B3FAC: + adds r3, r2, 0 + subs r3, 0x40 + str r3, [sp] + movs r7, 0x40 + negs r7, r7 + adds r7, r1 + mov r12, r7 + adds r3, r2, 0 + adds r4, r1, 0 + movs r5, 0xE +_080B3FC0: + ldrh r2, [r4] + mov r1, r9 + ands r1, r2 + mov r7, r8 + ldrh r0, [r7, 0x1A] + adds r0, 0x1 + cmp r1, r0 + ble _080B3FD4 + adds r0, r2, 0 + adds r0, 0x3C +_080B3FD4: + strh r0, [r3] + adds r3, 0x2 + adds r4, 0x2 + subs r5, 0x1 + cmp r5, 0 + bge _080B3FC0 + ldr r2, [sp] + mov r1, r12 + subs r6, 0x1 + cmp r6, 0 + bge _080B3FAC + ldr r1, _080B402C + add r1, r10 + movs r0, 0xF0 + lsls r0, 3 + adds r2, r1, r0 + ldr r3, _080B4030 + ldr r5, _080B4034 + ldr r4, _080B4038 + movs r6, 0xD +_080B3FFC: + str r1, [r3] + str r2, [r3, 0x4] + str r5, [r3, 0x8] + ldr r0, [r3, 0x8] + adds r2, r4 + adds r1, r4 + subs r6, 0x1 + cmp r6, 0 + bge _080B3FFC + 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 +_080B4020: .4byte gMenuWindow +_080B4024: .4byte 0x000003de +_080B4028: .4byte 0x000003ff +_080B402C: .4byte 0x00003a20 +_080B4030: .4byte 0x040000d4 +_080B4034: .4byte 0x800000f0 +_080B4038: .4byte 0xfffffc40 + thumb_func_end sub_80B3F88 + + thumb_func_start sub_80B403C +sub_80B403C: @ 80B403C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080B40D8 + mov r8, r0 + ldr r2, [r0, 0x28] + adds r1, r2, 0 + adds r1, 0x9E + adds r2, r1, 0 + adds r1, 0x80 + ldr r3, [r0, 0x24] + mov r10, r3 + ldr r7, _080B40DC + mov r9, r7 + movs r6, 0xD +_080B4060: + adds r0, r2, 0 + adds r0, 0x40 + str r0, [sp] + movs r3, 0x40 + adds r3, r1 + mov r12, r3 + adds r3, r2, 0 + adds r4, r1, 0 + movs r5, 0xE +_080B4072: + ldrh r2, [r4] + mov r1, r9 + ands r1, r2 + mov r7, r8 + ldrh r0, [r7, 0x1A] + adds r0, 0x1 + cmp r1, r0 + ble _080B4086 + adds r0, r2, 0 + subs r0, 0x3C +_080B4086: + strh r0, [r3] + adds r3, 0x2 + adds r4, 0x2 + subs r5, 0x1 + cmp r5, 0 + bge _080B4072 + ldr r2, [sp] + mov r1, r12 + subs r6, 0x1 + cmp r6, 0 + bge _080B4060 + movs r1, 0x96 + lsls r1, 4 + add r1, r10 + adds r2, r1, 0 + movs r0, 0xF0 + lsls r0, 3 + adds r1, r0 + ldr r3, _080B40E0 + ldr r5, _080B40E4 + movs r4, 0xF0 + lsls r4, 2 + movs r6, 0xD +_080B40B4: + str r1, [r3] + str r2, [r3, 0x4] + str r5, [r3, 0x8] + ldr r0, [r3, 0x8] + adds r2, r4 + adds r1, r4 + subs r6, 0x1 + cmp r6, 0 + bge _080B40B4 + 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 +_080B40D8: .4byte gMenuWindow +_080B40DC: .4byte 0x000003ff +_080B40E0: .4byte 0x040000d4 +_080B40E4: .4byte 0x800000f0 + thumb_func_end sub_80B403C + + thumb_func_start sub_80B40E8 +sub_80B40E8: @ 80B40E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + mov r8, r7 + ldr r0, _080B4134 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080B4102 + b _080B436C +_080B4102: + ldr r2, _080B4138 + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080B414C + ldr r4, _080B413C + ldrb r0, [r4, 0x9] + cmp r0, 0 + bne _080B4140 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _080B411E + b _080B436C +_080B411E: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0xB] + subs r0, 0x1 + strb r0, [r4, 0xB] + bl sub_80B3F88 + movs r0, 0 + movs r1, 0 + b _080B417A + .align 2, 0 +_080B4134: .4byte gPaletteFade +_080B4138: .4byte gMain +_080B413C: .4byte gUnknown_03000708 +_080B4140: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080B41A0 +_080B414C: + cmp r1, 0x80 + bne _080B41AC + ldr r4, _080B418C + ldrb r0, [r4, 0x9] + cmp r0, 0x7 + bne _080B4190 + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + adds r0, r1 + ldrb r1, [r4, 0x8] + cmp r0, r1 + bne _080B4166 + b _080B436C +_080B4166: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0xB] + adds r0, 0x1 + strb r0, [r4, 0xB] + bl sub_80B403C + movs r0, 0x7 + movs r1, 0x7 +_080B417A: + movs r2, 0 + bl sub_80B39D0 + bl sub_80B3A70 + bl sub_80B32A4 + b _080B436C + .align 2, 0 +_080B418C: .4byte gUnknown_03000708 +_080B4190: + ldrb r2, [r4, 0x8] + cmp r0, r2 + bne _080B4198 + b _080B436C +_080B4198: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080B41A0: + bl MoveMenuCursor + strb r0, [r4, 0x9] + bl sub_80B3A70 + b _080B436C +_080B41AC: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080B41B8 + b _080B4358 +_080B41B8: + movs r0, 0x5 + bl PlaySE + ldr r6, _080B426C + ldrb r0, [r6, 0xB] + ldrb r1, [r6, 0x9] + adds r0, r1 + ldrb r1, [r6, 0x8] + cmp r0, r1 + bne _080B41CE + b _080B4350 +_080B41CE: + movs r0, 0 + bl sub_80F996C + movs r0, 0x1 + bl sub_80F996C + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + ldrb r1, [r6, 0x9] + adds r0, r1, 0 + movs r2, 0x1 + bl sub_80B39D0 + bl sub_8072DEC + movs r0, 0 + movs r1, 0xC + movs r2, 0xD + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldrb r0, [r6, 0xC] + cmp r0, 0 + bne _080B428C + ldr r5, _080B4270 + ldrb r0, [r6, 0xB] + ldrb r1, [r6, 0x9] + adds r0, r1 + ldr r1, [r6, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl itemid_get_market_price + adds r4, r0, 0 + movs r0, 0x1 + bl GetPriceReduction + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + asrs r4, r0 + str r4, [r5] + ldr r0, _080B4274 + movs r2, 0x92 + lsls r2, 3 + adds r0, r2 + ldr r0, [r0] + adds r1, r4, 0 + bl IsEnoughMoney + lsls r0, 24 + cmp r0, 0 + beq _080B42BA + ldrb r0, [r6, 0xB] + ldrb r1, [r6, 0x9] + adds r0, r1 + ldr r1, [r6, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + ldr r1, _080B4278 + bl itemid_copy_name + ldr r4, _080B427C + ldr r1, _080B4280 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080B4284 + ldr r3, _080B4288 + adds r0, r7, 0 + adds r1, r4, 0 + bl DisplayItemMessageOnField + b _080B436C + .align 2, 0 +_080B426C: .4byte gUnknown_03000708 +_080B4270: .4byte gUnknown_020386A0 +_080B4274: .4byte gSaveBlock1 +_080B4278: .4byte gStringVar1 +_080B427C: .4byte gStringVar4 +_080B4280: .4byte gOtherText_HowManyYouWant +_080B4284: .4byte sub_80B3EFC +_080B4288: .4byte 0x0000c3e1 +_080B428C: + ldr r5, _080B42C8 + ldr r4, _080B42CC + ldrb r0, [r6, 0xB] + ldrb r1, [r6, 0x9] + adds r0, r1 + ldr r1, [r6, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 5 + adds r0, r4 + ldrh r1, [r0, 0x14] + str r1, [r5] + ldr r0, _080B42D0 + movs r2, 0x92 + lsls r2, 3 + adds r0, r2 + ldr r0, [r0] + bl IsEnoughMoney + lsls r0, 24 + cmp r0, 0 + bne _080B42E0 +_080B42BA: + ldr r1, _080B42D4 + ldr r2, _080B42D8 + ldr r3, _080B42DC + adds r0, r7, 0 + bl DisplayItemMessageOnField + b _080B436C + .align 2, 0 +_080B42C8: .4byte gUnknown_020386A0 +_080B42CC: .4byte gDecorations +_080B42D0: .4byte gSaveBlock1 +_080B42D4: .4byte gOtherText_NotEnoughMoney +_080B42D8: .4byte sub_80B3BD0 +_080B42DC: .4byte 0x0000c3e1 +_080B42E0: + ldr r0, _080B4318 + ldrb r1, [r6, 0xB] + ldrb r2, [r6, 0x9] + adds r1, r2 + ldr r2, [r6, 0x4] + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + lsls r1, 5 + adds r2, r4, 0x1 + adds r1, r2 + bl StringCopy + ldr r0, _080B431C + ldr r1, [r5] + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + ldrb r0, [r6, 0xC] + cmp r0, 0x1 + bne _080B4328 + ldr r0, _080B4320 + ldr r1, _080B4324 + bl StringExpandPlaceholders + b _080B4330 + .align 2, 0 +_080B4318: .4byte gStringVar1 +_080B431C: .4byte gStringVar2 +_080B4320: .4byte gStringVar4 +_080B4324: .4byte gOtherText_ThatWillBe2 +_080B4328: + ldr r0, _080B4340 + ldr r1, _080B4344 + bl StringExpandPlaceholders +_080B4330: + ldr r1, _080B4340 + ldr r2, _080B4348 + ldr r3, _080B434C + mov r0, r8 + bl DisplayItemMessageOnField + b _080B436C + .align 2, 0 +_080B4340: .4byte gStringVar4 +_080B4344: .4byte gOtherText_ThatWillBe3 +_080B4348: .4byte sub_80B3D38 +_080B434C: .4byte 0x0000c3e1 +_080B4350: + adds r0, r7, 0 + bl sub_80B43F0 + b _080B436C +_080B4358: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B436C + movs r0, 0x5 + bl PlaySE + mov r0, r8 + bl sub_80B43F0 +_080B436C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B40E8 + + thumb_func_start sub_80B4378 +sub_80B4378: @ 80B4378 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xA + movs r2, 0xD + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _080B43E4 + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xB + movs r3, 0xC + bl sub_80A3FA0 + bl sub_80B3420 + movs r0, 0x6 + movs r1, 0x7 + bl sub_80B3764 + bl sub_80B37EC + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + bl sub_80B32A4 + ldr r1, _080B43E8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B43EC + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B43E4: .4byte gBG1TilemapBuffer +_080B43E8: .4byte gTasks +_080B43EC: .4byte sub_80B40E8 + thumb_func_end sub_80B4378 + + thumb_func_start sub_80B43F0 +sub_80B43F0: @ 80B43F0 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080B4428 + ldr r0, _080B442C + str r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080B4430 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B4434 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4428: .4byte gUnknown_0300485C +_080B442C: .4byte sub_80B3050 +_080B4430: .4byte gTasks +_080B4434: .4byte Task_ExitBuyMenu + thumb_func_end sub_80B43F0 + + thumb_func_start Task_ExitBuyMenu +Task_ExitBuyMenu: @ 80B4438 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080B4468 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B4462 + movs r0, 0 + movs r1, 0 + bl RemoveMoneyLabelObject + bl BuyMenuFreeMemory + ldr r0, _080B446C + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_080B4462: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4468: .4byte gPaletteFade +_080B446C: .4byte c2_exit_to_overworld_2_switch + thumb_func_end Task_ExitBuyMenu + + thumb_func_start sub_80B4470 +sub_80B4470: @ 80B4470 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0 + ldr r0, _080B44C8 + mov r12, r0 + ldr r6, _080B44CC + mov r8, r12 + adds r4, r6, 0 + ldr r1, _080B44D0 + mov r9, r1 + lsls r0, r5, 2 + adds r0, r5 + lsls r7, r0, 3 +_080B4492: + lsls r0, r2, 2 + mov r1, r8 + adds r3, r0, r1 + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + adds r0, r1 + ldr r1, [r4, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r3] + ldrh r0, [r0] + cmp r1, r0 + bne _080B44DC + ldrh r0, [r3, 0x2] + cmp r0, 0 + beq _080B44DC + adds r2, r0, 0 + mov r4, r9 + adds r1, r7, r4 + movs r4, 0xA + ldrsh r0, [r1, r4] + adds r0, r2, r0 + cmp r0, 0xFF + ble _080B44D4 + movs r0, 0xFF + strh r0, [r3, 0x2] + b _080B451E + .align 2, 0 +_080B44C8: .4byte gUnknown_02038724 +_080B44CC: .4byte gUnknown_03000708 +_080B44D0: .4byte gTasks +_080B44D4: + ldrh r0, [r1, 0xA] + adds r0, r2, r0 + strh r0, [r3, 0x2] + b _080B451E +_080B44DC: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x2 + bls _080B4492 + ldr r3, _080B452C + ldrb r0, [r3] + cmp r0, 0x2 + bhi _080B451E + adds r2, r0, 0 + lsls r2, 2 + add r2, r12 + ldrb r0, [r6, 0xB] + ldrb r1, [r6, 0x9] + adds r0, r1 + ldr r1, [r6, 0x4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrb r1, [r3] + lsls r1, 2 + add r1, r12 + ldr r2, _080B4530 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0xA] + strh r0, [r1, 0x2] + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] +_080B451E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B452C: .4byte gUnknown_02038730 +_080B4530: .4byte gTasks + thumb_func_end sub_80B4470 + + thumb_func_start ClearItemPurchases +ClearItemPurchases: @ 80B4534 + push {lr} + ldr r0, _080B4548 + movs r1, 0 + strb r1, [r0] + ldr r0, _080B454C + movs r1, 0x3 + bl sub_80A9684 + pop {r0} + bx r0 + .align 2, 0 +_080B4548: .4byte gUnknown_02038730 +_080B454C: .4byte gUnknown_02038724 + thumb_func_end ClearItemPurchases + + thumb_func_start CreatePokemartMenu +CreatePokemartMenu: @ 80B4550 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + bl CreateShopMenu + adds r0, r4, 0 + bl SetShopItemsForSale + bl ClearItemPurchases + ldr r0, _080B4570 + bl SetShopMenuCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4570: .4byte EnableBothScriptContexts + thumb_func_end CreatePokemartMenu + + thumb_func_start CreateDecorationShop1Menu +CreateDecorationShop1Menu: @ 80B4574 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + bl CreateShopMenu + adds r0, r4, 0 + bl SetShopItemsForSale + ldr r0, _080B4590 + bl SetShopMenuCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4590: .4byte EnableBothScriptContexts + thumb_func_end CreateDecorationShop1Menu + + thumb_func_start CreateDecorationShop2Menu +CreateDecorationShop2Menu: @ 80B4594 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2 + bl CreateShopMenu + adds r0, r4, 0 + bl SetShopItemsForSale + ldr r0, _080B45B0 + bl SetShopMenuCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B45B0: .4byte EnableBothScriptContexts + thumb_func_end CreateDecorationShop2Menu + + thumb_func_start sub_80B45B4 +sub_80B45B4: @ 80B45B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r9, r1 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r2, 16 + mov r10, r2 + ldr r2, _080B4648 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r1, 0x10] + subs r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r1, 0x12] + subs r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r4, [r1, 0xA] + movs r2, 0xC + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B4678 + movs r2, 0 + lsls r5, 16 + str r5, [sp, 0xC] + lsls r0, r3, 16 + lsls r1, r4, 16 + asrs r0, 16 + str r0, [sp] + asrs r1, 16 + str r1, [sp, 0x4] + lsls r0, r1, 1 + mov r1, r9 + adds r7, r0, r1 +_080B4608: + movs r4, 0 + lsls r2, 16 + mov r8, r2 + asrs r0, r2, 16 + ldr r2, [sp] + adds r6, r2, r0 +_080B4614: + ldr r0, [sp, 0xC] + asrs r1, r0, 16 + lsls r4, 16 + asrs r0, r4, 16 + adds r5, r1, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridGetMetatileIdAt + movs r2, 0 + ldrsh r1, [r7, r2] + lsls r0, 16 + asrs r0, 16 + cmp r1, r0 + bne _080B465C + ldr r0, [sp, 0x4] + cmp r0, 0x2 + beq _080B464C + ldrh r0, [r7, 0x2] + mov r2, r10 + orrs r2, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt + b _080B465C + .align 2, 0 +_080B4648: .4byte gTasks +_080B464C: + mov r1, r9 + ldrh r0, [r1] + mov r2, r10 + orrs r2, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt +_080B465C: + movs r2, 0x80 + lsls r2, 9 + adds r0, r4, r2 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B4614 + adds r0, r2, 0 + add r0, r8 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B4608 + b _080B4700 +_080B4678: + movs r2, 0 + lsls r5, 16 + str r5, [sp, 0xC] + lsls r0, r3, 16 + lsls r1, r4, 16 + asrs r0, 16 + str r0, [sp, 0x8] + asrs r7, r1, 16 +_080B4688: + movs r4, 0 + lsls r2, 16 + mov r8, r2 + asrs r0, r2, 16 + ldr r1, [sp, 0x8] + adds r6, r1, r0 +_080B4694: + ldr r2, [sp, 0xC] + asrs r1, r2, 16 + lsls r4, 16 + asrs r0, r4, 16 + adds r5, r1, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridGetMetatileIdAt + movs r1, 0x2 + subs r1, r7 + lsls r1, 1 + add r1, r9 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r0, 16 + asrs r0, 16 + cmp r1, r0 + bne _080B46E6 + cmp r7, 0x2 + beq _080B46D6 + movs r0, 0x1 + subs r0, r7 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + mov r2, r10 + orrs r2, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt + b _080B46E6 +_080B46D6: + mov r1, r9 + ldrh r0, [r1, 0x4] + mov r2, r10 + orrs r2, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt +_080B46E6: + movs r2, 0x80 + lsls r2, 9 + adds r0, r4, r2 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B4694 + adds r0, r2, 0 + add r0, r8 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B4688 +_080B4700: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B45B4 + + thumb_func_start sub_80B4710 +sub_80B4710: @ 80B4710 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B4738 + adds r4, r0, r1 + movs r0, 0x1 + strh r0, [r4, 0x6] + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bhi _080B47AA + lsls r0, 2 + ldr r1, _080B473C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4738: .4byte gUnknown_03004B28 +_080B473C: .4byte _080B4740 + .align 2, 0 +_080B4740: + .4byte _080B475C + .4byte _080B4764 + .4byte _080B476C + .4byte _080B4774 + .4byte _080B477C + .4byte _080B4790 + .4byte _080B47A0 +_080B475C: + ldr r1, _080B4760 + b _080B4792 + .align 2, 0 +_080B4760: .4byte gUnknown_083CC714 +_080B4764: + ldr r1, _080B4768 + b _080B4792 + .align 2, 0 +_080B4768: .4byte gUnknown_083CC71A +_080B476C: + ldr r1, _080B4770 + b _080B477E + .align 2, 0 +_080B4770: .4byte gUnknown_083CC720 +_080B4774: + ldr r1, _080B4778 + b _080B4792 + .align 2, 0 +_080B4778: .4byte gUnknown_083CC726 +_080B477C: + ldr r1, _080B478C +_080B477E: + movs r2, 0xC0 + lsls r2, 4 + adds r0, r3, 0 + bl sub_80B45B4 + b _080B47AA + .align 2, 0 +_080B478C: .4byte gUnknown_083CC72C +_080B4790: + ldr r1, _080B479C +_080B4792: + adds r0, r3, 0 + movs r2, 0 + bl sub_80B45B4 + b _080B47AA + .align 2, 0 +_080B479C: .4byte gUnknown_083CC732 +_080B47A0: + ldr r1, _080B47D4 + adds r0, r3, 0 + movs r2, 0 + bl sub_80B45B4 +_080B47AA: + ldrh r0, [r4] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r4] + adds r5, r0, 0 + cmp r5, 0 + bne _080B47CE + bl DrawWholeMapView + movs r1, 0x2 + ldrsh r0, [r4, r1] + adds r0, 0x1 + movs r1, 0x3 + bl __modsi3 + strh r0, [r4, 0x2] + strh r5, [r4, 0x6] +_080B47CE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B47D4: .4byte gUnknown_083CC738 + thumb_func_end sub_80B4710 + + thumb_func_start sub_80B47D8 +sub_80B47D8: @ 80B47D8 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + ldr r6, _080B481C + adds r0, r6, 0 + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B4820 + adds r7, r0, r1 + adds r0, r7, 0 + adds r0, 0x8 + adds r1, r7, 0 + adds r1, 0xA + bl PlayerGetDestCoords + movs r0, 0 + strh r0, [r7] + strh r0, [r7, 0x2] + strh r5, [r7, 0x4] + adds r0, r4, 0 + bl _call_via_r6 + adds r0, r4, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B481C: .4byte sub_80B4710 +_080B4820: .4byte gUnknown_03004B28 + thumb_func_end sub_80B47D8 + + thumb_func_start sub_80B4824 +sub_80B4824: @ 80B4824 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80B47D8 + ldr r1, _080B4838 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B4838: .4byte gUnknown_02038731 + thumb_func_end sub_80B4824 + + thumb_func_start sub_80B483C +sub_80B483C: @ 80B483C + push {lr} + ldr r0, _080B484C + ldrb r0, [r0] + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_080B484C: .4byte gUnknown_02038731 + thumb_func_end sub_80B483C + + thumb_func_start sub_80B4850 +sub_80B4850: @ 80B4850 + push {lr} + ldr r2, _080B4874 + ldr r0, _080B4878 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B487C + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x2 + bne _080B487C + movs r0, 0 + b _080B487E + .align 2, 0 +_080B4874: .4byte gTasks +_080B4878: .4byte gUnknown_02038731 +_080B487C: + movs r0, 0x1 +_080B487E: + pop {r1} + bx r1 + thumb_func_end sub_80B4850 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/save_menu_util.s b/asm/save_menu_util.s new file mode 100644 index 000000000..8c9b2bec4 --- /dev/null +++ b/asm/save_menu_util.s @@ -0,0 +1,457 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80945C0 +sub_80945C0: @ 80945C0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + movs r6, 0xC + bl sub_809473C + lsls r0, 24 + cmp r0, 0 + beq _080945D8 + movs r6, 0xD +_080945D8: + ldr r0, _08094658 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0809465C + lsls r0, r5, 24 + lsrs r0, 24 + lsls r1, r4, 24 + lsrs r1, 24 + adds r2, r5, r6 + lsls r2, 24 + lsrs r2, 24 + adds r3, r4, 0 + adds r3, 0xB + lsls r3, 24 + lsrs r3, 24 + bl MenuDrawTextWindow + lsls r0, r5, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r5, r0, 16 + asrs r0, 16 + lsls r1, r4, 16 + movs r2, 0x80 + lsls r2, 9 + adds r1, r2 + lsrs r4, r1, 16 + asrs r1, 16 + bl sub_8094778 + lsls r5, 16 + asrs r5, 16 + lsls r1, r4, 16 + asrs r4, r1, 16 + movs r0, 0x80 + lsls r0, 10 + adds r1, r0 + asrs r1, 16 + adds r0, r5, 0 + bl sub_8094740 + adds r1, r4, 0x4 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_80947B0 + adds r1, r4, 0x6 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_80947F8 + adds r4, 0x8 + lsls r4, 16 + asrs r4, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8094844 + b _080946C2 + .align 2, 0 +_08094658: .4byte 0x00000801 +_0809465C: + lsls r0, r5, 24 + lsrs r0, 24 + lsls r1, r4, 24 + lsrs r1, 24 + adds r2, r5, r6 + lsls r2, 24 + lsrs r2, 24 + adds r3, r4, 0 + adds r3, 0x9 + lsls r3, 24 + lsrs r3, 24 + bl MenuDrawTextWindow + lsls r0, r5, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r5, r0, 16 + asrs r0, 16 + lsls r1, r4, 16 + movs r2, 0x80 + lsls r2, 9 + adds r1, r2 + lsrs r4, r1, 16 + asrs r1, 16 + bl sub_8094778 + lsls r5, 16 + asrs r5, 16 + lsls r1, r4, 16 + asrs r4, r1, 16 + movs r0, 0x80 + lsls r0, 10 + adds r1, r0 + asrs r1, 16 + adds r0, r5, 0 + bl sub_8094740 + adds r1, r4, 0x4 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_80947B0 + adds r4, 0x6 + lsls r4, 16 + asrs r4, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8094844 +_080946C2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80945C0 + + thumb_func_start sub_80946C8 +sub_80946C8: @ 80946C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r4, r0, 16 + adds r7, r4, 0 + lsls r1, 16 + lsrs r5, r1, 16 + mov r8, r5 + movs r6, 0xC + bl sub_809473C + lsls r0, 24 + cmp r0, 0 + beq _080946E8 + movs r6, 0xD +_080946E8: + ldr r0, _08094710 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08094714 + lsls r0, r4, 24 + lsrs r0, 24 + lsls r1, r5, 24 + lsrs r1, 24 + adds r2, r4, r6 + lsls r2, 24 + lsrs r2, 24 + adds r3, r5, 0 + adds r3, 0xB + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + b _08094730 + .align 2, 0 +_08094710: .4byte 0x00000801 +_08094714: + lsls r0, r7, 24 + lsrs r0, 24 + mov r2, r8 + lsls r1, r2, 24 + lsrs r1, 24 + adds r2, r7, r6 + lsls r2, 24 + lsrs r2, 24 + mov r3, r8 + adds r3, 0x9 + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect +_08094730: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80946C8 + + thumb_func_start sub_809473C +sub_809473C: @ 809473C + movs r0, 0x1 + bx lr + thumb_func_end sub_809473C + + thumb_func_start sub_8094740 +sub_8094740: @ 8094740 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08094770 + lsls r1, r4, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + adds r2, r5, 0 + bl MenuPrint + ldr r0, _08094774 + adds r4, 0xC + lsls r4, 24 + lsrs r4, 24 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8072B4C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094770: .4byte gOtherText_Player +_08094774: .4byte gSaveBlock2 + thumb_func_end sub_8094740 + + thumb_func_start sub_8094778 +sub_8094778: @ 8094778 + push {r4,r5,lr} + sub sp, 0x20 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _080947AC + ldrb r1, [r0, 0x14] + mov r0, sp + bl sub_80FBFF8 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl MenuPrint + add sp, 0x20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080947AC: .4byte gMapHeader + thumb_func_end sub_8094778 + + thumb_func_start sub_80947B0 +sub_80947B0: @ 80947B0 + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _080947F4 + lsls r1, r4, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + adds r2, r5, 0 + bl MenuPrint + bl GetBadgeCount + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, sp + bl ConvertIntToDecimalString + adds r4, 0xC + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8072B4C + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080947F4: .4byte gOtherText_Badges + thumb_func_end sub_80947B0 + + thumb_func_start sub_80947F8 +sub_80947F8: @ 80947F8 + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08094840 + lsls r1, r4, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + adds r2, r5, 0 + bl MenuPrint + bl GetPokedexSeenCount + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, sp + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r4, 0xC + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8072B4C + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094840: .4byte gOtherText_Pokedex + thumb_func_end sub_80947F8 + + thumb_func_start sub_8094844 +sub_8094844: @ 8094844 + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08094888 + lsls r1, r4, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + adds r2, r5, 0 + bl MenuPrint + ldr r0, _0809488C + ldrh r1, [r0, 0xE] + ldrb r2, [r0, 0x10] + mov r0, sp + movs r3, 0x1 + bl FormatPlayTime + adds r4, 0xC + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8072B4C + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094888: .4byte gOtherText_PlayTime +_0809488C: .4byte gSaveBlock2 + thumb_func_end sub_8094844 + + thumb_func_start GetBadgeCount +GetBadgeCount: @ 8094890 + push {r4,r5,lr} + movs r5, 0 + ldr r4, _080948BC +_08094896: + lsls r0, r4, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080948AA + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080948AA: + adds r4, 0x1 + ldr r0, _080948C0 + cmp r4, r0 + ble _08094896 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080948BC: .4byte 0x00000807 +_080948C0: .4byte 0x0000080e + thumb_func_end GetBadgeCount + + thumb_func_start GetPokedexSeenCount +GetPokedexSeenCount: @ 80948C4 + push {lr} + bl sub_806912C + cmp r0, 0 + beq _080948D6 + movs r0, 0x1 + bl pokedex_count + b _080948DC +_080948D6: + movs r0, 0x1 + bl sub_8090F68 +_080948DC: + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end GetPokedexSeenCount + + thumb_func_start FormatPlayTime +FormatPlayTime: @ 80948E4 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r3, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + lsls r4, 16 + lsrs r4, 16 + bl ConvertIntToDecimalString + adds r5, r0, 0 + movs r0, 0 + strb r0, [r5] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0 + beq _0809490E + movs r0, 0xF0 + strb r0, [r5, 0x1] + b _08094910 +_0809490E: + strb r4, [r5, 0x1] +_08094910: + movs r0, 0 + strb r0, [r5, 0x2] + adds r5, 0x3 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end FormatPlayTime + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/trainer_card.s b/asm/trainer_card.s new file mode 100644 index 000000000..40d2c6972 --- /dev/null +++ b/asm/trainer_card.s @@ -0,0 +1,2755 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8093110 +sub_8093110: @ 8093110 + push {lr} + bl sub_80932AC + ldr r0, _08093128 + bl SetMainCallback2 + ldr r0, _0809312C + adds r0, 0x9C + movs r1, 0x2 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08093128: .4byte sub_8093174 +_0809312C: .4byte 0x02000000 + thumb_func_end sub_8093110 + + thumb_func_start sub_8093130 +sub_8093130: @ 8093130 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80932E4 + ldr r0, _08093164 + bl SetMainCallback2 + ldr r2, _08093168 + ldr r3, _0809316C + ldr r0, _08093170 + lsls r4, 2 + adds r4, r0 + ldrb r1, [r4, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x1A] + adds r2, 0x9C + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093164: .4byte sub_8093174 +_08093168: .4byte 0x02000000 +_0809316C: .4byte gLinkPlayers +_08093170: .4byte gUnknown_02029818 + thumb_func_end sub_8093130 + + thumb_func_start sub_8093174 +sub_8093174: @ 8093174 + push {lr} + ldr r0, _0809318C + ldr r1, _08093190 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bhi _08093232 + lsls r0, 2 + ldr r1, _08093194 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809318C: .4byte gMain +_08093190: .4byte 0x0000043c +_08093194: .4byte _08093198 + .align 2, 0 +_08093198: + .4byte _080931BC + .4byte _080931C6 + .4byte _080931CC + .4byte _080931D2 + .4byte _080931DC + .4byte _080931EC + .4byte _08093200 + .4byte _08093206 + .4byte _08093220 +_080931BC: + bl sub_8093534 + bl sub_8093688 + b _0809320A +_080931C6: + bl sub_8093598 + b _0809320A +_080931CC: + bl sub_80935EC + b _0809320A +_080931D2: + bl sub_8093610 + bl sub_80937A4 + b _0809320A +_080931DC: + bl sub_80937BC + ldr r1, _080931F8 + ldr r0, _080931FC + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080931EC: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _08093232 + b _0809320A + .align 2, 0 +_080931F8: .4byte gMain +_080931FC: .4byte 0x0000043c +_08093200: + bl sub_80937F0 + b _0809320A +_08093206: + bl sub_80937D8 +_0809320A: + ldr r1, _08093218 + ldr r0, _0809321C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08093232 + .align 2, 0 +_08093218: .4byte gMain +_0809321C: .4byte 0x0000043c +_08093220: + bl nullsub_15 + bl sub_8093800 + bl sub_8093550 + ldr r0, _08093238 + bl SetMainCallback2 +_08093232: + pop {r0} + bx r0 + .align 2, 0 +_08093238: .4byte sub_809323C + thumb_func_end sub_8093174 + + thumb_func_start sub_809323C +sub_809323C: @ 809323C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_809323C + + thumb_func_start sub_8093254 +sub_8093254: @ 8093254 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r2, _0809329C + ldrb r0, [r2, 0x6] + adds r0, 0x1 + strb r0, [r2, 0x6] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bls _0809327E + movs r0, 0 + strb r0, [r2, 0x6] + ldrb r0, [r2, 0x5] + movs r1, 0x1 + eors r0, r1 + strb r0, [r2, 0x5] +_0809327E: + ldrb r0, [r2, 0x4] + cmp r0, 0 + beq _08093298 + ldr r1, _080932A0 + ldr r0, _080932A4 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080932A8 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_08093298: + pop {r0} + bx r0 + .align 2, 0 +_0809329C: .4byte 0x02000000 +_080932A0: .4byte 0x040000d4 +_080932A4: .4byte gUnknown_03004DE0 +_080932A8: .4byte 0x800000a0 + thumb_func_end sub_8093254 + + thumb_func_start sub_80932AC +sub_80932AC: @ 80932AC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080932DC + movs r1, 0xFF + bl CreateTask + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080932E0 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + adds r0, 0xC + adds r1, r4, 0 + bl StoreWordInTwoHalfwords + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080932DC: .4byte nullsub_60 +_080932E0: .4byte gTasks + thumb_func_end sub_80932AC + + thumb_func_start sub_80932E4 +sub_80932E4: @ 80932E4 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0809331C + movs r1, 0xFF + bl CreateTask + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08093320 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x8] + strh r4, [r0, 0xA] + adds r0, 0xC + adds r1, r5, 0 + bl StoreWordInTwoHalfwords + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809331C: .4byte nullsub_60 +_08093320: .4byte gTasks + thumb_func_end sub_80932E4 + + thumb_func_start sub_8093324 +sub_8093324: @ 8093324 + push {r4,r5,lr} + ldr r0, _0809336C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _08093370 + adds r4, r1, r0 + ldr r5, _08093374 + ldrh r0, [r4, 0x8] + strb r0, [r5, 0x1] + adds r0, r4, 0 + adds r0, 0xC + adds r1, r5, 0 + adds r1, 0x60 + bl LoadWordFromTwoHalfwords + ldrb r0, [r5, 0x1] + cmp r0, 0 + beq _0809337C + ldr r2, _08093378 + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + adds r1, r2 + adds r0, r5, 0 + adds r0, 0x64 + movs r2, 0x38 + bl memcpy + b _08093384 + .align 2, 0 +_0809336C: .4byte nullsub_60 +_08093370: .4byte gTasks +_08093374: .4byte 0x02000000 +_08093378: .4byte gUnknown_0202FFC0 +_0809337C: + adds r0, r5, 0 + adds r0, 0x64 + bl sub_8093390 +_08093384: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8093324 + + thumb_func_start nullsub_60 +nullsub_60: @ 809338C + bx lr + thumb_func_end nullsub_60 + + thumb_func_start sub_8093390 +sub_8093390: @ 8093390 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, _080934A4 + ldrb r0, [r6, 0x8] + strb r0, [r5] + ldrh r0, [r6, 0xE] + strh r0, [r5, 0x10] + ldrb r0, [r6, 0x10] + strh r0, [r5, 0x12] + movs r0, 0x1 + bl sub_8053108 + adds r4, r0, 0 + movs r0, 0xA + bl sub_8053108 + cmp r0, 0 + bne _080933B6 + movs r4, 0 +_080933B6: + lsrs r0, r4, 16 + strh r0, [r5, 0x6] + lsrs r0, r4, 8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x8] + ands r4, r1 + strh r4, [r5, 0xA] + ldr r0, _080934A8 + bl FlagGet + strb r0, [r5, 0x2] + bl sub_8090FC0 + strb r0, [r5, 0x3] + bl GetPokedexSeenCount + strh r0, [r5, 0xC] + ldrb r1, [r6, 0xB] + lsls r1, 8 + ldrb r0, [r6, 0xA] + orrs r0, r1 + strh r0, [r5, 0xE] + ldr r7, _080934AC + movs r0, 0x17 + adds r1, r7, 0 + bl sav12_xor_get_clamped_above + strh r0, [r5, 0x14] + movs r0, 0x18 + adds r1, r7, 0 + bl sav12_xor_get_clamped_above + strh r0, [r5, 0x16] + ldr r1, _080934B0 + movs r0, 0x23 + bl sav12_xor_get_clamped_above + strh r0, [r5, 0x1C] + ldr r4, _080934B4 + movs r0, 0x22 + adds r1, r4, 0 + bl sav12_xor_get_clamped_above + strh r0, [r5, 0x1E] + movs r0, 0x15 + adds r1, r4, 0 + bl sav12_xor_get_clamped_above + strh r0, [r5, 0x20] + movs r1, 0xAE + lsls r1, 3 + adds r0, r6, r1 + ldrh r0, [r0] + strh r0, [r5, 0x18] + ldr r2, _080934B8 + adds r1, r6, r2 + ldrh r1, [r1] + strh r1, [r5, 0x1A] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r7 + bls _08093436 + strh r7, [r5, 0x18] +_08093436: + ldrh r0, [r5, 0x1A] + cmp r0, r7 + bls _0809343E + strh r7, [r5, 0x1A] +_0809343E: + movs r4, 0 + bl sub_80C4D50 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _0809344E + movs r4, 0x1 +_0809344E: + strb r4, [r5, 0x4] + ldr r0, _080934BC + movs r2, 0x92 + lsls r2, 3 + adds r1, r0, r2 + ldr r1, [r1] + str r1, [r5, 0x24] + movs r2, 0 + adds r6, r5, 0 + adds r6, 0x30 + adds r3, r5, 0 + adds r3, 0x28 + ldr r1, _080934C0 + adds r4, r0, r1 +_0809346A: + lsls r0, r2, 1 + adds r1, r3, r0 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _0809346A + movs r2, 0 + adds r3, r6, 0 + ldr r4, _080934A4 +_08093484: + adds r1, r3, r2 + adds r0, r2, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _08093484 + adds r0, r5, 0 + bl sub_80934F4 + strb r0, [r5, 0x1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080934A4: .4byte gSaveBlock2 +_080934A8: .4byte 0x00000801 +_080934AC: .4byte 0x0000270f +_080934B0: .4byte 0x000003e7 +_080934B4: .4byte 0x0000ffff +_080934B8: .4byte 0x00000572 +_080934BC: .4byte gSaveBlock1 +_080934C0: .4byte 0x00002b1c + thumb_func_end sub_8093390 + + thumb_func_start sub_80934C4 +sub_80934C4: @ 80934C4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080934D8 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x1] + bx lr + .align 2, 0 +_080934D8: .4byte gUnknown_0202FFC0 + thumb_func_end sub_80934C4 + + thumb_func_start sav12_xor_get_clamped_above +sav12_xor_get_clamped_above: @ 80934DC + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + bl sub_8053108 + cmp r0, r4 + bls _080934EE + adds r0, r4, 0 +_080934EE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sav12_xor_get_clamped_above + + thumb_func_start sub_80934F4 +sub_80934F4: @ 80934F4 + push {lr} + adds r1, r0, 0 + movs r2, 0 + ldrh r0, [r1, 0x6] + cmp r0, 0 + bne _08093506 + ldr r0, [r1, 0x8] + cmp r0, 0 + beq _08093508 +_08093506: + movs r2, 0x1 +_08093508: + ldrb r0, [r1, 0x3] + cmp r0, 0 + beq _08093514 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_08093514: + ldrh r0, [r1, 0x1A] + cmp r0, 0x31 + bls _08093520 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_08093520: + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0809352C + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_0809352C: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80934F4 + + thumb_func_start sub_8093534 +sub_8093534: @ 8093534 + push {lr} + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + thumb_func_end sub_8093534 + + thumb_func_start sub_8093550 +sub_8093550: @ 8093550 + push {r4,lr} + ldr r0, _08093588 + bl SetVBlankCallback + ldr r3, _0809358C + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08093590 + ldrh r0, [r4] + movs r1, 0x3 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08093594 + ldrh r0, [r2] + movs r1, 0x18 + orrs r0, r1 + strh r0, [r2] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093588: .4byte sub_8093254 +_0809358C: .4byte 0x04000208 +_08093590: .4byte 0x04000200 +_08093594: .4byte REG_DISPSTAT + thumb_func_end sub_8093550 + + thumb_func_start sub_8093598 +sub_8093598: @ 8093598 + push {r4-r7,lr} + sub sp, 0x4 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0x80 + lsls r3, 9 + mov r4, sp + movs r6, 0 + ldr r1, _080935E4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _080935E8 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_080935B6: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r5 + subs r3, r5 + cmp r3, r5 + bhi _080935B6 + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080935E4: .4byte 0x040000d4 +_080935E8: .4byte 0x81000800 + thumb_func_end sub_8093598 + + thumb_func_start sub_80935EC +sub_80935EC: @ 80935EC + sub sp, 0x4 + movs r2, 0xE0 + lsls r2, 19 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r0, _08093608 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0809360C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + add sp, 0x4 + bx lr + .align 2, 0 +_08093608: .4byte 0x040000d4 +_0809360C: .4byte 0x81000200 + thumb_func_end sub_80935EC + + thumb_func_start sub_8093610 +sub_8093610: @ 8093610 + push {r4,r5,lr} + ldr r5, _08093664 + movs r1, 0 + strh r1, [r5] + ldr r2, _08093668 + strh r1, [r2] + ldr r3, _0809366C + strh r1, [r3] + ldr r4, _08093670 + strh r1, [r4] + ldr r0, _08093674 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _08093678 + adds r0, r1, 0 + strh r0, [r5] + ldr r1, _0809367C + adds r0, r1, 0 + strh r0, [r2] + ldr r1, _08093680 + adds r0, r1, 0 + strh r0, [r3] + ldr r1, _08093684 + adds r0, r1, 0 + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08093664: .4byte REG_BG0CNT +_08093668: .4byte REG_BG1CNT +_0809366C: .4byte REG_BG2CNT +_08093670: .4byte REG_BG3CNT +_08093674: .4byte REG_BG0HOFS +_08093678: .4byte 0x00001e08 +_0809367C: .4byte 0x00000801 +_08093680: .4byte 0x00000902 +_08093684: .4byte 0x00000a03 + thumb_func_end sub_8093610 + + thumb_func_start sub_8093688 +sub_8093688: @ 8093688 + push {r4-r6,lr} + bl sub_8093324 + ldr r2, _080936D0 + movs r1, 0 + strb r1, [r2] + strb r1, [r2, 0x3] + strb r1, [r2, 0x4] + adds r0, r2, 0 + adds r0, 0x65 + ldrb r0, [r0] + strb r0, [r2, 0x2] + strb r1, [r2, 0x5] + strb r1, [r2, 0x6] + movs r4, 0 + adds r6, r2, 0 + adds r6, 0x20 + adds r5, r2, 0 + adds r5, 0x8C +_080936AE: + lsls r0, r4, 4 + adds r0, r6 + lsls r1, r4, 1 + adds r1, r5, r1 + ldrh r1, [r1] + bl sub_80EB3FC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080936AE + bl sub_80936D4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080936D0: .4byte 0x02000000 + thumb_func_end sub_8093688 + + thumb_func_start sub_80936D4 +sub_80936D4: @ 80936D4 + push {r4-r6,lr} + ldr r4, _08093798 + movs r0, 0 + strb r0, [r4, 0x7] + strb r0, [r4, 0x8] + strb r0, [r4, 0x9] + strb r0, [r4, 0xA] + strb r0, [r4, 0xB] + strb r0, [r4, 0xC] + strb r0, [r4, 0xD] + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0 + movs r2, 0x8 + bl memset + adds r0, r4, 0 + adds r0, 0x66 + ldrb r0, [r0] + cmp r0, 0 + beq _08093704 + ldrb r0, [r4, 0x7] + adds r0, 0x1 + strb r0, [r4, 0x7] +_08093704: + adds r0, r4, 0 + adds r0, 0x6A + ldrh r0, [r0] + cmp r0, 0 + bne _08093714 + ldr r0, [r4, 0x6C] + cmp r0, 0 + beq _0809371A +_08093714: + ldrb r0, [r4, 0x8] + adds r0, 0x1 + strb r0, [r4, 0x8] +_0809371A: + ldr r1, _08093798 + ldr r0, [r1, 0x78] + cmp r0, 0 + beq _08093728 + ldrb r0, [r1, 0x9] + adds r0, 0x1 + strb r0, [r1, 0x9] +_08093728: + ldr r0, [r1, 0x7C] + cmp r0, 0 + beq _08093734 + ldrb r0, [r1, 0xA] + adds r0, 0x1 + strb r0, [r1, 0xA] +_08093734: + adds r0, r1, 0 + adds r0, 0x80 + ldrh r0, [r0] + cmp r0, 0 + beq _08093744 + ldrb r0, [r1, 0xB] + adds r0, 0x1 + strb r0, [r1, 0xB] +_08093744: + adds r0, r1, 0 + adds r0, 0x82 + ldrh r0, [r0] + cmp r0, 0 + beq _08093754 + ldrb r0, [r1, 0xC] + adds r0, 0x1 + strb r0, [r1, 0xC] +_08093754: + adds r0, r1, 0 + adds r0, 0x84 + ldrh r0, [r0] + cmp r0, 0 + beq _08093764 + ldrb r0, [r1, 0xD] + adds r0, 0x1 + strb r0, [r1, 0xD] +_08093764: + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08093792 + movs r5, 0 + ldr r4, _0809379C + adds r6, r1, 0 + adds r6, 0xE +_08093772: + lsls r0, r4, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08093788 + adds r1, r5, r6 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08093788: + adds r4, 0x1 + adds r5, 0x1 + ldr r0, _080937A0 + cmp r4, r0 + bls _08093772 +_08093792: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08093798: .4byte 0x02000000 +_0809379C: .4byte 0x00000807 +_080937A0: .4byte 0x0000080e + thumb_func_end sub_80936D4 + + thumb_func_start sub_80937A4 +sub_80937A4: @ 80937A4 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + pop {r0} + bx r0 + thumb_func_end sub_80937A4 + + thumb_func_start sub_80937BC +sub_80937BC: @ 80937BC + push {r4,lr} + ldr r4, _080937D4 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl MultistepInitMenuWindowBegin + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080937D4: .4byte gWindowConfig_81E6DC4 + thumb_func_end sub_80937BC + + thumb_func_start sub_80937D8 +sub_80937D8: @ 80937D8 + push {lr} + bl sub_8093E04 + bl sub_8093E28 + bl sub_8093F64 + bl sub_8093DAC + pop {r0} + bx r0 + thumb_func_end sub_80937D8 + + thumb_func_start sub_80937F0 +sub_80937F0: @ 80937F0 + push {lr} + bl sub_8093EF8 + pop {r0} + bx r0 + thumb_func_end sub_80937F0 + + thumb_func_start nullsub_15 +nullsub_15: @ 80937FC + bx lr + thumb_func_end nullsub_15 + + thumb_func_start sub_8093800 +sub_8093800: @ 8093800 + push {lr} + bl sub_809380C + pop {r0} + bx r0 + thumb_func_end sub_8093800 + + thumb_func_start sub_809380C +sub_809380C: @ 809380C + push {r4,lr} + ldr r4, _08093828 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093828: .4byte sub_809382C + thumb_func_end sub_809380C + + thumb_func_start sub_809382C +sub_809382C: @ 809382C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r7, _08093858 + lsls r1, r0, 2 + adds r1, r0 + lsls r4, r1, 3 + ldr r6, _0809385C + ldr r5, _08093860 +_0809383E: + ldrb r0, [r6] + lsls r0, 2 + adds r0, r7 + ldr r1, [r0] + adds r0, r4, r5 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0809383E + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08093858: .4byte gUnknown_083B5EBC +_0809385C: .4byte 0x02000000 +_08093860: .4byte gTasks + thumb_func_end sub_809382C + + thumb_func_start sub_8093864 +sub_8093864: @ 8093864 + push {r4,r5,lr} + sub sp, 0x4 + ldr r4, _080938A0 + ldr r2, _080938A4 + ldrb r1, [r2, 0x11] + movs r0, 0x1 + ands r0, r1 + movs r5, 0 + strb r0, [r4, 0x5] + ldrb r0, [r2, 0x12] + strb r0, [r4, 0x6] + bl sub_80939A4 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080938A0: .4byte 0x02000000 +_080938A4: .4byte gSaveBlock2 + thumb_func_end sub_8093864 + + thumb_func_start sub_80938A8 +sub_80938A8: @ 80938A8 + push {lr} + ldr r0, _080938C4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080938BE + ldr r1, _080938C8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080938BE: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080938C4: .4byte gPaletteFade +_080938C8: .4byte 0x02000000 + thumb_func_end sub_80938A8 + + thumb_func_start rfu_NI_stopReceivingData +rfu_NI_stopReceivingData: @ 80938CC + push {lr} + ldr r0, _080938E4 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080938EC + ldr r1, _080938E8 + movs r0, 0x5 + strb r0, [r1] + movs r0, 0x1 + b _08093914 + .align 2, 0 +_080938E4: .4byte gMain +_080938E8: .4byte 0x02000000 +_080938EC: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08093912 + ldr r2, _08093900 + ldrb r1, [r2, 0x3] + cmp r1, 0 + beq _08093904 + movs r0, 0x5 + b _0809390C + .align 2, 0 +_08093900: .4byte 0x02000000 +_08093904: + movs r0, 0x1 + eors r0, r1 + strb r0, [r2, 0x3] + movs r0, 0x3 +_0809390C: + strb r0, [r2] + movs r0, 0x1 + b _08093914 +_08093912: + movs r0, 0 +_08093914: + pop {r1} + bx r1 + thumb_func_end rfu_NI_stopReceivingData + + thumb_func_start sub_8093918 +sub_8093918: @ 8093918 + push {lr} + bl sub_8093A28 + movs r0, 0x36 + bl PlaySE + ldr r1, _08093934 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08093934: .4byte 0x02000000 + thumb_func_end sub_8093918 + + thumb_func_start sub_8093938 +sub_8093938: @ 8093938 + push {lr} + bl sub_8093A48 + lsls r0, 24 + cmp r0, 0 + beq _0809394A + ldr r1, _08093950 + movs r0, 0x2 + strb r0, [r1] +_0809394A: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08093950: .4byte 0x02000000 + thumb_func_end sub_8093938 + + thumb_func_start sub_8093954 +sub_8093954: @ 8093954 + push {lr} + sub sp, 0x4 + bl sub_80939C0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0809397C + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + add sp, 0x4 + pop {r1} + bx r1 + .align 2, 0 +_0809397C: .4byte 0x02000000 + thumb_func_end sub_8093954 + + thumb_func_start sub_8093980 +sub_8093980: @ 8093980 + push {lr} + ldr r0, _0809399C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08093996 + ldr r0, _080939A0 + ldr r0, [r0, 0x60] + bl SetMainCallback2 +_08093996: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809399C: .4byte gPaletteFade +_080939A0: .4byte 0x02000000 + thumb_func_end sub_8093980 + + thumb_func_start sub_80939A4 +sub_80939A4: @ 80939A4 + push {lr} + ldr r0, _080939B8 + movs r1, 0 + bl CreateTask + ldr r0, _080939BC + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080939B8: .4byte sub_80939DC +_080939BC: .4byte gWindowConfig_81E6DC4 + thumb_func_end sub_80939A4 + + thumb_func_start sub_80939C0 +sub_80939C0: @ 80939C0 + push {lr} + ldr r0, _080939D8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080939D4 + bl DestroyTask +_080939D4: + pop {r0} + bx r0 + .align 2, 0 +_080939D8: .4byte sub_80939DC + thumb_func_end sub_80939C0 + + thumb_func_start sub_80939DC +sub_80939DC: @ 80939DC + push {lr} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _08093A20 + adds r2, r1, r0 + ldr r0, _08093A24 + ldrb r1, [r0, 0x5] + movs r3, 0xA + ldrsh r0, [r2, r3] + cmp r1, r0 + beq _08093A04 + strh r1, [r2, 0xA] + ldrh r0, [r2, 0x8] + movs r1, 0x1 + eors r0, r1 + strh r0, [r2, 0x8] +_08093A04: + movs r0, 0x8 + ldrsh r1, [r2, r0] + mov r0, sp + bl sub_8094250 + mov r0, sp + movs r1, 0xA + movs r2, 0xC + bl MenuPrint + add sp, 0x20 + pop {r0} + bx r0 + .align 2, 0 +_08093A20: .4byte gTasks +_08093A24: .4byte 0x02000000 + thumb_func_end sub_80939DC + + thumb_func_start sub_8093A28 +sub_8093A28: @ 8093A28 + push {r4,lr} + ldr r4, _08093A44 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093A44: .4byte sub_8093A68 + thumb_func_end sub_8093A28 + + thumb_func_start sub_8093A48 +sub_8093A48: @ 8093A48 + push {lr} + ldr r0, _08093A5C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08093A60 + movs r0, 0 + b _08093A62 + .align 2, 0 +_08093A5C: .4byte sub_8093A68 +_08093A60: + movs r0, 0x1 +_08093A62: + pop {r1} + bx r1 + thumb_func_end sub_8093A48 + + thumb_func_start sub_8093A68 +sub_8093A68: @ 8093A68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08093A98 + ldr r2, _08093A9C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_08093A7A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _08093A7A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08093A98: .4byte gUnknown_083B5ED8 +_08093A9C: .4byte gTasks + thumb_func_end sub_8093A68 + + thumb_func_start sub_8093AA0 +sub_8093AA0: @ 8093AA0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _08093AE0 + movs r1, 0 + strb r1, [r0, 0x4] + bl dp12_8087EA4 + movs r1, 0 + ldr r0, _08093AE4 + ldr r2, _08093AE8 + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 +_08093ABA: + strh r2, [r0] + adds r0, 0x2 + adds r1, 0x1 + cmp r1, 0x9F + bls _08093ABA + ldr r0, _08093AEC + bl SetHBlankCallback + ldr r1, _08093AE0 + movs r0, 0x1 + strb r0, [r1, 0x4] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093AE0: .4byte 0x02000000 +_08093AE4: .4byte gUnknown_03004DE0 +_08093AE8: .4byte 0x0000fffc +_08093AEC: .4byte sub_8093D7C + thumb_func_end sub_8093AA0 + + thumb_func_start sub_8093AF0 +sub_8093AF0: @ 8093AF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r8, r0 + ldr r1, _08093BFC + movs r0, 0 + strb r0, [r1, 0x4] + mov r2, r8 + ldrh r0, [r2, 0xA] + adds r0, 0x3 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + ble _08093B18 + movs r0, 0x4F + strh r0, [r2, 0xA] +_08093B18: + mov r4, r8 + movs r0, 0xA + ldrsh r7, [r4, r0] + movs r0, 0xA0 + subs r0, r7 + mov r9, r0 + subs r4, r0, r7 + negs r0, r7 + lsls r6, r0, 16 + movs r0, 0xA0 + lsls r0, 16 + adds r1, r4, 0 + bl __udivsi3 + adds r5, r0, 0 + ldr r1, _08093C00 + adds r5, r1 + adds r0, r5, 0 + muls r0, r4 + adds r0, r6 + mov r10, r0 + adds r0, r5, 0 + adds r1, r4, 0 + bl __udivsi3 + str r0, [sp] + lsls r5, 1 + movs r3, 0 + cmp r3, r7 + bcs _08093B74 + ldr r2, _08093C04 + mov r12, r2 + ldr r0, _08093C08 + adds r4, r0, 0 +_08093B5C: + lsls r0, r3, 16 + asrs r0, 16 + lsls r1, r0, 1 + add r1, r12 + subs r2, r4, r0 + strh r2, [r1] + adds r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, r7 + bcc _08093B5C +_08093B74: + lsls r2, r3, 16 + mov r1, r9 + lsls r0, r1, 16 + asrs r1, r0, 16 + mov r4, r10 + lsrs r7, r4, 16 + cmp r2, r0 + bge _08093BAE + ldr r0, _08093C04 + mov r9, r0 + ldr r4, _08093C08 + mov r12, r4 + adds r4, r1, 0 +_08093B8E: + lsrs r1, r6, 16 + adds r6, r5 + ldr r0, [sp] + subs r5, r0 + asrs r2, 16 + lsls r0, r2, 1 + add r0, r9 + add r1, r12 + strh r1, [r0] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _08093B8E +_08093BAE: + adds r1, r7, 0 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x9F + bgt _08093BD4 + ldr r4, _08093C04 + ldr r0, _08093C08 + adds r2, r1, r0 +_08093BBE: + lsls r1, r3, 16 + asrs r1, 16 + lsls r0, r1, 1 + adds r0, r4 + strh r2, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + cmp r1, 0x9F + ble _08093BBE +_08093BD4: + movs r0, 0x1 + ldr r1, _08093BFC + strb r0, [r1, 0x4] + mov r2, r8 + movs r4, 0xA + ldrsh r0, [r2, r4] + cmp r0, 0x4A + ble _08093BEA + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_08093BEA: + movs r0, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08093BFC: .4byte 0x02000000 +_08093C00: .4byte 0xffff0000 +_08093C04: .4byte gUnknown_03004DE0 +_08093C08: .4byte 0x0000fffc + thumb_func_end sub_8093AF0 + + thumb_func_start sub_8093C0C +sub_8093C0C: @ 8093C0C + push {r4,lr} + adds r4, r0, 0 + bl sub_80939C0 + bl sub_8093DAC + ldr r0, _08093C34 + ldrb r0, [r0, 0x3] + cmp r0, 0 + bne _08093C24 + bl sub_80939A4 +_08093C24: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093C34: .4byte 0x02000000 + thumb_func_end sub_8093C0C + + thumb_func_start sub_8093C38 +sub_8093C38: @ 8093C38 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r8, r0 + ldr r1, _08093D40 + movs r2, 0 + strb r2, [r1, 0x4] + ldrh r0, [r0, 0xA] + subs r0, 0x3 + mov r3, r8 + strh r0, [r3, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _08093C5C + strh r2, [r3, 0xA] +_08093C5C: + mov r4, r8 + movs r0, 0xA + ldrsh r7, [r4, r0] + movs r0, 0xA0 + subs r0, r7 + mov r9, r0 + subs r4, r0, r7 + negs r0, r7 + lsls r6, r0, 16 + movs r0, 0xA0 + lsls r0, 16 + adds r1, r4, 0 + bl __udivsi3 + adds r5, r0, 0 + ldr r1, _08093D44 + adds r5, r1 + adds r0, r5, 0 + muls r0, r4 + adds r0, r6 + mov r10, r0 + adds r0, r5, 0 + adds r1, r4, 0 + bl __udivsi3 + str r0, [sp] + lsrs r5, 1 + movs r3, 0 + cmp r3, r7 + bcs _08093CB8 + ldr r2, _08093D48 + mov r12, r2 + ldr r0, _08093D4C + adds r4, r0, 0 +_08093CA0: + lsls r0, r3, 16 + asrs r0, 16 + lsls r1, r0, 1 + add r1, r12 + subs r2, r4, r0 + strh r2, [r1] + adds r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, r7 + bcc _08093CA0 +_08093CB8: + lsls r2, r3, 16 + mov r1, r9 + lsls r0, r1, 16 + asrs r1, r0, 16 + mov r4, r10 + lsrs r7, r4, 16 + cmp r2, r0 + bge _08093CF2 + ldr r0, _08093D48 + mov r9, r0 + ldr r3, _08093D4C + mov r12, r3 + adds r4, r1, 0 +_08093CD2: + lsrs r1, r6, 16 + adds r6, r5 + ldr r0, [sp] + adds r5, r0 + asrs r2, 16 + lsls r0, r2, 1 + add r0, r9 + add r1, r12 + strh r1, [r0] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _08093CD2 +_08093CF2: + adds r1, r7, 0 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x9F + bgt _08093D18 + ldr r4, _08093D48 + ldr r0, _08093D4C + adds r2, r1, r0 +_08093D02: + lsls r1, r3, 16 + asrs r1, 16 + lsls r0, r1, 1 + adds r0, r4 + strh r2, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + cmp r1, 0x9F + ble _08093D02 +_08093D18: + movs r0, 0x1 + ldr r1, _08093D40 + strb r0, [r1, 0x4] + mov r2, r8 + movs r3, 0xA + ldrsh r0, [r2, r3] + cmp r0, 0 + bgt _08093D2E + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_08093D2E: + movs r0, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08093D40: .4byte 0x02000000 +_08093D44: .4byte 0xffff0000 +_08093D48: .4byte gUnknown_03004DE0 +_08093D4C: .4byte 0x0000fffc + thumb_func_end sub_8093C38 + + thumb_func_start sub_8093D50 +sub_8093D50: @ 8093D50 + push {lr} + ldr r1, _08093D74 + movs r0, 0 + strb r0, [r1, 0x4] + bl SetHBlankCallback + bl sub_8093E04 + ldr r0, _08093D78 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08093D74: .4byte 0x02000000 +_08093D78: .4byte sub_8093A68 + thumb_func_end sub_8093D50 + + thumb_func_start sub_8093D7C +sub_8093D7C: @ 8093D7C + ldr r1, _08093DA0 + ldr r0, _08093DA4 + ldrh r2, [r0] + movs r0, 0xFF + ands r0, r2 + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _08093DA8 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_08093DA0: .4byte gUnknown_03004DE0 +_08093DA4: .4byte REG_VCOUNT +_08093DA8: .4byte REG_BG0VOFS + thumb_func_end sub_8093D7C + + thumb_func_start sub_8093DAC +sub_8093DAC: @ 8093DAC + push {lr} + ldr r0, _08093DBC + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _08093DC0 + bl sub_8093DEC + b _08093DC4 + .align 2, 0 +_08093DBC: .4byte 0x02000000 +_08093DC0: + bl sub_8093DC8 +_08093DC4: + pop {r0} + bx r0 + thumb_func_end sub_8093DAC + + thumb_func_start sub_8093DC8 +sub_8093DC8: @ 8093DC8 + push {lr} + bl MenuZeroFillScreen + bl sub_80940E4 + bl sub_8093F14 + bl sub_8093F80 + bl sub_8093FD0 + bl sub_8094038 + bl sub_8094140 + pop {r0} + bx r0 + thumb_func_end sub_8093DC8 + + thumb_func_start sub_8093DEC +sub_8093DEC: @ 8093DEC + push {lr} + bl MenuZeroFillScreen + bl sub_80940E4 + bl sub_8093F48 + bl sub_8094188 + pop {r0} + bx r0 + thumb_func_end sub_8093DEC + + thumb_func_start sub_8093E04 +sub_8093E04: @ 8093E04 + ldr r0, _08093E20 + ldr r2, _08093E24 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + movs r2, 0 + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_08093E20: .4byte REG_BG0VOFS +_08093E24: .4byte 0x0000fffc + thumb_func_end sub_8093E04 + + thumb_func_start sub_8093E28 +sub_8093E28: @ 8093E28 + push {r4-r7,lr} + bl sub_8093EA0 + ldr r0, _08093E84 + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r3, _08093E88 + movs r4, 0xC0 + lsls r4, 19 + movs r5, 0xA4 + lsls r5, 5 + ldr r1, _08093E8C + ldr r6, _08093E90 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_08093E4E: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _08093E4E + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _08093E94 + ldr r2, _08093E98 + ldr r0, _08093E8C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08093E9C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08093E84: .4byte gUnknown_083B5F6C +_08093E88: .4byte gMenuTrainerCard_Gfx +_08093E8C: .4byte 0x040000d4 +_08093E90: .4byte 0x80000800 +_08093E94: .4byte gBadgesTiles +_08093E98: .4byte 0x06001480 +_08093E9C: .4byte 0x80000200 + thumb_func_end sub_8093E28 + + thumb_func_start sub_8093EA0 +sub_8093EA0: @ 8093EA0 + push {r4,lr} + ldr r1, _08093EE4 + ldr r4, _08093EE8 + ldrb r0, [r4, 0x2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08093EEC + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08093EF0 + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + adds r4, 0x64 + ldrb r0, [r4] + cmp r0, 0 + beq _08093EDC + ldr r0, _08093EF4 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette +_08093EDC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093EE4: .4byte gUnknown_083B5EF8 +_08093EE8: .4byte 0x02000000 +_08093EEC: .4byte gBadgesPalette +_08093EF0: .4byte gUnknown_083B5F4C +_08093EF4: .4byte gUnknown_083B5F0C + thumb_func_end sub_8093EA0 + + thumb_func_start sub_8093EF8 +sub_8093EF8: @ 8093EF8 + push {lr} + ldr r0, _08093F0C + adds r0, 0x64 + ldrb r0, [r0] + ldr r2, _08093F10 + movs r1, 0x50 + bl LoadTrainerGfx_TrainerCard + pop {r0} + bx r0 + .align 2, 0 +_08093F0C: .4byte 0x02000000 +_08093F10: .4byte 0x06001880 + thumb_func_end sub_8093EF8 + + thumb_func_start sub_8093F14 +sub_8093F14: @ 8093F14 + push {lr} + sub sp, 0x8 + ldr r0, _08093F3C + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _08093F40 + ldrb r0, [r0, 0x1] + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, _08093F44 + movs r2, 0xA0 + lsls r2, 1 + bl CpuFastSet + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_08093F3C: .4byte gUnknown_083B5EEC +_08093F40: .4byte 0x02000000 +_08093F44: .4byte 0x06004800 + thumb_func_end sub_8093F14 + + thumb_func_start sub_8093F48 +sub_8093F48: @ 8093F48 + push {lr} + ldr r0, _08093F5C + ldr r1, _08093F60 + movs r2, 0xA0 + lsls r2, 1 + bl CpuFastSet + pop {r0} + bx r0 + .align 2, 0 +_08093F5C: .4byte gUnknown_08E8CFC0 +_08093F60: .4byte 0x06004800 + thumb_func_end sub_8093F48 + + thumb_func_start sub_8093F64 +sub_8093F64: @ 8093F64 + push {lr} + ldr r0, _08093F78 + ldr r1, _08093F7C + movs r2, 0xA0 + lsls r2, 1 + bl CpuFastSet + pop {r0} + bx r0 + .align 2, 0 +_08093F78: .4byte gUnknown_08E8D9C0 +_08093F7C: .4byte 0x06005000 + thumb_func_end sub_8093F64 + + thumb_func_start sub_8093F80 +sub_8093F80: @ 8093F80 + push {r4-r7,lr} + movs r5, 0xC4 + ldr r7, _08093FCC + movs r1, 0x5 + movs r0, 0xA0 + lsls r0, 7 + adds r6, r0, 0 +_08093F8E: + movs r0, 0x13 + lsls r3, r1, 16 + asrs r4, r3, 11 +_08093F94: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r4, r2 + lsls r1, 1 + adds r1, r7 + adds r0, r5, 0 + orrs r0, r6 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x1A + ble _08093F94 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _08093F8E + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08093FCC: .4byte 0x06004000 + thumb_func_end sub_8093F80 + + thumb_func_start sub_8093FD0 +sub_8093FD0: @ 8093FD0 + push {r4-r6,lr} + ldr r4, _0809402C + movs r2, 0xF + ldr r0, _08094030 + ldrb r0, [r0, 0x2] + adds r0, 0xF + cmp r2, r0 + bge _08094002 + movs r6, 0xC0 + lsls r6, 1 + ldr r1, _08094034 + adds r5, r1, 0 + adds r3, r0, 0 +_08093FEA: + lsls r1, r2, 16 + asrs r1, 16 + lsls r0, r1, 1 + adds r0, r4 + adds r0, r6 + strh r5, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r2, r1, 16 + asrs r1, 16 + cmp r1, r3 + blt _08093FEA +_08094002: + lsls r1, r2, 16 + asrs r0, r1, 16 + cmp r0, 0x12 + bgt _08094024 + movs r3, 0xC0 + lsls r3, 1 + movs r2, 0 +_08094010: + asrs r0, r1, 16 + lsls r1, r0, 1 + adds r1, r4 + adds r1, r3 + strh r2, [r1] + adds r0, 0x1 + lsls r1, r0, 16 + asrs r0, r1, 16 + cmp r0, 0x12 + ble _08094010 +_08094024: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809402C: .4byte 0x06004000 +_08094030: .4byte 0x02000000 +_08094034: .4byte 0x0000408f + thumb_func_end sub_8093FD0 + + thumb_func_start sub_8094038 +sub_8094038: @ 8094038 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r1, _080940D0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080940C2 + ldr r0, _080940D4 + mov r9, r0 + movs r0, 0 + movs r2, 0x4 + adds r1, 0xE + mov r8, r1 + ldr r7, _080940D8 + movs r1, 0xC0 + lsls r1, 6 + adds r6, r1, 0 + adds r1, r7, 0x6 + mov r12, r1 +_08094060: + lsls r0, 16 + asrs r4, r0, 16 + mov r1, r8 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r5, r2, 16 + cmp r0, 0 + beq _080940AE + asrs r1, r5, 15 + add r1, r9 + movs r2, 0xF0 + lsls r2, 2 + adds r3, r1, r2 + lsls r2, r4, 3 + adds r0, r2, r7 + ldrh r0, [r0] + orrs r0, r6 + strh r0, [r3] + ldr r0, _080940DC + adds r3, r1, r0 + adds r0, r7, 0x2 + adds r0, r2, r0 + ldrh r0, [r0] + orrs r0, r6 + strh r0, [r3] + movs r0, 0x80 + lsls r0, 3 + adds r3, r1, r0 + adds r0, r7, 0x4 + adds r0, r2, r0 + ldrh r0, [r0] + orrs r0, r6 + strh r0, [r3] + ldr r0, _080940E0 + adds r1, r0 + add r2, r12 + ldrh r0, [r2] + orrs r0, r6 + strh r0, [r1] +_080940AE: + adds r1, r4, 0x1 + lsls r1, 16 + movs r2, 0xC0 + lsls r2, 10 + adds r0, r5, r2 + lsrs r2, r0, 16 + lsrs r0, r1, 16 + asrs r1, 16 + cmp r1, 0x7 + ble _08094060 +_080940C2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080940D0: .4byte 0x02000000 +_080940D4: .4byte 0x06004000 +_080940D8: .4byte gUnknown_083B5F8C +_080940DC: .4byte 0x000003c2 +_080940E0: .4byte 0x00000402 + thumb_func_end sub_8094038 + + thumb_func_start sub_80940E4 +sub_80940E4: @ 80940E4 + push {r4,lr} + movs r2, 0 + ldr r1, _08094108 + movs r4, 0 + ldr r3, _0809410C +_080940EE: + strh r4, [r1] + lsls r0, r2, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + adds r1, 0x2 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, r3 + ble _080940EE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08094108: .4byte 0x06004000 +_0809410C: .4byte 0x000003ff + thumb_func_end sub_80940E4 + + thumb_func_start sub_8094110 +sub_8094110: @ 8094110 + push {r4-r6,lr} + ldr r6, _0809413C + movs r2, 0x3 + movs r5, 0xA0 + lsls r5, 2 + movs r3, 0x1 + movs r4, 0xB0 + lsls r4, 2 +_08094120: + lsls r0, r2, 1 + adds r0, r6 + adds r1, r0, r5 + strh r3, [r1] + adds r0, r4 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x10 + bls _08094120 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809413C: .4byte 0x06004800 + thumb_func_end sub_8094110 + + thumb_func_start sub_8094140 +sub_8094140: @ 8094140 + push {r4,r5,lr} + ldr r0, _0809417C + bl BasicInitMenuWindow + ldr r4, _08094180 + ldr r5, _08094184 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringCopy + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl ConvertInternationalString + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x5 + bl MenuPrint + bl sub_80941D8 + bl sub_8094200 + bl sub_8094218 + bl sub_809429C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809417C: .4byte gWindowConfig_81E6DC4 +_08094180: .4byte gStringVar1 +_08094184: .4byte 0x02000094 + thumb_func_end sub_8094140 + + thumb_func_start sub_8094188 +sub_8094188: @ 8094188 + push {lr} + ldr r0, _080941D0 + bl BasicInitMenuWindow + bl sub_80942F8 + bl sub_8094334 + bl sub_80943C4 + bl sub_8094428 + bl sub_8094498 + bl sub_80944E8 + bl sub_8094538 + ldr r0, _080941D4 + bl BasicInitMenuWindow + bl sub_8094354 + bl sub_80943E4 + bl sub_8094448 + bl sub_80944B8 + bl sub_8094508 + bl sub_8094558 + pop {r0} + bx r0 + .align 2, 0 +_080941D0: .4byte gWindowConfig_81E6DC4 +_080941D4: .4byte gWindowConfig_81E6DE0 + thumb_func_end sub_8094188 + + thumb_func_start sub_80941D8 +sub_80941D8: @ 80941D8 + push {lr} + sub sp, 0x8 + ldr r0, _080941FC + adds r0, 0x72 + ldrh r1, [r0] + mov r0, sp + movs r2, 0x2 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x14 + movs r2, 0x2 + bl MenuPrint + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080941FC: .4byte 0x02000000 + thumb_func_end sub_80941D8 + + thumb_func_start sub_8094200 +sub_8094200: @ 8094200 + push {lr} + ldr r0, _08094214 + adds r0, 0x88 + ldr r0, [r0] + movs r1, 0x10 + movs r2, 0x8 + bl sub_80B7AEC + pop {r0} + bx r0 + .align 2, 0 +_08094214: .4byte 0x02000000 + thumb_func_end sub_8094200 + + thumb_func_start sub_8094218 +sub_8094218: @ 8094218 + push {lr} + sub sp, 0x10 + ldr r1, _0809422C + ldrb r0, [r1, 0x7] + cmp r0, 0 + bne _08094230 + bl sub_8094110 + b _0809424A + .align 2, 0 +_0809422C: .4byte 0x02000000 +_08094230: + adds r0, r1, 0 + adds r0, 0x70 + ldrh r1, [r0] + mov r0, sp + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x10 + movs r2, 0xA + bl sub_8072B4C +_0809424A: + add sp, 0x10 + pop {r0} + bx r0 + thumb_func_end sub_8094218 + + thumb_func_start sub_8094250 +sub_8094250: @ 8094250 + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r0, 0 + lsls r1, 16 + lsrs r3, r1, 16 + ldr r0, _08094294 + ldrh r4, [r0, 0xE] + ldrb r2, [r0, 0x10] + ldr r1, _08094298 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _08094272 + adds r0, r1, 0 + adds r0, 0x74 + ldrh r4, [r0] + adds r0, 0x2 + ldrh r2, [r0] +_08094272: + lsls r3, 16 + asrs r3, 16 + mov r0, sp + adds r1, r4, 0 + bl FormatPlayTime + adds r0, r5, 0 + mov r1, sp + movs r2, 0x30 + movs r3, 0x1 + bl sub_8072C74 + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094294: .4byte gSaveBlock2 +_08094298: .4byte 0x02000000 + thumb_func_end sub_8094250 + + thumb_func_start sub_809429C +sub_809429C: @ 809429C + push {r4-r6,lr} + ldr r6, _080942F0 + ldrb r0, [r6, 0x1] + cmp r0, 0 + beq _080942EA + ldr r0, _080942F4 + adds r1, r6, 0 + adds r1, 0x20 + bl StringCopy + movs r5, 0 + strb r5, [r0] + adds r0, 0x1 + adds r1, r6, 0 + adds r1, 0x30 + bl StringCopy + ldr r4, _080942F4 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0xE + bl MenuPrint + adds r1, r6, 0 + adds r1, 0x40 + adds r0, r4, 0 + bl StringCopy + strb r5, [r0] + adds r0, 0x1 + adds r1, r6, 0 + adds r1, 0x50 + bl StringCopy + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0x10 + bl MenuPrint +_080942EA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080942F0: .4byte 0x02000000 +_080942F4: .4byte gStringVar1 + thumb_func_end sub_809429C + + thumb_func_start sub_80942F8 +sub_80942F8: @ 80942F8 + push {r4,r5,lr} + ldr r4, _08094328 + ldr r5, _0809432C + adds r0, r4, 0 + adds r1, r5, 0 + bl StringCopy + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl ConvertInternationalString + ldr r1, _08094330 + adds r0, r4, 0 + bl StringAppend + adds r0, r4, 0 + movs r1, 0x1C + movs r2, 0x2 + bl sub_8072B4C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094328: .4byte gStringVar1 +_0809432C: .4byte 0x02000094 +_08094330: .4byte gOtherText_TrainersTrainerCard + thumb_func_end sub_80942F8 + + thumb_func_start sub_8094334 +sub_8094334: @ 8094334 + push {lr} + ldr r0, _0809434C + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _08094348 + ldr r0, _08094350 + movs r1, 0x3 + movs r2, 0x5 + bl MenuPrint +_08094348: + pop {r0} + bx r0 + .align 2, 0 +_0809434C: .4byte 0x02000000 +_08094350: .4byte gOtherText_FirstHOF + thumb_func_end sub_8094334 + + thumb_func_start sub_8094354 +sub_8094354: @ 8094354 + push {r4,r5,lr} + ldr r5, _080943B8 + ldrb r0, [r5, 0x8] + cmp r0, 0 + beq _080943B0 + ldr r2, _080943BC + adds r0, r5, 0 + adds r0, 0x6A + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + ldr r4, _080943C0 + adds r1, r4, 0 + bl StringCopy + adds r2, r0, 0 + adds r0, r5, 0 + adds r0, 0x6C + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + adds r1, r4, 0 + bl StringCopy + adds r2, r0, 0 + adds r0, r5, 0 + adds r0, 0x6E + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080943BC + movs r1, 0x1C + movs r2, 0x5 + bl sub_8072B4C +_080943B0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080943B8: .4byte 0x02000000 +_080943BC: .4byte gStringVar1 +_080943C0: .4byte gUnknown_083B5EF4 + thumb_func_end sub_8094354 + + thumb_func_start sub_80943C4 +sub_80943C4: @ 80943C4 + push {lr} + ldr r0, _080943DC + ldrb r0, [r0, 0x9] + cmp r0, 0 + beq _080943D8 + ldr r0, _080943E0 + movs r1, 0x3 + movs r2, 0x7 + bl MenuPrint +_080943D8: + pop {r0} + bx r0 + .align 2, 0 +_080943DC: .4byte 0x02000000 +_080943E0: .4byte gOtherText_LinkCableBattles + thumb_func_end sub_80943C4 + + thumb_func_start sub_80943E4 +sub_80943E4: @ 80943E4 + push {r4,lr} + sub sp, 0x10 + ldr r4, _08094424 + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0809441C + adds r0, r4, 0 + adds r0, 0x78 + ldrh r1, [r0] + mov r0, sp + bl ConvertIntToDecimalString + mov r0, sp + movs r1, 0x16 + movs r2, 0x7 + bl sub_8072B4C + adds r0, r4, 0 + adds r0, 0x7A + ldrh r1, [r0] + mov r0, sp + bl ConvertIntToDecimalString + mov r0, sp + movs r1, 0x1C + movs r2, 0x7 + bl sub_8072B4C +_0809441C: + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08094424: .4byte 0x02000000 + thumb_func_end sub_80943E4 + + thumb_func_start sub_8094428 +sub_8094428: @ 8094428 + push {lr} + ldr r0, _08094440 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _0809443C + ldr r0, _08094444 + movs r1, 0x3 + movs r2, 0xF + bl MenuPrint +_0809443C: + pop {r0} + bx r0 + .align 2, 0 +_08094440: .4byte 0x02000000 +_08094444: .4byte gOtherText_BattleTowerWinRecord + thumb_func_end sub_8094428 + + thumb_func_start sub_8094448 +sub_8094448: @ 8094448 + push {r4,lr} + sub sp, 0x10 + ldr r4, _08094494 + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _0809448C + adds r0, r4, 0 + adds r0, 0x7C + ldrh r1, [r0] + mov r0, sp + movs r2, 0x18 + movs r3, 0x1 + bl sub_8072C44 + mov r0, sp + movs r1, 0x70 + movs r2, 0x78 + movs r3, 0 + bl sub_80729D8 + adds r0, r4, 0 + adds r0, 0x7E + ldrh r1, [r0] + mov r0, sp + movs r2, 0x18 + movs r3, 0x1 + bl sub_8072C44 + mov r0, sp + movs r1, 0x95 + movs r2, 0x78 + movs r3, 0 + bl sub_80729D8 +_0809448C: + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08094494: .4byte 0x02000000 + thumb_func_end sub_8094448 + + thumb_func_start sub_8094498 +sub_8094498: @ 8094498 + push {lr} + ldr r0, _080944B0 + ldrb r0, [r0, 0xB] + cmp r0, 0 + beq _080944AC + ldr r0, _080944B4 + movs r1, 0x3 + movs r2, 0xD + bl MenuPrint +_080944AC: + pop {r0} + bx r0 + .align 2, 0 +_080944B0: .4byte 0x02000000 +_080944B4: .4byte gOtherText_ContestRecord + thumb_func_end sub_8094498 + + thumb_func_start sub_80944B8 +sub_80944B8: @ 80944B8 + push {lr} + sub sp, 0x8 + ldr r1, _080944E4 + ldrb r0, [r1, 0xB] + cmp r0, 0 + beq _080944DE + adds r0, r1, 0 + adds r0, 0x80 + ldrh r1, [r0] + mov r0, sp + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x1C + movs r2, 0xD + bl sub_8072B4C +_080944DE: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080944E4: .4byte 0x02000000 + thumb_func_end sub_80944B8 + + thumb_func_start sub_80944E8 +sub_80944E8: @ 80944E8 + push {lr} + ldr r0, _08094500 + ldrb r0, [r0, 0xC] + cmp r0, 0 + beq _080944FC + ldr r0, _08094504 + movs r1, 0x3 + movs r2, 0xB + bl MenuPrint +_080944FC: + pop {r0} + bx r0 + .align 2, 0 +_08094500: .4byte 0x02000000 +_08094504: .4byte gOtherText_MixingRecord + thumb_func_end sub_80944E8 + + thumb_func_start sub_8094508 +sub_8094508: @ 8094508 + push {lr} + sub sp, 0x8 + ldr r1, _08094534 + ldrb r0, [r1, 0xC] + cmp r0, 0 + beq _0809452E + adds r0, r1, 0 + adds r0, 0x82 + ldrh r1, [r0] + mov r0, sp + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x1C + movs r2, 0xB + bl sub_8072B4C +_0809452E: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_08094534: .4byte 0x02000000 + thumb_func_end sub_8094508 + + thumb_func_start sub_8094538 +sub_8094538: @ 8094538 + push {lr} + ldr r0, _08094550 + ldrb r0, [r0, 0xD] + cmp r0, 0 + beq _0809454C + ldr r0, _08094554 + movs r1, 0x3 + movs r2, 0x9 + bl MenuPrint +_0809454C: + pop {r0} + bx r0 + .align 2, 0 +_08094550: .4byte 0x02000000 +_08094554: .4byte gOtherText_TradeRecord + thumb_func_end sub_8094538 + + thumb_func_start sub_8094558 +sub_8094558: @ 8094558 + push {lr} + sub sp, 0x8 + ldr r1, _08094584 + ldrb r0, [r1, 0xD] + cmp r0, 0 + beq _0809457E + adds r0, r1, 0 + adds r0, 0x84 + ldrh r1, [r0] + mov r0, sp + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x1C + movs r2, 0x9 + bl sub_8072B4C +_0809457E: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_08094584: .4byte 0x02000000 + thumb_func_end sub_8094558 + + thumb_func_start unref_sub_8094588 +unref_sub_8094588: @ 8094588 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r2, r1, 16 + ldr r4, _080945B4 + ldr r0, _080945B8 + ldrb r0, [r0, 0x8] + cmp r0, 0x1 + bne _0809459E + ldr r4, _080945BC +_0809459E: + lsls r1, r3, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080945B4: .4byte gOtherText_Boy +_080945B8: .4byte gSaveBlock2 +_080945BC: .4byte gOtherText_Girl + thumb_func_end unref_sub_8094588 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index 12566bb29..35295ee59 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -86,6 +86,9 @@ SECTIONS { src/option_menu.o(.text); src/pokedex.o(.text); asm/rom5_part2.o(.text); + asm/trainer_card.o(.text); + asm/save_menu_util.o(.text); + asm/rom_8094928.o(.text); asm/berry.o(.text); asm/rom_80B5054.o(.text); asm/battle_ai.o(.text); |