diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | asm/battle_anim_80A7E7C.s | 2589 | ||||
-rw-r--r-- | asm/contest.s | 15732 | ||||
-rw-r--r-- | asm/item.s | 1308 | ||||
-rw-r--r-- | asm/item_menu.s | 9869 | ||||
-rw-r--r-- | asm/matuda_debug_menu.s | 2877 | ||||
-rw-r--r-- | asm/rom_8094928.s | 35746 | ||||
-rw-r--r-- | asm/shop.s | 3425 | ||||
-rw-r--r-- | ld_script.txt | 6 |
9 files changed, 35812 insertions, 35746 deletions
@@ -80,6 +80,12 @@ asm/pokedex.o \ asm/trainer_card.o \ asm/save_menu_util.o \ asm/rom_8094928.o \ +asm/item_menu.o \ +asm/battle_anim_80A7E7C.o \ +asm/item.o \ +asm/matuda_debug_menu.o \ +asm/contest.o \ +asm/shop.o \ asm/berry.o \ asm/script_menu.o \ asm/naming_screen.o \ diff --git a/asm/battle_anim_80A7E7C.s b/asm/battle_anim_80A7E7C.s new file mode 100644 index 000000000..b305c7a42 --- /dev/null +++ b/asm/battle_anim_80A7E7C.s @@ -0,0 +1,2589 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80A7E7C +sub_80A7E7C: @ 80A7E7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A7E9C @ =gUnknown_03004B00 + 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 @ =gSprites + 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 @ =gTasks + 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 @ =sub_80A7EF0 + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + 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 @ =gUnknown_02024BE0 + adds r0, r4, r0 + b _080A8020 + .align 2, 0 +_080A8014: .4byte gUnknown_02024BE0 +_080A8018: + ldr r1, _080A8030 @ =gUnknown_02024BE0 + ldr r0, _080A8034 @ =gUnknown_0202F7C8 + 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 @ =gSprites + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldr r2, _080A8080 @ =gUnknown_03004B00 + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x24] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x26] + ldr r1, _080A8084 @ =gTasks + 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 @ =sub_80A808C + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + 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 @ =gSprites + 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 @ =gTasks + 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 @ =sub_80A81D8 + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A8368 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r5, 0x2] + strh r2, [r1, 0x24] + ldr r2, _080A836C @ =gTasks + 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 @ =sub_80A8374 + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + 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 @ =gTasks + mov r12, r2 + lsls r4, r5, 2 + ldr r2, _080A8484 @ =sub_80A8488 + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A851C + ldr r1, _080A852C @ =gUnknown_03004B00 + 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 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8560 + ldr r1, _080A855C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + negs r0, r0 + b _080A8564 + .align 2, 0 +_080A8558: .4byte gUnknown_0202F7C8 +_080A855C: .4byte gUnknown_03004B00 +_080A8560: + ldr r1, _080A8590 @ =gUnknown_03004B00 + 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 @ =gUnknown_02024BE0 + ldr r0, _080A8598 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + strh r2, [r4, 0x36] + ldr r1, _080A859C @ =sub_80A85A4 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080A85A0 @ =sub_8078458 + 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 @ =sub_8078458 + str r1, [r0, 0x1C] + ldr r1, _080A85C4 @ =move_anim_8072740 + 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 @ =gUnknown_03004B00 + 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 @ =sub_80A8614 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080A8610 @ =sub_8078458 + 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 @ =sub_8078458 + str r1, [r0, 0x1C] + ldr r1, _080A8634 @ =move_anim_8072740 + 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 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A865C + ldr r1, _080A8654 @ =gUnknown_02024BE0 + ldr r0, _080A8658 @ =gUnknown_0202F7C8 + b _080A8660 + .align 2, 0 +_080A8650: .4byte gUnknown_03004B00 +_080A8654: .4byte gUnknown_02024BE0 +_080A8658: .4byte gUnknown_0202F7C8 +_080A865C: + ldr r1, _080A86C0 @ =gUnknown_02024BE0 + ldr r0, _080A86C4 @ =gUnknown_0202F7C9 +_080A8660: + ldrb r0, [r0] + adds r0, r1 + ldrb r7, [r0] + ldr r5, _080A86C8 @ =gUnknown_03004B00 + ldrh r0, [r5, 0x4] + movs r3, 0 + strh r0, [r6, 0x2E] + ldr r0, _080A86CC @ =gSprites + 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 @ =gUnknown_03004B00 + ldrh r1, [r0, 0x2] + lsls r0, r7, 8 + orrs r0, r1 + strh r0, [r6, 0x3C] + ldr r0, _080A86F0 @ =sub_80A86F4 + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A8780 + ldr r0, _080A877C @ =gUnknown_0202F7C8 + b _080A8782 + .align 2, 0 +_080A8778: .4byte gUnknown_03004B00 +_080A877C: .4byte gUnknown_0202F7C8 +_080A8780: + ldr r0, _080A8800 @ =gUnknown_0202F7C9 +_080A8782: + ldrb r2, [r0] + ldr r0, _080A8804 @ =gUnknown_02024BE0 + 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 @ =gUnknown_03004B00 + 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 @ =gUnknown_03004B00 + ldrh r0, [r2, 0x8] + movs r4, 0 + strh r0, [r5, 0x2E] + ldr r0, _080A880C @ =gSprites + 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 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080A8814 @ =sub_80784A8 + 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 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A8840 + ldr r0, _080A883C @ =gUnknown_0202F7C8 + b _080A8842 + .align 2, 0 +_080A8838: .4byte gUnknown_03004B00 +_080A883C: .4byte gUnknown_0202F7C8 +_080A8840: + ldr r0, _080A88C0 @ =gUnknown_0202F7C9 +_080A8842: + ldrb r1, [r0] + ldr r0, _080A88C4 @ =gUnknown_02024BE0 + 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 @ =gUnknown_03004B00 + 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 @ =gUnknown_03004B00 + ldrh r0, [r5, 0x8] + strh r0, [r6, 0x2E] + ldr r0, _080A88CC @ =gSprites + 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 @ =move_anim_8072740 + 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 @ =sub_80A88F0 + adds r0, r6, 0 + bl oamt_set_x3A_32 +_080A88DC: + ldr r0, _080A88EC @ =sub_80784A8 + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + 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 @ =gUnknown_0202F7C8 + 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 @ =gTasks + 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 @ =sub_80A89B4 + 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 @ =gTasks + 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 @ =gSprites + 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 @ =sub_80A8A18 + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gUnknown_03004B00 + 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 @ =gUnknown_0202F7C8 + b _080A8ABA + .align 2, 0 +_080A8AB4: .4byte gUnknown_0202F7C8 +_080A8AB8: + ldr r5, _080A8AD8 @ =gUnknown_0202F7C9 +_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 @ =gUnknown_02024BE0 + 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 @ =gTasks + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r0, 3 + adds r5, r0, r1 + strh r2, [r5, 0x8] + ldr r0, _080A8B0C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8B14 + ldr r0, _080A8B10 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x2] + b _080A8B1A + .align 2, 0 +_080A8B08: .4byte gTasks +_080A8B0C: .4byte gUnknown_0202F7C9 +_080A8B10: .4byte gUnknown_03004B00 +_080A8B14: + ldr r0, _080A8B30 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x2] + negs r0, r0 +_080A8B1A: + strh r0, [r5, 0xA] + ldr r0, _080A8B34 @ =gTasks + adds r1, r4, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A8B38 @ =sub_80A8B3C + 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 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r2, [r1, 0x8] + ldr r3, _080A8B84 @ =gSprites + 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 @ =gUnknown_0202F7C8 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A8BA4 + ldr r1, _080A8BDC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A8BA4: + ldr r4, _080A8BDC @ =gUnknown_03004B00 + ldrb r0, [r4, 0x8] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A8BE0 @ =gTasks + 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 @ =gUnknown_0202F7C9 + ldrb r0, [r0] +_080A8BE8: + strh r0, [r2, 0x12] + ldr r1, _080A8C04 @ =gTasks + adds r0, r3, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x20] + ldr r1, _080A8C08 @ =sub_80A8C0C + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gSprites + 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 @ =gSprites + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gUnknown_03004B00 + 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 @ =gTasks + 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 @ =sub_80A8D8C + 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 @ =gTasks + 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 @ =gUnknown_03004B00 + 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 @ =gTasks + 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 @ =gTasks + lsls r4, r7, 2 + adds r0, r4, r7 + lsls r0, 3 + adds r5, r0, r1 + ldr r6, _080A8E84 @ =gUnknown_03004B00 + 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 @ =gUnknown_0202F7C8 + b _080A8E9A + .align 2, 0 +_080A8E94: .4byte gUnknown_0202F7C8 +_080A8E98: + ldr r0, _080A8EF0 @ =gUnknown_0202F7C9 +_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 @ =gTasks + 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 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A8EF8 @ =sub_80A8FD8 + 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 @ =gUnknown_03004B00 + 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 @ =gTasks + 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 @ =gUnknown_0202F7C8 + b _080A8F46 + .align 2, 0 +_080A8F38: .4byte gUnknown_03004B00 +_080A8F3C: .4byte gTasks +_080A8F40: .4byte gUnknown_0202F7C8 +_080A8F44: + ldr r0, _080A8F74 @ =gUnknown_0202F7C9 +_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 @ =gUnknown_03004B00 + movs r2, 0x6 + ldrsh r1, [r0, r2] + adds r6, r0, 0 + cmp r1, 0x1 + beq _080A8F80 + ldr r2, _080A8F7C @ =gTasks + 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 @ =gTasks + 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 @ =sub_80A8FD8 + 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 @ =gTasks + 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 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r1, [r0, r2] + mov r8, r0 + cmp r1, 0 + bne _080A9090 + ldr r4, _080A9088 @ =gTasks + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r6, r0, r4 + ldr r0, _080A908C @ =gUnknown_0202F7BC + 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 @ =gTasks + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r6, r0, r4 + ldr r0, _080A9130 @ =gUnknown_0202F7B8 + 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 @ =gSprites + 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 @ =sub_80A913C + 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 @ =gTasks + 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 @ =gSprites + 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 @ =gSprites + 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 @ =gSprites + 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 @ =gSprites + 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 @ =gSprites + 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 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest.s b/asm/contest.s new file mode 100644 index 000000000..447f5cf1d --- /dev/null +++ b/asm/contest.s @@ -0,0 +1,15732 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + 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 @ =gUnknown_0203869A + 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 @ =0x04000208 + ldrh r3, [r4] + movs r2, 0 + strh r2, [r4] + ldr r5, _080AB264 @ =0x04000200 + ldrh r0, [r5] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r5] + strh r3, [r4] + ldr r1, _080AB268 @ =REG_DISPSTAT + 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 @ =0x00009e09 + 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 @ =0x00003a03 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080AB274 @ =REG_BLDCNT + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + subs r0, 0xC + ldr r3, _080AB278 @ =0x00003f3f + 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 @ =gUnknown_030042A4 + strh r2, [r0] + ldr r0, _080AB280 @ =gUnknown_030042A0 + strh r2, [r0] + ldr r0, _080AB284 @ =gUnknown_030042C0 + strh r2, [r0] + ldr r0, _080AB288 @ =gUnknown_030041B4 + strh r2, [r0] + ldr r0, _080AB28C @ =gUnknown_03004288 + strh r2, [r0] + ldr r0, _080AB290 @ =gUnknown_03004280 + strh r2, [r0] + ldr r0, _080AB294 @ =gUnknown_030041B0 + strh r2, [r0] + ldr r0, _080AB298 @ =gUnknown_030041B8 + strh r2, [r0] + ldr r0, _080AB29C @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _080AB2A0 @ =gUnknown_03004240 + strh r2, [r0] + ldr r0, _080AB2A4 @ =gUnknown_03004200 + strh r2, [r0] + ldr r0, _080AB2A8 @ =gUnknown_03004244 + 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 @ =gContestMiscGfx + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _080AB304 @ =gContestAudienceGfx + ldr r1, _080AB308 @ =0x06002000 + bl LZDecompressVram + ldr r0, _080AB30C @ =gUnknown_08D1725C + ldr r1, _080AB310 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _080AB314 @ =gUnknown_08D17144 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + bl sub_80AB350 + movs r4, 0 + movs r5, 0xA0 +_080AB2DC: + ldr r0, _080AB318 @ =0x02018004 + adds r0, r5, r0 + ldr r1, _080AB31C @ =gUnknown_02038696 + 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 @ =gWindowConfig_81E6FD8 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080AB344 @ =gUnknown_03004210 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r0, _080AB348 @ =gMenuWindow + ldr r1, _080AB34C @ =gWindowConfig_81E6FF4 + 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 @ =gWindowConfig_81E6FD8 + 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 @ =gPlttBufferUnfaded + 0x1E2 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xD + bls _080AB364 + ldr r0, _080AB394 @ =0x00007e3f + 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 @ =0x02019204 + 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 @ =0x02019260 + 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 @ =0x020192d0 + 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 @ =gUnknown_0203869A + 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 @ =gUnknown_02038696 +_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 @ =gMain + ldr r1, _080AB49C @ =0x0000043c + 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 @ =gPaletteFade + 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 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080AB540 @ =0x85000400 + 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 @ =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + ldr r0, _080AB548 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bl sub_8040710 + bl sub_80AB398 + ldr r1, _080AB54C @ =gMain + ldr r0, _080AB550 @ =0x0000043c + 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 @ =0x0201925d + 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 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AB5BC @ =gUnknown_030041B4 + strh r1, [r0] + movs r0, 0x2 + bl BeginFastPaletteFade + ldr r2, _080AB5C0 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080AB5C4 @ =sub_80ABAC4 + bl SetVBlankCallback + ldr r0, _080AB5C8 @ =sub_80AB5D4 + movs r1, 0xA + bl CreateTask + ldr r1, _080AB5CC @ =0x02019204 + strb r0, [r1, 0x8] + ldr r0, _080AB5D0 @ =sub_80ABAAC + 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 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AB5F4 + ldr r0, _080AB5FC @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AB600 @ =sub_80AB604 + 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 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AB65C + ldr r2, _080AB64C @ =gPaletteFade + 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 @ =sub_80AB678 + movs r1, 0 + bl CreateTask + ldr r1, _080AB654 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AB658 @ =nullsub_89 + 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 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AB674 @ =sub_80AB960 + 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 @ =sub_80C89DC + ldr r2, _080AB690 @ =sub_80AB694 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r3, [r1, 0x8] + ldr r0, _080AB6B0 @ =sub_80AB6B4 + 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 @ =gTasks + 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 @ =0x02019204 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + ldr r1, _080AB700 @ =sub_80AB960 + str r1, [r0] + ldr r1, _080AB704 @ =gRngValue + ldr r0, _080AB708 @ =gUnknown_03005D28 + 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 @ =_080AB730 + 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 @ =gPaletteFade + 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 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r7, _080AB79C @ =0x85000400 + 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 @ =gContestMiscGfx + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _080AB946 + .align 2, 0 +_080AB7AC: .4byte gContestMiscGfx +_080AB7B0: + ldr r0, _080AB7EC @ =gContestAudienceGfx + ldr r4, _080AB7F0 @ =0x06002000 + adds r1, r4, 0 + bl LZDecompressVram + ldr r3, _080AB7F4 @ =0x02015800 + movs r5, 0x80 + lsls r5, 6 + ldr r1, _080AB7F8 @ =0x040000d4 + ldr r6, _080AB7FC @ =0x84000400 + 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 @ =gUnknown_08D1725C + ldr r1, _080AB810 @ =0x0600d000 + bl LZDecompressVram + b _080AB946 + .align 2, 0 +_080AB80C: .4byte gUnknown_08D1725C +_080AB810: .4byte 0x0600d000 +_080AB814: + ldr r0, _080AB830 @ =gUnknown_08D17424 + ldr r4, _080AB834 @ =0x0600e000 + adds r1, r4, 0 + bl LZDecompressVram + ldr r1, _080AB838 @ =0x02018a04 + ldr r0, _080AB83C @ =0x040000d4 + str r4, [r0] + str r1, [r0, 0x4] + ldr r1, _080AB840 @ =0x84000200 + 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 @ =gUnknown_08D17144 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + ldr r5, _080AB8B0 @ =gPlttBufferUnfaded + 0x100 + ldr r6, _080AB8B4 @ =REG_BG0CNT + adds r0, r5, 0 + mov r1, sp + adds r2, r6, 0 + bl CpuSet + ldr r0, _080AB8B8 @ =gUnknown_02038695 + mov r9, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 5 + ldr r1, _080AB8BC @ =0xffffff00 + 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 @ =0x02018004 + ldr r0, _080AB8C4 @ =0x040000d4 + mov r2, r8 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080AB8C8 @ =0x84000080 + 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 @ =0x02019204 + 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 @ =gUnknown_02024A72 + 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 @ =gUnknown_020239F8 + strh r4, [r0] + ldr r4, _080AB930 @ =gUnknown_02024C07 + strb r2, [r4] + ldr r0, _080AB934 @ =gUnknown_02024C08 + strb r3, [r0] + bl sub_80AE858 + ldr r2, _080AB938 @ =gUnknown_02024BE0 + 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 @ =gPaletteFade + 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 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + ldr r0, _080AB99C @ =sub_80AB9A0 + 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 @ =gTasks + 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 @ =_080AB9CC + 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 @ =gUnknown_030041B4 + 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 @ =gTasks + 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 @ =REG_BG0CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080ABA74 @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + bl sub_80B1B14 + ldr r1, _080ABA78 @ =gTasks + 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 @ =0x02019204 + 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 @ =sub_80ABB70 + 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 @ =REG_BG0HOFS + ldr r0, _080ABB40 @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB44 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB48 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB4C @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB50 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB54 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB58 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB5C @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _080ABB60 @ =gUnknown_030042C4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080ABB64 @ =gUnknown_03004240 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _080ABB68 @ =gUnknown_03004200 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080ABB6C @ =gUnknown_03004244 + 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 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ABBB4 @ =gUnknown_03004280 + strh r1, [r0] + bl sub_80B0D7C + ldr r1, _080ABBB8 @ =gPlttBufferUnfaded + ldr r2, _080ABBBC @ =0x02018204 + ldr r0, _080ABBC0 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080ABBC4 @ =0x84000100 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080ABBC8 @ =gUnknown_02038695 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABBD4 + ldr r0, _080ABBCC @ =gUnknown_020238CC + ldr r1, _080ABBD0 @ =gUnknown_083CAF84 + 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 @ =gUnknown_020238CC + ldr r1, _080ABC24 @ =gUnknown_083CAFAE + bl StringCopy +_080ABBDC: + ldr r5, _080ABC20 @ =gUnknown_020238CC + ldr r0, _080ABC28 @ =0x02019204 + ldrb r1, [r0, 0x1] + adds r1, 0x1 + adds r0, r5, 0 + bl sub_80AE020 + bl sub_80AF138 + ldr r4, _080ABC2C @ =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + ldr r0, _080ABC30 @ =gMenuWindow + 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 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABC38 @ =sub_80ABC3C + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ABC5E + ldr r0, _080ABC68 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABC6C @ =sub_80ABC70 + 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 @ =gMain + 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 @ =gUnknown_02038695 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABCC0 + movs r0, 0x1 + bl sub_80AFFE0 + ldr r0, _080ABCB8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABCBC @ =sub_80ABCDC + b _080ABCCC + .align 2, 0 +_080ABCB0: .4byte gMain +_080ABCB4: .4byte gUnknown_02038695 +_080ABCB8: .4byte gTasks +_080ABCBC: .4byte sub_80ABCDC +_080ABCC0: + ldr r0, _080ABCD4 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABCD8 @ =sub_80AC0C8 +_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 @ =gUnknown_030042A0 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080ABD84 @ =gUnknown_03004280 + strh r1, [r0] + ldr r5, _080ABD88 @ =gUnknown_03004210 + ldr r4, _080ABD8C @ =gUnknown_083CA340 + 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 @ =gUnknown_02038695 + mov r8, r0 + ldr r7, _080ABD94 @ =0x02019260 + 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 @ =gUnknown_0203858E + 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 @ =gUnknownText_UnknownFormatting2 + 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 @ =gContestMoves + lsls r1, r4, 3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x3 + beq _080ABDCC + add r0, sp, 0x8 + ldr r1, _080ABE78 @ =gUnknownText_UnknownFormatting3 +_080ABDC6: + bl StringCopy + adds r5, r0, 0 +_080ABDCC: + movs r0, 0xD + adds r1, r4, 0 + muls r1, r0 + ldr r0, _080ABE7C @ =gMoveNames + 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 @ =gUnknown_083CA340 + 0x1 + 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 @ =0x0000ffff + ldr r3, _080ABE88 @ =0x00002d9f + movs r0, 0x48 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + ldr r4, _080ABE8C @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + ldr r2, _080ABE90 @ =gUnknown_02038570 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080ABE94 @ =gUnknown_02038695 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + ldr r1, _080ABE98 @ =gTasks + ldr r2, [sp, 0x28] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABE9C @ =sub_80ABEA0 + 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 @ =gMain + ldr r1, _080ABEF8 @ =gUnknown_02038570 + ldr r0, _080ABEFC @ =gUnknown_02038695 + 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 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABF04 @ =sub_80AC0C8 + 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 @ =gUnknown_03004210 + ldr r1, _080ABF68 @ =gUnknown_083CA340 + 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 @ =gUnknown_02038695 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABF78 + ldr r0, _080ABF70 @ =gUnknown_020238CC + ldr r1, _080ABF74 @ =gUnknown_083CAF84 + 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 @ =gUnknown_020238CC + ldr r1, _080ABFCC @ =gUnknown_083CAFAE + bl StringCopy +_080ABF80: + ldr r5, _080ABFC8 @ =gUnknown_020238CC + ldr r0, _080ABFD0 @ =0x02019204 + ldrb r1, [r0, 0x1] + adds r1, 0x1 + adds r0, r5, 0 + bl sub_80AE020 + bl sub_80AF138 + ldr r4, _080ABFD4 @ =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + ldr r0, _080ABFD8 @ =gMenuWindow + 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 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ABFE0 @ =gUnknown_03004280 + strh r1, [r0] + ldr r1, _080ABFE4 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABFE8 @ =sub_80ABC70 + 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 @ =0x02019204 + 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 @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + bl sub_80AED58 + ldr r2, _080AC040 @ =gUnknown_02038570 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080AC044 @ =gUnknown_02038695 + 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 @ =0x02019204 + 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 @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + bl sub_80AED58 + ldr r2, _080AC0A4 @ =gUnknown_02038570 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080AC0A8 @ =gUnknown_02038695 + 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 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC13C + ldr r4, _080AC124 @ =gUnknown_02038695 + ldrb r0, [r4] + bl sub_80AF15C + ldrb r2, [r4] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r2, _080AC128 @ =0x02019260 + adds r1, r2 + strh r0, [r1, 0x6] + ldr r4, _080AC12C @ =sub_80C8A38 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC130 @ =sub_80AC15C + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080AC134 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AC138 @ =nullsub_89 + 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 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AC158 @ =sub_80AC188 + 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 @ =gTasks + ldr r0, _080AC180 @ =0x02019204 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080AC184 @ =sub_80AC188 + 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 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AC1E8 @ =gUnknown_03004280 + strh r1, [r0] + movs r0, 0 + bl sub_80AFFE0 + ldr r1, _080AC1EC @ =gPlttBufferFaded + ldr r0, _080AC1F0 @ =0x02018604 + movs r2, 0x80 + lsls r2, 3 + ldr r4, _080AC1F4 @ =0x040000d4 + 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 @ =0xfffffc00 + adds r0, r1 + movs r1, 0 + bl LoadPalette + ldr r1, _080AC1FC @ =gTasks + 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 @ =sub_80AC204 + 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 @ =gTasks + 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 @ =sub_80AC250 + 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 @ =0x02019204 + ldrh r1, [r0, 0x6] + movs r0, 0x90 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _080AC272 + ldr r0, _080AC27C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AC280 @ =sub_80AC284 + 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 @ =gTasks + 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 @ =0x02019204 + movs r0, 0 + strb r0, [r1, 0x10] + ldr r0, _080AC2C4 @ =gRngValue + ldr r0, [r0] + str r0, [r1, 0x18] + movs r0, 0 + strh r0, [r2, 0x8] + ldr r0, _080AC2C8 @ =sub_80AC2CC + 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 @ =0x02019204 + ldrb r7, [r2, 0x11] + ldr r1, _080AC30C @ =gTasks + 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 @ =_080AC314 + 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 @ =0x02019204 + 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 @ =0x02019204 + strb r6, [r4, 0x11] + ldrb r7, [r4, 0x11] + ldr r0, _080AC488 @ =gUnknown_0203869A + 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 @ =sub_80C8C80 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC490 @ =sub_80AD8DC + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + ldr r1, _080AC494 @ =gTasks + 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 @ =gTasks + 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 @ =0x02019260 + 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 @ =gTasks + 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 @ =0x02019348 + ldr r1, _080AC5C8 @ =gUnknown_02024E84 + 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 @ =0xfffffebc + adds r7, r4, r5 + ldrb r0, [r7, 0x11] + bl sub_80B28F0 + ldr r3, _080AC5D0 @ =gUnknown_02038570 + 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 @ =gSprites + 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 @ =sub_80AD8FC + str r1, [r0] + ldr r0, _080AC5DC @ =gTasks + mov r4, r9 + add r4, r8 + lsls r4, 3 + adds r4, r0 + strh r5, [r4, 0xC] + ldr r1, _080AC5E0 @ =gUnknown_02024BE0 + ldr r0, _080AC5E4 @ =gUnknown_02024C07 + 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 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _080AC630 @ =SpriteCallbackDummy + cmp r1, r0 + beq _080AC60E + bl _080AD8CA +_080AC60E: + lsls r0, r7, 2 + ldr r1, _080AC634 @ =0x02019338 + 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 @ =0x02019260 + 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 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AC694 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldrh r1, [r5, 0x6] + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bhi _080AC6A0 + ldr r0, _080AC698 @ =gStringVar2 + adds r2, r1, 0 + movs r1, 0xD + muls r1, r2 + ldr r2, _080AC69C @ =gMoveNames + 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 @ =gStringVar2 + ldr r2, _080AC6E4 @ =gUnknown_083CC330 + ldrb r1, [r5, 0xA] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy +_080AC6B0: + ldr r4, _080AC6E8 @ =gStringVar4 + ldr r1, _080AC6EC @ =gUnknown_083CAFD7 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AC6F0 @ =gMenuWindow + 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 @ =gTasks + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AC708 + bl _080AD8CA +_080AC708: + ldr r0, _080AC728 @ =0x02019204 + adds r0, 0x5A + movs r1, 0 + strb r1, [r0] + ldr r1, _080AC72C @ =gTasks + 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 @ =gTasks + 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 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080AC7BC @ =gUnknown_0202F7B1 + ldrb r4, [r0] + cmp r4, 0 + beq _080AC790 + bl _080AD8CA +_080AC790: + adds r0, r7, 0 + bl unref_sub_80B28CC + ldr r1, _080AC7C0 @ =0x02019204 + adds r0, r1, 0 + adds r0, 0x5A + ldrb r0, [r0] + cmp r0, 0 + beq _080AC7C8 + ldr r0, _080AC7C4 @ =gTasks + 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 @ =gTasks + 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 @ =0x02019260 + 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 @ =gTasks + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AC8DC + bl _080AD8CA +_080AC8DC: + ldr r0, _080AC8F4 @ =gTasks + 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 @ =0x02019260 + 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 @ =gTasks + 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 @ =gTasks + 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 @ =0x02019260 + adds r0, r1 + movs r3, 0x2 + ldrsh r1, [r0, r3] + movs r0, 0 + adds r2, r7, 0 + bl sub_80AFBA0 + ldr r1, _080AC9BC @ =gTasks + 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 @ =0x02019260 + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gUnknown_02038696 + ldr r1, _080ACB28 @ =0x02019260 +_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 @ =gUnknown_02038696 + 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 @ =0x02019260 + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACBC0 + bl _080AD8CA +_080ACBC0: + ldr r0, _080ACBD8 @ =gTasks + 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 @ =gUnknown_02038696 + mov r9, r0 + ldr r3, _080ACC3C @ =0x02019260 + 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 @ =gTasks + 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 @ =gUnknown_02038696 + mov r9, r0 + ldr r2, _080ACC94 @ =0x02019338 + 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 @ =gUnknown_02038696 + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gUnknown_02038696 + 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 @ =0x02019260 + 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 @ =gTasks + 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 @ =0x02019260 + 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 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080ACE50 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080ACE54 @ =gStringVar4 + ldr r1, _080ACE58 @ =gUnknown_083CC103 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ACE5C @ =gMenuWindow + 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 @ =gTasks + 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 @ =gMenuWindow + 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 @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080ACEA8 + ldr r0, _080ACEA4 @ =gTasks + 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 @ =gTasks + 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 @ =0x02019260 + 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 @ =gMenuWindow + ldr r1, _080ACEEC @ =gUnknown_083CBD79 + b _080ACEF8 + .align 2, 0 +_080ACEE4: .4byte 0x02019260 +_080ACEE8: .4byte gMenuWindow +_080ACEEC: .4byte gUnknown_083CBD79 +_080ACEF0: + cmp r0, 0x2 + bne _080ACF10 + ldr r0, _080ACF08 @ =gMenuWindow + ldr r1, _080ACF0C @ =gUnknown_083CBD9D +_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 @ =gMenuWindow + ldr r1, _080ACF40 @ =gUnknown_083CBDC6 + 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 @ =gTasks + 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 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080ACF94 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080ACF98 @ =gStringVar4 + ldr r1, _080ACF9C @ =gUnknown_083CBD52 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ACFA0 @ =gMenuWindow + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACFE4 + bl _080AD8CA +_080ACFE4: + ldr r1, _080AD038 @ =gTasks + 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 @ =0x02019260 + 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 @ =0x02019338 + 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 @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD0E8 + bl sub_80AF138 + ldr r0, _080AD0D0 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD0D4 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080AD0D8 @ =gStringVar4 + ldr r1, _080AD0DC @ =gUnknown_083CC075 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD0E0 @ =gMenuWindow + 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 @ =gTasks + 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 @ =gMenuWindow + 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 @ =0x02019260 + 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 @ =gTasks + 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 @ =0x02019338 + 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 @ =gTasks + 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 @ =0x02019328 + 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 @ =gStringVar3 + ldrh r2, [r5, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD200 @ =gMoveNames + adds r1, r2 + bl StringCopy + b _080AD21E + .align 2, 0 +_080AD1FC: .4byte gStringVar3 +_080AD200: .4byte gMoveNames +_080AD204: + ldr r0, _080AD270 @ =gStringVar3 + ldr r3, _080AD274 @ =gUnknown_083CC2D8 + ldr r2, _080AD278 @ =gContestMoves + 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 @ =0x02019260 + 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 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD284 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r3, _080AD288 @ =0x02019204 + 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 @ =gTasks + 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 @ =gStringVar4 + ldr r1, _080AD2A4 @ =gUnknown_083CC0BC + 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 @ =gStringVar4 + ldr r1, _080AD2C4 @ =gUnknown_083CC0A0 + bl StringExpandPlaceholders + b _080AD2D0 + .align 2, 0 +_080AD2C0: .4byte gStringVar4 +_080AD2C4: .4byte gUnknown_083CC0A0 +_080AD2C8: + ldr r0, _080AD300 @ =gStringVar4 + ldr r1, _080AD304 @ =gUnknown_083CC0E3 + bl StringExpandPlaceholders +_080AD2D0: + ldr r0, _080AD308 @ =gMenuWindow + ldr r1, _080AD300 @ =gStringVar4 + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD30C @ =gTasks + 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 @ =0x00000187 + 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 @ =gMenuWindow + 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 @ =gPaletteFade + 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 @ =_080AD3F4 + 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 @ =gMenuWindow + 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 @ =0x02019338 + adds r0, r2 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD4B2 + b _080AD8CA +_080AD4B2: + ldr r3, _080AD4E4 @ =0xfffffecc + 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 @ =gTasks + 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 @ =gPaletteFade + 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 @ =0x02019338 + 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 @ =gTasks + 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 @ =gStringVar3 + ldr r4, _080AD5AC @ =0x02019328 + ldr r1, [r4] + lsls r1, 20 + lsrs r1, 29 + lsls r1, 6 + ldr r5, _080AD5B0 @ =gUnknown_02038572 + adds r1, r5 + bl StringCopy + ldr r0, _080AD5B4 @ =gStringVar1 + lsls r1, r7, 6 + adds r1, r5 + bl StringCopy + ldr r0, _080AD5B8 @ =gStringVar2 + 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 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _080AD5C0 @ =gStringVar4 + ldr r1, _080AD5C4 @ =gUnknown_083CC14A + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD5C8 @ =gMenuWindow + 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 @ =gTasks + 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 @ =gMenuWindow + adds r0, r5, 0 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD5E0 + b _080AD8CA +_080AD5E0: + bl sub_80AF138 + ldr r4, _080AD618 @ =gStringVar4 + ldr r1, _080AD61C @ =gUnknown_083CC16E + 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 @ =gTasks + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD632 + b _080AD8CA +_080AD632: + bl sub_80AF138 + ldr r0, _080AD644 @ =gTasks + 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 @ =0x02019260 + 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 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD6BC @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r0, _080AD6C0 @ =gStringVar2 + ldrh r2, [r4, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD6C4 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _080AD6C8 @ =gStringVar4 + ldr r1, _080AD6CC @ =gUnknown_083CBF60 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD6D0 @ =gMenuWindow + 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 @ =gTasks + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD6E6 + b _080AD8CA +_080AD6E6: + ldr r0, _080AD6FC @ =gTasks + 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 @ =gTasks + 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 @ =gTasks + 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 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080AD778 @ =sub_80AD92C + 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 @ =gSprites + 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 @ =gTasks + 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 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD82C @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080AD830 @ =gStringVar4 + ldr r1, _080AD834 @ =gUnknown_083CB00D + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD838 @ =gMenuWindow + 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 @ =gTasks + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + beq _080AD8CA + ldr r0, _080AD864 @ =gTasks + 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 @ =sub_80AD960 + 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 @ =0x02019204 + 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 @ =SpriteCallbackDummy + 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 @ =SpriteCallbackDummy + 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 @ =gTasks + 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 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080AD9E8 + ldr r2, _080AD9DC @ =0x02019204 + 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 @ =sub_80C8C80 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD9E4 @ =sub_80AD8DC + 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 @ =0x02019204 + 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 @ =sub_80ADA1C + 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 @ =gTasks + 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 @ =sub_80ADA4C + 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 @ =gTasks + 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 @ =0x02019204 + 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 @ =sub_80ADAD8 + 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 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADB00 @ =sub_80ADB04 + 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 @ =0x02018204 + ldr r3, _080ADB34 @ =gPlttBufferUnfaded + ldr r1, _080ADB38 @ =0x040000d4 + str r2, [r1] + str r3, [r1, 0x4] + ldr r2, _080ADB3C @ =0x84000100 + str r2, [r1, 0x8] + ldr r1, [r1, 0x8] + ldr r2, _080ADB40 @ =gTasks + 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 @ =sub_80ADB48 + 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 @ =gTasks + 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 @ =sub_80ADB88 + 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 @ =gUnknown_02038695 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080ADBF0 @ =0x02019260 + adds r0, r1 + ldrb r4, [r0, 0x1A] + bl sub_80AF138 + ldr r0, _080ADBF4 @ =gStringVar1 + ldrb r1, [r6] + lsls r1, 6 + ldr r2, _080ADBF8 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r6, _080ADBFC @ =gStringVar4 + ldr r0, _080ADC00 @ =gUnknown_083CB2F0 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r6, 0 + bl StringExpandPlaceholders + ldr r0, _080ADC04 @ =gMenuWindow + 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 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADC0C @ =sub_80ADC10 + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ADC3A + ldr r1, _080ADC44 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADC48 @ =sub_80ADC4C + 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 @ =gTasks + 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 @ =sub_80ADC84 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADCB0 @ =sub_80ADCB4 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADCD8 @ =sub_80B237C + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADD00 @ =sub_80ADD04 + 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 @ =REG_BG0CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080ADD44 @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldr r1, _080ADD48 @ =0x02019204 + 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 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADD50 @ =sub_80ADDA4 + 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 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADD70 @ =sub_80ADD74 +_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 @ =0x02019204 + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080ADD94 + ldr r0, _080ADD9C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADDA0 @ =sub_80ABB70 + 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 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ADE28 @ =gUnknown_03004280 + strh r1, [r0] + ldr r3, _080ADE2C @ =0x02019260 + ldr r2, _080ADE30 @ =gUnknown_02038680 + 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 @ =gUnknown_02038695 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080ADE2C @ =0x02019260 + adds r0, r1 + ldrh r0, [r0, 0x8] + bl sub_80BE23C + ldr r1, _080ADE38 @ =gUnknown_03005D28 + ldr r0, _080ADE3C @ =gRngValue + ldr r0, [r0] + str r0, [r1] + ldr r4, _080ADE40 @ =gStringVar4 + ldr r1, _080ADE44 @ =gUnknown_083CB02C + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ADE48 @ =gMenuWindow + 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 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xC] + ldr r1, _080ADE50 @ =sub_80ADE54 + 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 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ADE92 + bl sub_80B2184 + ldr r1, _080ADE9C @ =gUnknown_030042C0 + movs r0, 0 + strh r0, [r1] + ldr r1, _080ADEA0 @ =gUnknown_030041B4 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl PlaySE12WithPanning + ldr r1, _080ADEA4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADEA8 @ =sub_80ADEAC + 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 @ =gUnknown_030041B4 + 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 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADEE8 @ =sub_80ADEEC + 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 @ =gTasks + 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 @ =gUnknown_0203869A + ldrb r0, [r0] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080ADF2C + ldr r0, _080ADF28 @ =sub_80ADF4C + 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 @ =sub_80ADFD8 +_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 @ =sub_80C8AD0 + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADF8C @ =sub_80ADF98 + adds r1, r5, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080ADF90 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADF94 @ =nullsub_89 + 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 @ =gTasks + ldr r0, _080ADFD0 @ =0x02019204 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080ADFD4 @ =sub_80ADFD8 + 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 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ADFFC + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080AE004 @ =gUnknown_0300485C + ldr r1, _080AE008 @ =sub_80AE010 + str r1, [r0] + ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch + 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 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AE068 + ldr r1, _080AE070 @ =gUnknown_02038695 + 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 @ =gUnknown_02038695 + ldr r1, _080AE08C @ =gUnknown_0203869B + 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 @ =gSaveBlock2 + mov r0, sp + adds r1, r6, 0 + bl StringCopy + mov r0, sp + bl StripExtCtrlCodes + ldr r0, _080AE0F4 @ =gUnknown_0203869A + 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 @ =gUnknown_02038695 + ldrb r0, [r5] + lsls r0, 6 + ldr r4, _080AE0FC @ =gUnknown_0203857D + 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 @ =gUnknown_02038570 + ldr r4, _080AE180 @ =gUnknown_02038695 + 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 @ =gPlayerParty + 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 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE19A + mov r0, sp + bl StripExtCtrlCodes + 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 @ =gUnknown_02038695 + ldrb r0, [r5] + lsls r0, 6 + ldr r1, _080AE2C8 @ =gUnknown_02038572 + 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 @ =gPlayerParty + 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 @ =0x00000101 + 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 @ =gUnknown_02038570 + ldr r1, _080AE394 @ =gUnknown_02038695 + 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 @ =gUnknown_083C9408 +_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 @ =gUnknown_083C9408 +_080AE412: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080AE474 @ =gUnknown_02038570 + 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 @ =gUnknown_02038694 + 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 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080AE4F2 + lsls r0, 2 + ldr r1, _080AE4B4 @ =_080AE4B8 + 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 @ =gUnknown_0203869E + 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 @ =gUnknown_083CA308 + adds r0, r7, 0x1 + mov r9, r0 + ldr r6, _080AE58C @ =gUnknown_083CA310 + adds r3, r6, 0x1 + mov r8, r3 +_080AE52C: + ldr r4, _080AE590 @ =gUnknown_02038696 + 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 @ =gUnknown_03004210 + 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 sub_80AE598 +sub_80AE598: @ 80AE598 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r4, r2, 24 + lsrs r4, 24 + ldr r1, _080AE5B8 @ =gUnknown_083CC59C + 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 sub_80AE598 + + 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 @ =gUnknown_020238CC + ldr r1, _080AE664 @ =gEmptyString_81E72B0 + adds r0, r3, 0 + bl sub_80AE598 + 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 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE67C + ldr r1, _080AE66C @ =gLinkPlayers + 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 @ =gUnknown_03004210 + ldr r1, _080AE660 @ =gUnknown_020238CC + ldr r2, _080AE674 @ =gUnknown_02038696 + 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 @ =gUnknown_083CA310 + 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 @ =gUnknown_0203857D + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + ldr r0, _080AE6BC @ =gUnknown_03004210 + ldr r1, _080AE6C0 @ =gUnknown_020238CC + ldr r2, _080AE6C4 @ =gUnknown_02038696 + 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 @ =gUnknown_083CA310 + 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 @ =gUnknown_020238CC + 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 @ =gUnknown_02038572 + adds r1, r0 + adds r0, r3, 0 + bl sub_80AE598 + adds r3, r0, 0 + movs r0, 0xFF + strb r0, [r3] + ldr r0, _080AE764 @ =gUnknown_03004210 + ldr r1, _080AE75C @ =gUnknown_020238CC + ldr r2, _080AE768 @ =gUnknown_02038696 + 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 @ =gUnknown_083CA308 + 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 @ =_080AE78C + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038670 +_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 @ =gUnknown_083CA4BC + bl LoadCompressedObjectPic + ldr r0, _080AE8A4 @ =gContest2Pal + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080AE8A8 @ =gSpriteTemplate_83CA4A4 + movs r1, 0x70 + movs r2, 0x24 + movs r3, 0x1E + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080AE8AC @ =gSprites + 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 @ =SpriteCallbackDummy + 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 @ =gUnknown_083CA4C4 + bl LoadCompressedObjectPic + ldr r0, _080AE8FC @ =gUnknown_083CA4CC + bl LoadCompressedObjectPalette + ldr r0, _080AE900 @ =gUnknown_083CA4D4 + movs r1, 0x60 + movs r2, 0xA + movs r3, 0x1D + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AE904 @ =gSprites + 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 @ =gUnknown_02038570 + mov r9, r0 + ldr r1, _080AE9D8 @ =gUnknown_02038695 + mov r8, r1 + ldrb r0, [r1] + lsls r0, 6 + add r0, r9 + ldrh r5, [r0] + lsls r6, r5, 3 + ldr r0, _080AE9DC @ =gMonFrontPicTable + adds r0, r6, r0 + ldr r2, _080AE9E0 @ =gMonFrontPicCoords + 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 @ =gUnknown_081FAF4C + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + bl DecompressPicFromTable_2 + ldr r0, _080AE9E8 @ =gMonPaletteTable + 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 @ =gUnknown_02024E8C + 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 @ =gSprites + 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 @ =SpriteCallbackDummy + str r2, [r1] + adds r5, 0x10 + adds r3, r5 + ldr r1, _080AE9F8 @ =gSpriteAffineAnimTable_81E7C18 + 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 @ =gMonBackPicTable + adds r0, r1 + ldr r1, _080AEAD0 @ =gMonBackPicCoords + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080AEAD4 @ =gUnknown_081FAF4C + 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 @ =gUnknown_02024E8C + 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 @ =gSprites + 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 @ =SpriteCallbackDummy + 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 @ =gSpriteAffineAnimTable_81E7C18 + 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 @ =gSpriteAffineAnimTable_81E7BEC +_080AEAF0: + str r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _080AEB18 @ =gSprites + 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 @ =0x0600c000 + bl sub_80AEB4C + ldr r0, _080AEB48 @ =0x0600e000 + 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 @ =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080AEB64 @ =0x80000140 + 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 @ =gContestEffects + ldr r1, _080AEB94 @ =gContestMoves + 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 @ =_080AEB9C + 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 @ =0x00009082 + b _080AEBD2 + .align 2, 0 +_080AEBC4: .4byte 0x00009082 +_080AEBC8: + ldr r0, _080AEBCC @ =0x00009088 + b _080AEBD2 + .align 2, 0 +_080AEBCC: .4byte 0x00009088 +_080AEBD0: + ldr r0, _080AEBE8 @ =0x00009086 +_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 @ =gUnknown_03004210 + 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 @ =gContestMoves + lsls r0, r4, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + ldr r1, _080AEC7C @ =0x00004040 + 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 @ =gUnknown_03004210 + mov r8, r0 + ldr r6, _080AEC78 @ =gContestMoves + lsls r5, r4, 3 + ldr r7, _080AEC80 @ =gContestEffects + ldr r0, _080AEC84 @ =gUnknown_083CADD4 + mov r9, r0 + ldr r4, _080AEC88 @ =0x0600c816 + ldr r3, _080AEC8C @ =0x0600c7d6 + 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 @ =0x00005012 + adds r4, r1, 0 + adds r1, 0x23 + adds r3, r1, 0 + ldr r1, _080AECBC @ =0x0600c7ea +_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 @ =0x00005014 + adds r4, r1, 0 + adds r1, 0x22 + adds r3, r1, 0 + ldr r1, _080AED08 @ =0x0600c82a +_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 @ =gUnknown_083CC5A2 + ldr r2, _080AED54 @ =0x00000362 + 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 @ =gUnknown_03004210 + 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 @ =gUnknown_02038696 + 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 @ =0x0600c028 + adds r1, r3, r1 + strh r0, [r1] + ldr r1, _080AEDE0 @ =0x0600c02a + adds r1, r3, r1 + adds r2, r0, 0x1 + strh r2, [r1] + ldr r1, _080AEDE4 @ =0x0600c068 + adds r2, r3, r1 + adds r1, r0, 0 + adds r1, 0x10 + strh r1, [r2] + ldr r1, _080AEDE8 @ =0x0600c06a + 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 @ =0x0600c028 + adds r0, r1, r0 + movs r2, 0 + strh r2, [r0] + ldr r0, _080AEE14 @ =0x0600c02a + adds r0, r1, r0 + strh r2, [r0] + ldr r3, _080AEE18 @ =0x0600c068 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080AEE1C @ =0x0600c06a + 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 @ =0x02019260 + 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 @ =0x00002034 + 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 @ =0x02019260 + 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 @ =gUnknown_02038696 + 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 @ =0x0600c026 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + adds r4, 0x1 +_080AEEC4: + subs r0, r6, r7 + lsls r0, 2 + ldr r1, _080AEEEC @ =0x02019260 + 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 @ =0x0600bfe6 + 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 @ =gUnknown_02038696 + 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 @ =0x0600c026 + adds r0, r3 + strh r6, [r0] + adds r4, 0x1 +_080AEF92: + subs r0, r7, r5 + lsls r0, 2 + ldr r1, _080AEFE4 @ =0x02019260 + 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 @ =0x0600c026 + 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 @ =_080AF004 + 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 @ =gUnknown_02038696 + 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 @ =0x02019260 + adds r2, r0, r1 + ldr r0, [r2, 0x10] + ldr r1, _080AF07C @ =0x00ff0003 + 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 @ =0x0600c028 + adds r0, r2, r0 + strh r4, [r0] + ldr r0, _080AF0E0 @ =0x0600c02a + adds r0, r2, r0 + adds r1, r4, 0x1 + strh r1, [r0] + ldr r0, _080AF0E4 @ =0x0600c068 + adds r1, r2, r0 + adds r0, r4, 0 + adds r0, 0x10 + strh r0, [r1] + ldr r0, _080AF0E8 @ =0x0600c06a + 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 @ =0x0600c028 + adds r0, r1, r0 + strh r5, [r0] + ldr r0, _080AF114 @ =0x0600c02a + adds r0, r1, r0 + strh r5, [r0] + ldr r2, _080AF118 @ =0x0600c068 + adds r0, r1, r2 + strh r5, [r0] + ldr r0, _080AF11C @ =0x0600c06a + 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 @ =gUnknown_03004210 + 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 @ =gUnknown_02038695 + ldrb r0, [r0] + cmp r4, r0 + beq _080AF198 + adds r0, r4, 0 + bl sub_81288F4 + bl sub_8128944 + lsls r0, 24 + ldr r2, _080AF194 @ =gUnknown_02038570 + lsrs r0, 23 + lsls r1, r4, 6 + b _080AF1A2 + .align 2, 0 +_080AF190: .4byte gUnknown_02038695 +_080AF194: .4byte gUnknown_02038570 +_080AF198: + ldr r2, _080AF1B0 @ =gUnknown_02038570 + ldr r0, _080AF1B4 @ =0x02019204 + 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 @ =0x02019260 + 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 @ =0x02019260 + adds r1, r0, r1 + ldrh r0, [r1, 0x6] + cmp r0, 0 + bne _080AF228 + ldr r0, _080AF220 @ =gUnknown_020238CC + ldr r1, _080AF224 @ =gUnknownText_MissedTurn + adds r2, r3, 0 + bl sub_80AE598 + b _080AF23A + .align 2, 0 +_080AF21C: .4byte 0x02019260 +_080AF220: .4byte gUnknown_020238CC +_080AF224: .4byte gUnknownText_MissedTurn +_080AF228: + ldr r0, _080AF270 @ =gUnknown_020238CC + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AF274 @ =gMoveNames + adds r1, r2 + adds r2, r3, 0 + bl sub_80AE598 +_080AF23A: + adds r0, r5, 0 + bl sub_80AF2A0 + ldr r0, _080AF278 @ =gUnknown_03004210 + ldr r1, _080AF270 @ =gUnknown_020238CC + 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 @ =gUnknown_083CA318 + 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 @ =gUnknown_03004210 + ldr r1, _080AF2DC @ =gUnknown_083CA318 + 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 @ =0x02019260 +_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 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =0x02019328 + 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 @ =0x02019260 + 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 @ =gUnknown_02038695 + 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 @ =0x02019204 + 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 @ =gUnknown_02038688 + lsls r4, 1 + adds r1, r4, r1 + strh r0, [r1] + ldr r2, _080AF660 @ =gUnknown_02038678 + adds r2, r4, r2 + ldr r1, _080AF664 @ =gUnknown_02038670 + 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 @ =gUnknown_02038680 + 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 @ =gUnknown_02038678 + ldr r2, [sp, 0x64] + ldr r5, _080AF820 @ =gUnknown_02038670 + 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 @ =gUnknown_02038690 + 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 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AF890 @ =gUnknown_03004280 + strh r1, [r0] + bl sub_80AF138 + ldr r0, _080AF894 @ =gMenuWindow + ldr r1, _080AF898 @ =gUnknownText_LinkStandbyAndWinner + 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 @ =0x02019338 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r0, _080AF944 @ =sub_80AF94C + 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 @ =gTasks + 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 @ =gTasks + 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 @ =0x02019338 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 3 + adds r0, r2, r3 + ldrh r1, [r0, 0xC] + ldr r0, _080AFA04 @ =0x0000ffff + 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 @ =0x0600c000 + 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 @ =0x0600c000 + 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 @ =0x0600c000 + mov r12, r0 + mov r4, sp + movs r6, 0 + ldr r2, _080AFAB0 @ =0x040000d4 + ldr r5, _080AFAB4 @ =0x81000008 +_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 @ =0x000050a2 + cmp r4, 0 + beq _080AFAE0 + ldr r2, _080AFAF8 @ =0x000060a2 + cmp r4, 0x1 + beq _080AFAE0 + ldr r2, _080AFAFC @ =0x000080a2 + cmp r4, 0x2 + bne _080AFAE0 + ldr r2, _080AFB00 @ =0x000070a2 +_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 @ =0x0600c128 + adds r0, r1 + ldr r1, _080AFB38 @ =0x040000d4 + mov r2, sp + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _080AFB3C @ =0x80000009 + 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 @ =0x00005011 + cmp r0, 0 + beq _080AFB5A + ldr r1, _080AFB68 @ =0x00006011 + cmp r0, 0x1 + beq _080AFB5A + ldr r1, _080AFB6C @ =0x00008011 + cmp r0, 0x2 + bne _080AFB5A + ldr r1, _080AFB70 @ =0x00007011 +_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 @ =0x02019338 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r0, _080AFC34 @ =sub_80AFC74 + 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 @ =gTasks + 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 @ =gTasks + lsls r3, r6, 2 + adds r0, r3, r6 + lsls r0, 3 + adds r0, r2 + ldr r1, _080AFC70 @ =0x0000ffff + 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 @ =gTasks + 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 @ =0x02019338 + 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 @ =gTasks + 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 @ =gUnknown_02038696 + 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 @ =0x0600c000 + adds r1, r0 + ldr r2, _080AFDF0 @ =0x01000001 + mov r0, sp + bl CpuSet + mov r2, r9 + cmp r2, 0 + ble _080AFDFC + movs r0, 0x60 + bl PlaySE + ldr r4, _080AFDF4 @ =gMPlay_SE1 + adds r0, r4, 0 + bl m4aMPlayImmInit + ldr r1, _080AFDF8 @ =0x0000ffff + 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 @ =gTasks + 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 @ =gUnknown_083CA350 + bl LoadSpriteSheet + movs r4, 0 + ldr r5, _080AFE68 @ =gUnknown_083CA338 +_080AFE3C: + ldr r0, _080AFE6C @ =gUnknown_02038696 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, r5 + ldrb r2, [r0] + ldr r0, _080AFE70 @ =gSpriteTemplate_83CA3AC + movs r1, 0xB4 + movs r3, 0x1 + bl CreateSprite + lsls r1, r4, 2 + ldr r2, _080AFE74 @ =0x02019338 + 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 @ =0x02019338 + 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 @ =gSprites + 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 @ =0x0000ffff +_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 @ =sub_80AFF60 + 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 @ =0x02019338 + 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 @ =0x02019338 + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + ldr r0, _080AFF90 @ =SpriteCallbackDummy + 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 @ =gSprites + ldr r5, _080AFFD4 @ =gUnknown_083CA338 + ldr r3, _080AFFD8 @ =0x02019338 + ldr r4, _080AFFDC @ =gUnknown_02038696 +_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 @ =gUnknown_02038696 + ldr r4, _080B000C @ =gSprites + ldr r2, _080B0010 @ =0x02019338 +_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 @ =gUnknown_083CA3E4 + bl LoadSpritePalette + movs r5, 0 + ldr r0, _080B00AC @ =gUnknown_083CA33C + mov r8, r0 + ldr r7, _080B00B0 @ =gSprites + movs r6, 0 +_080B004A: + lsls r0, r5, 3 + ldr r1, _080B00B4 @ =gUnknown_083CA3C4 + adds r0, r1 + bl LoadCompressedObjectPic + ldr r0, _080B00B8 @ =gSpriteTemplate_83CA3F4 + adds r0, r6, r0 + ldr r1, _080B00BC @ =gUnknown_02038696 + 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 @ =0x02019338 + 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 @ =gUnknown_083CA464 + 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 @ =gUnknown_083CA46C + bl LoadCompressedObjectPic + ldr r0, _080B0108 @ =gUnknown_083CA474 + bl LoadSpritePalette + ldr r0, _080B010C @ =gSpriteTemplate_83CA484 + movs r1, 0x1E + movs r2, 0x2C + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B0110 @ =gSprites + 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 @ =0x02019204 + 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 @ =gUnknown_083CC3AC + bl LoadCompressedObjectPic + movs r4, 0 + ldr r5, _080B019C @ =gUnknown_083CC3B4 +_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 @ =gUnknown_083CA330 + adds r0, r5, 0x1 + mov r8, r0 + ldr r7, _080B01A4 @ =gSprites + ldr r6, _080B01A8 @ =0x0201920d +_080B014A: + lsls r2, r4, 1 + adds r0, r2, r4 + lsls r0, 3 + ldr r1, _080B01AC @ =gSpriteTemplate_83CC454 + 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 @ =0x0201920d + ldr r4, _080B01D8 @ =gSprites + 0x1C + ldr r3, _080B01DC @ =ObjectCB_SwitchPocketRotatingBallInit +_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 sub_80B0238 + 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 @ =gSprites + ldr r4, _080B0228 @ =0x02019204 + 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 @ =SpriteCallbackDummy + 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 sub_80B0238 +sub_80B0238: @ 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 @ =sub_80B02A8 + b _080B0272 + .align 2, 0 +_080B0264: .4byte sub_80B02A8 +_080B0268: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080B027C @ =sub_80B0280 +_080B0272: + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B027C: .4byte sub_80B0280 + thumb_func_end sub_80B0238 + + 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 @ =sub_80B02A8 + 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 @ =0x02019260 + 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 @ =sub_80B02F4 + 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 @ =SpriteCallbackDummy + 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 @ =sub_80B0458 + movs r1, 0x1E + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0360 @ =0x02019204 + strb r0, [r1, 0xD] + movs r2, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r4, _080B0364 @ =gTasks + 0x8 + 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 gTasks + 0x8 + 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 @ =gTasks + ldr r5, _080B03A4 @ =0x02019204 + 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 @ =sub_80B03D8 + movs r1, 0x1F + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B03D4 @ =gTasks + 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 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x8] + adds r4, r0, 0 + ldr r6, _080B0450 @ =0x02019204 + 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 @ =0x00004bff + 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 @ =gTasks + 0x8 + 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 gTasks + 0x8 +_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 @ =0x02019204 + 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 @ =0x00004bff + 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 @ =sub_80B05FC + movs r1, 0x1E + bl CreateTask + ldr r1, _080B0544 @ =0x02019204 + 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 @ =gTasks + ldr r4, _080B0584 @ =0x02019204 + 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 @ =gPlttBufferUnfaded + 0x14 + adds r6, r2, r3 + ldr r5, _080B05EC @ =gPlttBufferFaded + 0x14 + adds r2, r5 + ldr r1, _080B05F0 @ =0x040000d4 + str r6, [r1] + str r2, [r1, 0x4] + ldr r2, _080B05F4 @ =0x80000001 + 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 @ =gTasks + 0x8 + mov r8, r0 + ldr r1, _080B0668 @ =0x00004bff + 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 gTasks + 0x8 +_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 @ =gTasks + 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 @ =sub_80B0748 + 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 @ =gTasks + 0x8 + mov r8, r0 + ldr r1, _080B0744 @ =0x02019338 + 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 gTasks + 0x8 +_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 @ =gTasks + 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 @ =gUnknown_02038696 + 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 @ =0x00007fff + 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 @ =gUnknown_083CC5A4 + 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 @ =gPlttBufferFaded + lsls r1, r4, 1 + adds r0, r1, r0 + ldrh r2, [r0] + ldr r0, _080B0934 @ =gPlttBufferUnfaded + adds r1, r0 + ldrh r0, [r1] + ldr r1, _080B0938 @ =0x040000d4 + 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 @ =gTasks +_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 @ =0x02019338 + 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 @ =0x02019204 + 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 @ =0x02019260 + 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 @ =gUnknown_02038696 + 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 @ =gUnknown_083CC4B4 + adds r0, r4, r0 + bl LoadCompressedObjectPic + ldr r0, _080B0B34 @ =gUnknown_083CC4D4 + 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 @ =gSpriteTemplate_83CC53C + 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 @ =gSprites + 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 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B0B44 @ =0xfffffc00 + 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 @ =0x0600e026 + 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 @ =0x06010000 + 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 @ =0x0600e036 + 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 @ =0x040000d4 + add r3, sp, 0x8 + mov r12, r3 + str r3, [r1] + str r0, [r1, 0x4] + ldr r3, _080B0B58 @ =0x850000c0 + 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 @ =gSprites + 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 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080B0BB0 @ =0x00000907 + 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 @ =REG_BLDCNT + 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 @ =gSprites + 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 @ =0x02019338 + 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 @ =sub_80B0C5C + str r0, [r6] + add r4, r8 + ldr r0, _080B0C44 @ =SpriteCallbackDummy + 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 @ =gSprites + 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 @ =sub_80B0CB0 + 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 @ =0x02019338 + 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 @ =0x02019338 + 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 @ =0x02000000 + 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 @ =gUnknown_083CA308 + adds r3, r6, 0x1 + mov r8, r3 + ldr r5, _080B0D64 @ =gUnknown_083CA310 + 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 @ =gUnknown_03004210 + 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 @ =0x02000000 + 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 @ =gUnknown_083CA308 + adds r3, r7, 0x1 + mov r9, r3 + ldr r6, _080B0ED8 @ =gUnknown_083CA310 + 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 @ =gUnknown_03004210 + 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 @ =gUnknown_083CA310 + adds r7, r6, 0x1 +_080B0DE2: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B0EE0 @ =0x02019260 + 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 @ =gUnknown_02038696 + 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 @ =gUnknown_03004210 + 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 @ =gUnknown_083CA308 + adds r7, r6, 0x1 +_080B0E52: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B0EE0 @ =0x02019260 + 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 @ =gUnknown_02038696 + 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 @ =gUnknown_03004210 + 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 @ =gUnknown_02038696 + mov r8, r3 +_080B0F9C: + mov r6, r8 + strb r5, [r6] + movs r4, 0 + cmp r4, r5 + bge _080B1018 + ldr r7, _080B100C @ =gUnknown_02038670 + 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 @ =gUnknown_02038696 + 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 @ =gUnknown_02038696 + 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 @ =gUnknown_02038696 + movs r6, 0 +_080B1060: + ldr r0, _080B1074 @ =0x02019260 + 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 @ =gUnknown_02038696 + mov r8, r2 + add r3, sp, 0x4 + mov r12, r3 +_080B10AC: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r6, _080B1110 @ =0x02019244 + adds r1, r0, r6 + ldrb r2, [r1, 0xB] + ldr r7, _080B1114 @ =0x02019260 + 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 @ =0x02018004 + adds r0, r5, r0 + ldr r1, _080B1148 @ =gUnknown_02038696 + 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 @ =0x02019260 + 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 @ =gContestMoves + 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 @ =0x02019260 + 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 @ =gContestEffects + 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 @ =0x02019260 + 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 @ =gContestEffectFuncs + adds r0, r4, r0 + ldr r0, [r0] + bl _call_via_r0 + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1264 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =gContestMoves + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1314 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =0x02019260 + 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 @ =gStringVar1 + lsls r1, r4, 6 + ldr r2, _080B14CC @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r0, _080B14D0 @ =gStringVar2 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r4, _080B14D4 @ =0x02019260 + adds r1, r4 + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080B14D8 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r2, _080B14DC @ =gContestMoves + 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 @ =gStringVar3 + ldr r1, _080B14E4 @ =gUnknown_083CC280 + 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 @ =gStringVar3 + ldr r1, _080B14FC @ =gUnknown_083CC288 + 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 @ =gStringVar3 + ldr r1, _080B1514 @ =gUnknown_083CC290 + 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 @ =gStringVar3 + ldr r1, _080B152C @ =gUnknown_083CC299 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B1528: .4byte gStringVar3 +_080B152C: .4byte gUnknown_083CC299 +_080B1530: + ldr r0, _080B1568 @ =gStringVar3 + ldr r1, _080B156C @ =gUnknown_083CC2A3 + bl StringCopy +_080B1538: + ldr r4, _080B1570 @ =gStringVar4 + ldr r1, _080B1574 @ =gUnknown_083CC188 + lsls r0, r5, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringExpandPlaceholders + bl sub_80AF138 + ldr r0, _080B1578 @ =gMenuWindow + 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 @ =0x02019260 + 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 @ =gUnknown_02038696 + 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 @ =0x02019260 + 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 @ =gUnknown_02038696 + 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 @ =0x020192d0 + 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 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + ldr r2, _080B170C @ =0x02019204 + 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 @ =0x02019204 + ldrb r5, [r0, 0x12] + cmp r1, 0x8 + bls _080B1720 + b _080B18C0 +_080B1720: + lsls r0, r1, 2 + ldr r1, _080B1730 @ =_080B1734 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x2E] + ldr r2, _080B1780 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1784 @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x4 + ldr r3, _080B17B4 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B17B8 @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x8 + ldr r3, _080B17E8 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B17EC @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0xC + ldr r3, _080B181C @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1820 @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0xC + ldr r3, _080B1850 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1854 @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x10 + ldr r3, _080B1884 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1888 @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x18 + ldr r3, _080B18B8 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B18BC @ =0xfffffc00 + 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 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x14 + ldr r3, _080B1918 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B191C @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE +_080B18E4: + adds r2, r4, 0 + ldr r4, _080B1914 @ =gSprites + 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 @ =sub_80B16D0 + str r0, [r2] + ldr r2, _080B1924 @ =0x02019204 + 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 @ =0x02019204 + ldr r0, _080B19C0 @ =gSprites + mov r10, r0 + movs r1, 0x58 + adds r1, r6 + mov r9, r1 + ldr r0, _080B19C4 @ =0x06010000 + mov r8, r0 + ldr r7, _080B19C8 @ =REG_BG0CNT +_080B1946: + movs r0, 0x13 + ldrsb r0, [r6, r0] + ldr r4, _080B19CC @ =gContestApplauseMeterGfx + 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 @ =gUnknown_083CC2EC + add r0, sp, 0x4 + bl StringCopy + ldr r0, _080B19F8 @ =gUnknown_03004210 + 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 @ =gContestExcitementTable + ldr r1, _080B1A24 @ =gContestMoves + lsrs r0, 13 + adds r0, r1 + ldrb r1, [r0, 0x1] + lsls r1, 29 + lsrs r1, 29 + ldr r0, _080B1A28 @ =gUnknown_0203869C + 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 @ =c3_08130B10 + movs r1, 0xA + bl CreateTask + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080B1A64 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x1 + strh r0, [r4, 0xA] + ldr r0, _080B1A68 @ =0x0000abe2 + 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 @ =gTasks + 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 @ =0x00007fff + 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 @ =0x02019204 + 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 @ =sub_80B1B68 + movs r1, 0xA + bl CreateTask + ldr r4, _080B1B5C @ =gSprites + ldr r3, _080B1B60 @ =0x02019204 + 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 @ =0x0000ffba + 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 @ =0x02019204 + adds r0, r4, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B1BD4 @ =gSprites + adds r2, r0, r1 + ldr r0, _080B1BD8 @ =gTasks + 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 @ =gSprites + ldr r4, _080B1C08 @ =0x02019204 + 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 @ =sub_80B1C34 + 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 @ =0x02019204 + adds r0, r5, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B1CB0 @ =gSprites + adds r3, r0, r1 + ldr r0, _080B1CB4 @ =gTasks + 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 @ =0x0000ffba + 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 @ =sub_80B1CFC + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B1CF4 @ =gTasks + 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 @ =0x02019204 + 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 @ =gTasks + 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 @ =0x02019204 + 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 @ =0x02019204 + 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 @ =gSprites + ldr r2, _080B1DB4 @ =0x02019204 + 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 @ =gSprites + ldr r0, _080B1DD8 @ =0x02019204 + 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 @ =sub_80B1DFC + movs r1, 0xF + bl CreateTask + ldr r2, _080B1DF8 @ =0x02019204 + 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 @ =gTasks + 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 @ =0x02016800 + ldr r2, _080B1E44 @ =0x06002000 + ldr r0, _080B1E48 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B1E4C @ =0x84000400 + 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 @ =0x02015800 + ldr r2, _080B1E98 @ =0x06002000 + ldr r0, _080B1E9C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B1EA0 @ =0x84000400 + 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 @ =0x02019204 + 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 @ =sub_80B1F4C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + cmp r4, 0 + ble _080B1F08 + ldr r7, _080B1EE8 @ =0x0000237e + lsls r0, r5, 24 + adds r4, r0, 0 + cmp r4, 0 + ble _080B1EF0 + movs r5, 0 + ldr r2, _080B1EEC @ =0x02019204 + 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 @ =0x02019204 + 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 @ =0x02019204 +_080B1F1E: + ldr r1, _080B1F48 @ =gTasks + 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 @ =gTasks + 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 @ =0x02019204 + 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 @ =0x02019260 + ldr r6, _080B2050 @ =gSprites + 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 @ =0x060100a0 + adds r1, r2 + ldr r2, _080B2058 @ =REG_BG0HOFS + bl CpuSet + ldrb r0, [r4, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldr r2, _080B205C @ =gUnknown_083CA33C + ldr r0, _080B2060 @ =gUnknown_02038696 + 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 @ =0x02019260 + 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 @ =gContestNextTurnNumbersGfx + adds r0, r1 + b _080B20BA + .align 2, 0 +_080B20B0: .4byte 0x02019260 +_080B20B4: .4byte gContestNextTurnNumbersGfx +_080B20B8: + ldr r0, _080B20C0 @ =gContestNextTurnRandomGfx +_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 @ =0x020192dd +_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 @ =gUnknown_02038696 + 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 @ =0x0600c028 + adds r1, r4, r2 + strh r0, [r1] + ldr r1, _080B2140 @ =0x0600c02a + adds r2, r4, r1 + adds r1, r0, 0x1 + strh r1, [r2] + ldr r1, _080B2144 @ =0x0600c068 + adds r2, r4, r1 + adds r1, r0, 0 + adds r1, 0x10 + strh r1, [r2] + ldr r2, _080B2148 @ =0x0600c06a + 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 @ =0x02019260 + 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 @ =REG_BG1CNT + 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 @ =gUnknown_030042C0 + movs r2, 0xF0 + strh r2, [r0] + ldr r0, _080B2258 @ =gUnknown_030041B4 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080B225C @ =REG_BG1HOFS + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080B2260 @ =0x0600f000 + movs r0, 0 + str r0, [sp] + ldr r0, _080B2264 @ =0x040000d4 + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080B2268 @ =0x85000400 + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080B226C @ =gUnknown_08D17C3C + 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 @ =gSprites + adds r7, r2, 0 + movs r5, 0x4 + ldr r3, _080B2274 @ =0x02019338 +_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 @ =REG_BG2CNT + 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 @ =REG_BG0CNT + 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 @ =0x06008000 + movs r3, 0x80 + lsls r3, 6 + ldr r0, _080B235C @ =gUnknown_030042C0 + mov r12, r0 + ldr r0, _080B2360 @ =gUnknown_030041B4 + mov r8, r0 + movs r5, 0 + ldr r1, _080B2364 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080B2368 @ =0x85000400 + 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 @ =0x0600f000 + movs r2, 0 + str r2, [sp] + ldr r0, _080B2364 @ =0x040000d4 + mov r3, sp + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _080B2368 @ =0x85000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + strh r2, [r0] + mov r3, r8 + strh r2, [r3] + ldr r2, _080B2370 @ =REG_BG1CNT + 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 @ =gSprites + adds r6, r3, 0 + ldr r3, _080B2378 @ =0x02019338 +_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 @ =gUnknown_030042C0 + movs r0, 0 + strh r0, [r1] + ldr r1, _080B23B0 @ =gUnknown_030041B4 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl PlaySE12WithPanning + ldr r1, _080B23B4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B23B8 @ =sub_80B23BC + 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 @ =gUnknown_030041B4 + 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 @ =gTasks + 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 @ =sub_80B2400 + 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 @ =gTasks + 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 @ =0x02019218 + ldr r3, _080B2474 @ =gUnknown_02038696 +_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 @ =gTasks + 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 @ =gUnknown_0203869A + ldrb r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080B24D0 + ldr r2, _080B24C4 @ =0x02019204 + 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 @ =sub_80C8C80 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B24CC @ =sub_80AD8DC + 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 @ =0x02019204 + 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 @ =sub_80B253C + 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 @ =gUnknown_030041B4 + ldrh r0, [r1] + adds r0, 0x7 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _080B252C + ldr r0, _080B2534 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B2538 @ =sub_80ADCDC + 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 @ =gTasks + 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 @ =sub_80B25A4 + 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 @ =gTasks + 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 @ =sub_80B2508 + 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 @ =gSprites +_080B25F6: + bl AllocOamMatrix + lsls r1, r6, 2 + ldr r2, _080B26B8 @ =0x02019338 + 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 @ =sub_80B26C8 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B26C0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r7, r9 + strh r7, [r1, 0x8] + ldr r2, _080B26C4 @ =0xfffffecc + 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 @ =gSprites + ldr r4, _080B2754 @ =0x02019338 + 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 @ =gTasks + 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 @ =0x02019338 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B2750 @ =gSprites + adds r0, r1 + bl FreeSpriteOamMatrix + adds r4, 0x1 + cmp r4, 0x3 + ble _080B271A + ldr r0, _080B275C @ =0xfffffecc + 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 @ =0x0000019b + 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 @ =0x02019260 + adds r0, r4 + ldrh r0, [r0, 0x6] + bl sub_80B2760 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080B27F4 @ =gUnknown_02038570 + 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 @ =gUnknown_02024E84 + 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 @ =gBaseStats + 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 @ =gUnknown_0202F7C4 + 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 @ =0x02019260 + adds r0, r4 + ldrb r5, [r0, 0x1B] + ldr r6, _080B287C @ =gUnknown_02038570 + 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 @ =gUnknown_0202F7BE + movs r0, 0xFF + b _080B28BC + .align 2, 0 +_080B2888: .4byte gUnknown_0202F7BE +_080B288C: + ldr r1, _080B2894 @ =gUnknown_0202F7BE + movs r0, 0 + b _080B28BC + .align 2, 0 +_080B2894: .4byte gUnknown_0202F7BE +_080B2898: + ldr r0, _080B28B0 @ =0x02019204 + adds r2, r0, 0 + adds r2, 0x5A + ldrb r1, [r2] + cmp r1, 0 + bne _080B28B8 + movs r0, 0x2 + strb r0, [r2] + ldr r0, _080B28B4 @ =gUnknown_0202F7C4 + strb r1, [r0] + b _080B28BE + .align 2, 0 +_080B28B0: .4byte 0x02019204 +_080B28B4: .4byte gUnknown_0202F7C4 +_080B28B8: + ldr r1, _080B28C8 @ =gUnknown_0202F7C4 + 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 @ =0x02019348 + 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 @ =0x02019348 + strb r4, [r6, 0x5] + ldr r5, _080B2928 @ =gUnknown_02038570 + 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 @ =SpriteCallbackDummy + bl object_new_hidden_with_callback + ldr r1, _080B295C @ =gUnknown_02024BE0 + strb r0, [r1, 0x3] + ldr r0, _080B2960 @ =gUnknown_02024C08 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B2964 @ =gSprites + 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 @ =gUnknown_02024BE0 + ldrb r0, [r0, 0x3] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080B29B0 @ =gSprites + 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 @ =gBattleMoves + 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 @ =_080B29DC + 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 @ =gUnknown_02024C08 + movs r0, 0x2 + b _080B2A70 + .align 2, 0 +_080B2A68: .4byte gUnknown_02024C08 +_080B2A6C: + ldr r1, _080B2A78 @ =gUnknown_02024C08 + 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 @ =gUnknown_02038690 + 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 @ =gUnknown_02038695 + 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 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080B2B16 + lsls r0, 2 + ldr r1, _080B2AE8 @ =_080B2AEC + 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 @ =gSaveBlock1 + lsrs r4, 19 + ldr r0, _080B2B9C @ =0x00002dfc + adds r1, r2, r0 + adds r1, r4, r1 + ldr r5, _080B2BA0 @ =gUnknown_02038570 + 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 @ =0x00002e04 + 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 @ =0x00002e07 + 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 @ =0x00002e12 + 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 @ =gUnknown_0203869C + ldrh r1, [r0] + ldr r0, _080B2BB4 @ =0x00002e06 + 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 @ =0x00002e06 + add r0, r8 + strb r7, [r0] + b _080B2C36 + .align 2, 0 +_080B2BC0: .4byte 0x00002e06 +_080B2BC4: + ldr r5, _080B2C14 @ =0x02015de0 + ldr r2, _080B2C18 @ =gUnknown_02038570 + 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 @ =gUnknown_0203869A + 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 @ =gLinkPlayers + 0x8 + 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 @ =0x02015de0 + 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 @ =gSaveBlock1 + 0x2DFC + 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 @ =gSaveBlock1 + 0x2DFC + 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 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080B2D14 + lsls r0, 2 + ldr r1, _080B2CEC @ =_080B2CF0 + 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 @ =gSaveBlock1 + ldr r4, _080B2D4C @ =gUnknown_083CC5D0 + ldr r1, _080B2D50 @ =0x00002dfc + 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 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/item.s b/asm/item.s new file mode 100644 index 000000000..7616abe97 --- /dev/null +++ b/asm/item.s @@ -0,0 +1,1308 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start CopyItemName +CopyItemName: @ 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 @ =gOtherText_Berry2 + adds r0, r4, 0 + bl StringAppend + b _080A9258 + .align 2, 0 +_080A9248: .4byte gOtherText_Berry2 +_080A924C: + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy +_080A9258: + pop {r4} + pop {r0} + bx r0 + thumb_func_end CopyItemName + + thumb_func_start CountUsedBagPocketSlots +CountUsedBagPocketSlots: @ 80A9260 + push {lr} + lsls r0, 24 + movs r2, 0 + ldr r1, _080A9284 @ =gBagPockets + 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 gBagPockets +_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 CountUsedBagPocketSlots + + thumb_func_start IsBagPocketNonEmpty +IsBagPocketNonEmpty: @ 80A929C + push {lr} + lsls r0, 24 + movs r2, 0 + ldr r1, _080A92C0 @ =gBagPockets + 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 gBagPockets +_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 CheckBagHasItem +CheckBagHasItem: @ 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_GetPocket + lsls r0, 24 + cmp r0, 0 + bne _080A92F0 + b _080A9336 +_080A92EC: + movs r0, 0x1 + b _080A9338 +_080A92F0: + adds r0, r5, 0 + bl ItemId_GetPocket + subs r0, 0x1 + lsls r0, 24 + movs r3, 0 + ldr r6, _080A9340 @ =gBagPockets + 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 gBagPockets + thumb_func_end CheckBagHasItem + + thumb_func_start CheckBagHasSpace +CheckBagHasSpace: @ 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_GetPocket + lsls r0, 24 + cmp r0, 0 + beq _080A9408 + adds r0, r6, 0 + bl ItemId_GetPocket + subs r0, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r5, _080A940C @ =0x000003e7 + cmp r1, 0x3 + beq _080A9376 + movs r5, 0x63 +_080A9376: + movs r3, 0 + ldr r0, _080A9410 @ =gBagPockets + 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 gBagPockets +_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 CheckBagHasSpace + + thumb_func_start AddBagItem +AddBagItem: @ 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_GetPocket + lsls r0, 24 + cmp r0, 0 + beq _080A9510 + mov r0, r8 + bl ItemId_GetPocket + subs r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A94F8 @ =gBagPockets + 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 @ =0x000003e7 + 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 @ =gBagPockets + 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 @ =gBagPockets + 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 gBagPockets +_080A94FC: .4byte 0x000003e7 +_080A9500: + strh r0, [r3, 0x2] + ldr r0, _080A950C @ =gBagPockets + lsls r1, r6, 3 + adds r1, r0 + b _080A951A + .align 2, 0 +_080A950C: .4byte gBagPockets +_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 AddBagItem + + thumb_func_start RemoveBagItem +RemoveBagItem: @ 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_GetPocket + lsls r0, 24 + cmp r0, 0 + beq _080A959E + cmp r6, 0 + beq _080A959E + adds r0, r6, 0 + bl ItemId_GetPocket + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r5, 0 + ldr r1, _080A95A4 @ =gBagPockets + 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 gBagPockets +_080A95A8: + ldr r0, _080A95DC @ =gBagPockets + mov r2, r12 + lsls r1, r2, 3 + adds r5, r1, r0 + ldr r2, _080A95E0 @ =gUnknown_02038560 + 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 gBagPockets +_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 RemoveBagItem + + thumb_func_start GetPocketByItemId +GetPocketByItemId: @ 80A9670 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl ItemId_GetPocket + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end GetPocketByItemId + + thumb_func_start ClearItemSlots +ClearItemSlots: @ 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 ClearItemSlots + + thumb_func_start FindFreePCItemSlot +FindFreePCItemSlot: @ 80A96AC + push {lr} + movs r1, 0 + ldr r3, _080A96CC @ =gSaveBlock1 + 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 FindFreePCItemSlot + + thumb_func_start CountUsedPCItemSlots +CountUsedPCItemSlots: @ 80A96E4 + push {r4,lr} + movs r2, 0 + movs r1, 0 + ldr r4, _080A9714 @ =gSaveBlock1 + 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 CountUsedPCItemSlots + + thumb_func_start CheckPCHasItem +CheckPCHasItem: @ 80A9718 + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r1, 16 + movs r3, 0 + ldr r7, _080A9744 @ =gSaveBlock1 + movs r6, 0x93 + lsls r6, 3 + ldr r5, _080A9748 @ =0x0000049a +_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 CheckPCHasItem + + thumb_func_start AddPCItem +AddPCItem: @ 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 @ =gSaveBlock1 + 0x498 + mov r0, sp + movs r2, 0xC8 + bl memcpy + movs r5, 0 + ldr r0, _080A97C8 @ =0x0000fc19 + 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 @ =0x000003e7 + 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 FindFreePCItemSlot + 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 @ =gSaveBlock1 + 0x498 + 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 AddPCItem + + thumb_func_start RemovePCItem +RemovePCItem: @ 80A97F4 + push {lr} + lsls r0, 24 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080A9824 @ =gSaveBlock1 + lsrs r0, 22 + adds r3, r0, r2 + ldr r0, _080A9828 @ =0x0000049a + 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 CompactPCItems +_080A9820: + pop {r0} + bx r0 + .align 2, 0 +_080A9824: .4byte gSaveBlock1 +_080A9828: .4byte 0x0000049a + thumb_func_end RemovePCItem + + thumb_func_start CompactPCItems +CompactPCItems: @ 80A982C + push {r4-r7,lr} + movs r2, 0 + ldr r0, _080A987C @ =gSaveBlock1 + 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 @ =gSaveBlock1 + 0x498 + 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 CompactPCItems + + thumb_func_start SwapRegisteredBike +SwapRegisteredBike: @ 80A9884 + push {lr} + ldr r0, _080A98A0 @ =gSaveBlock1 + ldr r1, _080A98A4 @ =0x00000496 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r3, _080A98A8 @ =0x00000103 + 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 SwapRegisteredBike + + thumb_func_start SanitizeItemId +SanitizeItemId: @ 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 SanitizeItemId + + thumb_func_start ItemId_GetItem +ItemId_GetItem: @ 80A98D4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl SanitizeItemId + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2C + muls r0, r1 + ldr r1, _080A98F0 @ =gItems + adds r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_080A98F0: .4byte gItems + thumb_func_end ItemId_GetItem + + thumb_func_start ItemId_GetId +ItemId_GetId: @ 80A98F4 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9914 @ =gItems + bl SanitizeItemId + 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_GetId + + thumb_func_start ItemId_GetPrice +ItemId_GetPrice: @ 80A9918 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9938 @ =gItems + bl SanitizeItemId + 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_GetPrice + + thumb_func_start ItemId_GetHoldEffect +ItemId_GetHoldEffect: @ 80A993C + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A995C @ =gItems + bl SanitizeItemId + 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_GetHoldEffect + + thumb_func_start ItemId_GetHoldEffectParam +ItemId_GetHoldEffectParam: @ 80A9960 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9980 @ =gItems + bl SanitizeItemId + 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_GetHoldEffectParam + + thumb_func_start ItemId_GetDescription +ItemId_GetDescription: @ 80A9984 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A99A4 @ =gItems + bl SanitizeItemId + 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_GetDescription + + thumb_func_start ItemId_CopyDescription +ItemId_CopyDescription: @ 80A99A8 + push {r4-r6,lr} + adds r6, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0x1 + ldr r4, _080A99E4 @ =gItems + lsls r0, 16 + lsrs r0, 16 + bl SanitizeItemId + 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 ItemId_CopyDescription + + thumb_func_start ItemId_GetImportance +ItemId_GetImportance: @ 80A9A08 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A28 @ =gItems + bl SanitizeItemId + 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_GetImportance + + thumb_func_start ItemId_GetUnknownValue +ItemId_GetUnknownValue: @ 80A9A2C + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A4C @ =gItems + bl SanitizeItemId + 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_GetUnknownValue + + thumb_func_start ItemId_GetPocket +ItemId_GetPocket: @ 80A9A50 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A70 @ =gItems + bl SanitizeItemId + 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_GetPocket + + thumb_func_start ItemId_GetType +ItemId_GetType: @ 80A9A74 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9A94 @ =gItems + bl SanitizeItemId + 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_GetType + + thumb_func_start ItemId_GetFieldFunc +ItemId_GetFieldFunc: @ 80A9A98 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9AB8 @ =gItems + bl SanitizeItemId + 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_GetFieldFunc + + thumb_func_start ItemId_GetBattleUsage +ItemId_GetBattleUsage: @ 80A9ABC + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9ADC @ =gItems + bl SanitizeItemId + 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_GetBattleUsage + + thumb_func_start ItemId_GetBattleFunc +ItemId_GetBattleFunc: @ 80A9AE0 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9B00 @ =gItems + bl SanitizeItemId + 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_GetBattleFunc + + thumb_func_start ItemId_GetSecondaryId +ItemId_GetSecondaryId: @ 80A9B04 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080A9B24 @ =gItems + bl SanitizeItemId + 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_GetSecondaryId + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s new file mode 100644 index 000000000..d35feb54f --- /dev/null +++ b/asm/item_menu.s @@ -0,0 +1,9869 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + 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 @ =gBG1TilemapBuffer + ldr r2, _080A316C @ =0x06002000 + ldr r0, _080A3170 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r3, _080A3174 @ =0x80000400 + str r3, [r0, 0x8] + ldr r2, [r0, 0x8] + movs r2, 0x80 + lsls r2, 4 + adds r1, r2 + ldr r2, _080A3178 @ =0x06006000 + 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 @ =gMain + ldr r1, _080A319C @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x10 + bls _080A318E + b _080A34A8 +_080A318E: + lsls r0, 2 + ldr r1, _080A31A0 @ =_080A31A4 + 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 @ =gMain + ldr r0, _080A3204 @ =0x0000043c + 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 @ =0x02000000 + ldr r1, _080A3224 @ =0x0001ffff + 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 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _080A3244 @ =gMain + ldr r0, _080A3248 @ =0x0000043c + 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 @ =gMain + ldr r0, _080A326C @ =0x0000043c + adds r1, r0 + b _080A346A + .align 2, 0 +_080A3268: .4byte gMain +_080A326C: .4byte 0x0000043c +_080A3270: + ldr r0, _080A3278 @ =gWindowConfig_81E6DFC + bl SetUpWindowConfig + b _080A3464 + .align 2, 0 +_080A3278: .4byte gWindowConfig_81E6DFC +_080A327C: + ldr r0, _080A328C @ =gWindowConfig_81E6DFC + bl MultistepInitMenuWindowBegin + ldr r1, _080A3290 @ =gMain + ldr r0, _080A3294 @ =0x0000043c + 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 LoadScrollIndicatorPalette + movs r0, 0 + movs r1, 0xAC + movs r2, 0xC + bl CreateVerticalScrollIndicators + movs r0, 0x1 + movs r1, 0xAC + movs r2, 0x94 + bl CreateVerticalScrollIndicators + movs r0, 0x2 + movs r1, 0x1C + movs r2, 0x58 + bl CreateVerticalScrollIndicators + movs r0, 0x3 + movs r1, 0x64 + movs r2, 0x58 + bl CreateVerticalScrollIndicators + 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 @ =gUnknown_03000701 + 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 @ =gMain + ldr r0, _080A3324 @ =0x0000043c + adds r1, r0 + b _080A346A + .align 2, 0 +_080A331C: .4byte gUnknown_03000701 +_080A3320: .4byte gMain +_080A3324: .4byte 0x0000043c +_080A3328: + ldr r1, _080A3378 @ =gUnknown_0203855A + movs r0, 0x10 + strb r0, [r1] + ldr r4, _080A337C @ =gBG2TilemapBuffer + ldr r5, _080A3380 @ =gUnknown_02038559 + 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 @ =gBagPockets + 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 @ =gUnknown_03005D24 + 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 gBagPockets +_080A3388: .4byte gUnknown_03005D24 +_080A338C: + ldr r0, _080A33D4 @ =0x0000ffff + movs r1, 0 + movs r2, 0x7 + bl sub_80A48E8 + ldr r1, _080A33D8 @ =gUnknown_03005D10 + ldr r4, _080A33DC @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + bl ItemListMenu_InitDescription + bl ItemListMenu_InitMenu + ldr r1, _080A33E4 @ =gUnknown_0203855B + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _080A33E8 @ =gUnknown_0203855C + movs r0, 0 + strb r0, [r1] + ldr r1, _080A33EC @ =gMain + ldr r0, _080A33F0 @ =0x0000043c + 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 CreateBagSprite + movs r0, 0 + bl CreateBagPokeballSprite + bl sub_80A3740 + b _080A3464 +_080A3404: + ldr r3, _080A3444 @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _080A3448 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _080A344C @ =REG_DISPSTAT + 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 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r1, _080A3454 @ =gMain + ldr r0, _080A3458 @ =0x0000043c + 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 @ =gMain + ldr r2, _080A3478 @ =0x0000043c + 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 @ =sub_80A3134 + bl SetVBlankCallback + ldr r0, _080A34A4 @ =sub_80A3118 + 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 @ =gUnknown_03000700 + 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 @ =REG_BG2CNT + ldr r2, _080A3518 @ =0x00000c06 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080A351C @ =0x00000405 + 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 @ =0x02000000 + ldr r1, _080A3540 @ =0x0001ffff + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bls _080A3530 + b _080A3624 +_080A3530: + lsls r0, 2 + ldr r1, _080A3544 @ =_080A3548 + 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 @ =gBagScreen_Gfx + ldr r1, _080A356C @ =0x06004000 + bl LZDecompressVram + b _080A35EA + .align 2, 0 +_080A3568: .4byte gBagScreen_Gfx +_080A356C: .4byte 0x06004000 +_080A3570: + ldr r0, _080A3580 @ =gUnknown_08E77004 + ldr r1, _080A3584 @ =gBG2TilemapBuffer + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + b _080A35EA + .align 2, 0 +_080A3580: .4byte gUnknown_08E77004 +_080A3584: .4byte gBG2TilemapBuffer +_080A3588: + ldr r0, _080A35A4 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _080A3598 + ldr r0, _080A35A8 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x7 + bne _080A35B0 +_080A3598: + ldr r0, _080A35AC @ =gBagScreenMale_Pal + 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 @ =gBagScreenFemale_Pal + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + b _080A35EA + .align 2, 0 +_080A35BC: .4byte gBagScreenFemale_Pal +_080A35C0: + ldr r0, _080A35D8 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _080A35D0 + ldr r0, _080A35DC @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x7 + bne _080A35E4 +_080A35D0: + ldr r0, _080A35E0 @ =gUnknown_083C1CC8 + bl LoadCompressedObjectPic + b _080A35EA + .align 2, 0 +_080A35D8: .4byte gSaveBlock2 +_080A35DC: .4byte gUnknown_03000701 +_080A35E0: .4byte gUnknown_083C1CC8 +_080A35E4: + ldr r0, _080A35F8 @ =gUnknown_083C1CD0 + bl LoadCompressedObjectPic +_080A35EA: + ldr r1, _080A35FC @ =0x02000000 + ldr r0, _080A3600 @ =0x0001ffff + 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 @ =gUnknown_083C1CD8 + bl LoadCompressedObjectPalette + ldr r0, _080A361C @ =0x02000000 + ldr r1, _080A3620 @ =0x0001ffff + 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 @ =gUnknown_03000701 + ldr r5, _080A364C @ =gUnknown_03005D10 +_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 @ =gUnknown_02038559 + ldr r3, _080A36B4 @ =gUnknown_03005D10 + 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 @ =gBagPockets +_080A371A: + lsls r1, r4, 3 + adds r1, r5 + ldr r0, [r1] + ldrb r1, [r1, 0x4] + bl ClearItemSlots + 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 gBagPockets + thumb_func_end sub_80A3714 + + thumb_func_start sub_80A3740 +sub_80A3740: @ 80A3740 + push {lr} + sub sp, 0x4 + ldr r1, _080A376C @ =gUnknown_083C1704 + 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 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0 + bne _080A37B6 + ldr r3, _080A37A0 @ =gUnknown_03000704 + ldr r2, _080A37A4 @ =gUnknown_02038559 + movs r1, 0 + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldr r1, _080A37A8 @ =gUnknown_083C1690 + adds r0, r1 + str r0, [r3] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x3 + beq _080A37B0 + ldr r1, _080A37AC @ =gUnknown_02038564 + 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 @ =gUnknown_02038564 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080A37F4 @ =sub_80A50C8 + 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 @ =gUnknown_0203855A + ldrb r5, [r6] + cmp r5, 0xF + bhi _080A3868 + adds r0, r5, 0x1 + strb r0, [r6] + ldr r4, _080A3858 @ =gBG2TilemapBuffer + ldrb r2, [r6] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x4F + bl sub_80A396C + ldr r0, _080A385C @ =gUnknown_02038559 + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6] + lsrs r2, 1 + ldr r3, _080A3860 @ =gTasks + 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 @ =gUnknown_02038558 + 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 @ =gLinkOpen + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A38B4 + ldr r1, _080A38A4 @ =gUnknown_03005D10 + ldr r0, _080A38A8 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + ldr r4, _080A38B0 @ =gUnknown_02038562 + ldrb r1, [r4] + bl ItemListMenu_ChangeDescription + 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 @ =gUnknown_02038562 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _080A38F2 + ldr r5, _080A393C @ =gUnknown_03005D10 + adds r4, r1, 0 +_080A38C0: + ldr r0, _080A3940 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + ldrb r1, [r4] + bl ItemListMenu_ChangeDescription + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bls _080A38C0 +_080A38F2: + ldr r0, _080A3938 @ =gUnknown_02038562 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080A3932 + ldr r1, _080A3948 @ =gUnknown_0203855A + movs r0, 0x10 + strb r0, [r1] + ldr r1, _080A394C @ =gUnknown_0203855B + ldr r0, _080A3940 @ =gUnknown_02038559 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _080A3950 @ =sub_80A4F68 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl sub_80A37C0 + adds r0, r7, 0 + bl DestroyTask + bl ItemListMenu_InitMenu + 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 @ =gUnknown_08E77004 + 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 @ =gUnknown_08E96EC8 + 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 @ =gUnknown_08E96EC8 + 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 @ =gUnknown_08E96EC8 + 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 @ =0x0000024a + ldr r0, _080A3AE8 @ =0x0000107d + 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 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + ldr r1, _080A3BAC @ =gBagPockets + 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 @ =gUnknown_0203855A + 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 @ =gUnknown_0203855B + movs r0, 0x6 + strb r0, [r1] + ldr r0, _080A3BB8 @ =gUnknown_02038562 + strb r4, [r0] + ldr r4, _080A3BBC @ =sub_80A37F8 + 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 @ =gTasks + 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 gBagPockets +_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 @ =gUnknown_03005D10 + lsls r0, r6, 2 + adds r3, r0, r1 + movs r0, 0 + strb r0, [r3, 0x2] + movs r4, 0 + ldr r0, _080A3D04 @ =gBagPockets + 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 gBagPockets + 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 @ =gUnknown_03005D10 + 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 @ =gUnknown_03005D10 + mov r9, r1 + ldr r2, _080A3DF8 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + ldr r1, [r7] + lsls r6, r2, 2 + adds r3, r6, r1 + ldr r2, _080A3E00 @ =gTasks + 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 @ =gSaveBlock1 + ldr r1, _080A3E08 @ =0x00000496 + 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 @ =gUnknown_02038559 + ldrb r0, [r0] + bl sub_80A3CA8 +_080A3DE0: + ldr r0, _080A3DF8 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D10 + ldr r2, _080A3E64 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + 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 @ =gUnknown_02038559 + ldrb r0, [r0] + bl sub_80A3CA8 +_080A3E52: + ldr r0, _080A3E64 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + 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 @ =gTasks + 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 @ =gUnknown_03005D10 + ldr r1, _080A3EF0 @ =gUnknown_02038559 + 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 ItemListMenu_InitMenu + 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 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r2, _080A3F48 @ =gUnknown_03005D10 + ldr r0, _080A3F4C @ =gUnknown_02038559 + 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 @ =gTasks + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + adds r3, r1 + ldr r5, _080A3F98 @ =gUnknown_03005D10 + ldr r4, _080A3F9C @ =gUnknown_02038559 + 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 @ =gBG2TilemapBuffer + 0xB4 + 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 @ =gBG2TilemapBuffer + 0xB4 + 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 @ =gBG2TilemapBuffer + 0xB4 + 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 @ =gUnknown_03005D10 + ldr r3, _080A4118 @ =gUnknown_02038559 + 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 @ =gSaveBlock1 + 0x496 +_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 @ =gUnknown_03005D24 + 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 @ =gUnknown_03005D10 + ldr r0, _080A4160 @ =gUnknown_02038559 + 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 @ =gStringVar1 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r0, 0x1C + ldrsh r1, [r1, r0] + ldr r3, _080A42A8 @ =gUnknown_03005D10 + ldr r0, _080A42AC @ =gUnknown_02038559 + 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 @ =gUnknown_02038540 + mov r8, r0 + ldr r1, _080A4348 @ =gUnknown_03005D10 + ldr r0, _080A434C @ =gUnknown_02038559 + 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 @ =gUnknown_03000701 + 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 @ =gStringVar1 + ldr r1, _080A4358 @ =gOtherText_CloseBag + 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 @ =gBG2TilemapBuffer + 0x1C + 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 @ =gUnknown_03005D24 + mov r8, r0 + b _080A441A + .align 2, 0 +_080A43A0: .4byte gUnknown_03005D24 +_080A43A4: + ldr r1, _080A4440 @ =gUnknown_03005D10 + ldr r0, _080A4444 @ =gUnknown_02038559 + 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 @ =gStringVar1 + 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_GetItem + 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 @ =gStringVar1 + 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 @ =gSaveBlock1 + 0x496 + mov r9, r0 + b _080A4520 + .align 2, 0 +_080A446C: .4byte gSaveBlock1 + 0x496 +_080A4470: + ldr r1, _080A44E8 @ =gUnknown_03005D10 + ldr r0, _080A44EC @ =gUnknown_02038559 + 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 @ =gStringVar1 + 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 @ =gUnknown_03005D24 + mov r8, r0 + ldr r0, [r0] + lsls r4, 2 + adds r0, r4, r0 + ldrh r0, [r0] + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r7, 0 + movs r2, 0x60 + movs r3, 0 + bl sub_8072C74 + ldr r0, _080A44F0 @ =gStringVar1 + movs r1, 0xE + adds r2, r5, 0 + bl MenuPrint + ldr r0, _080A44F8 @ =gUnknown_02038558 + 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 @ =gBG2TilemapBuffer + mov r9, r0 + b _080A46C2 + .align 2, 0 +_080A456C: .4byte gBG2TilemapBuffer +_080A4570: + ldr r1, _080A461C @ =gUnknown_03005D10 + ldr r0, _080A4620 @ =gUnknown_02038559 + 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 @ =gStringVar1 + 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 @ =gUnknown_03005D24 + 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 @ =gMoveNames + adds r2, r0 + mov r1, r10 + ldr r0, [r1] + adds r0, r7, r0 + ldr r3, _080A4630 @ =0xfffffee0 + 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 @ =0x0000105d + 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 @ =0xfffffeae + 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 @ =gMoveNames + adds r1, r0 + adds r0, r6, 0 + movs r2, 0x78 + movs r3, 0 + bl sub_8072C74 +_080A46AE: + ldr r0, _080A46F8 @ =gStringVar1 + 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 @ =gBG2TilemapBuffer + mov r10, r0 + ldr r1, _080A4728 @ =gStringVar2 + mov r9, r1 + ldr r0, _080A472C @ =gUnknown_03005D24 + mov r8, r0 + b _080A47B4 + .align 2, 0 +_080A4724: .4byte gBG2TilemapBuffer +_080A4728: .4byte gStringVar2 +_080A472C: .4byte gUnknown_03005D24 +_080A4730: + ldr r1, _080A47DC @ =gUnknown_03005D10 + ldr r0, _080A47E0 @ =gUnknown_02038559 + 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 @ =gStringVar1 + 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 CopyItemName + 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 @ =gStringVar1 + 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 @ =gUnknown_02038559 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _080A4852 + lsls r0, 2 + ldr r1, _080A480C @ =_080A4810 + 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 @ =gUnknown_03005D10 + ldr r0, _080A4874 @ =gUnknown_02038559 + 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 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x5 + beq _080A48B0 + ldr r1, _080A48A8 @ =gUnknown_03005D10 + ldr r0, _080A48AC @ =gUnknown_02038559 + 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 @ =gUnknown_03005D10 + ldr r0, _080A48D4 @ =gUnknown_02038559 + 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 ItemListMenu_InitDescription +ItemListMenu_InitDescription: @ 80A490C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r1, _080A4960 @ =gUnknown_03005D10 + ldr r0, _080A4964 @ =gUnknown_02038559 + 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 @ =gOtherText_ReturnTo + 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 @ =gUnknown_0840E740 + ldr r0, _080A4970 @ =gUnknown_03000701 + 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_GetDescription + 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 ItemListMenu_InitDescription + + thumb_func_start ItemListMenu_ChangeDescription +ItemListMenu_ChangeDescription: @ 80A49AC + push {r4,r5,lr} + sub sp, 0x64 + adds r4, r1, 0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080A49E8 @ =gUnknown_03005D10 + ldr r0, _080A49EC @ =gUnknown_02038559 + 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 @ =gOtherText_ReturnTo + 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 @ =gUnknown_0840E740 + ldr r0, _080A4A14 @ =gUnknown_03000701 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x4 + movs r2, 0x78 +_080A4A08: + movs r3, 0 + bl MenuPrint_PixelCoords + 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 ItemId_CopyDescription + 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 MenuPrint_PixelCoords +_080A4A4C: + add sp, 0x64 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ItemListMenu_ChangeDescription + + 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 MenuPrint_PixelCoords +_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 @ =gTasks + 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 @ =gUnknown_0203855C + 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 @ =gUnknown_03005D10 + ldr r1, _080A4B54 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D10 + ldr r1, _080A4B8C @ =gUnknown_02038559 + 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 @ =0x00000103 + cmp r4, r0 + beq _080A4BAE + adds r0, 0xD + cmp r4, r0 + bne _080A4BBC +_080A4BAE: + ldr r0, _080A4BB8 @ =gOtherText_Walk + 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 @ =gUnknown_083C1640 + ldr r0, _080A4BE0 @ =gUnknown_03000704 + 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 @ =gOtherText_Check +_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 @ =gUnknown_02038564 + 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 @ =gUnknown_03000701 + 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 @ =gUnknown_02038564 + ldrb r0, [r0] + cmp r6, r0 + bcs _080A4CA0 + ldr r4, _080A4C60 @ =gUnknown_083C1640 +_080A4C4C: + cmp r6, 0 + bne _080A4C68 + ldr r0, _080A4C64 @ =word_203855E + 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 @ =gUnknown_03000704 + 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 @ =gUnknown_02038564 + ldrb r0, [r0] + cmp r6, r0 + bcc _080A4C4C +_080A4CA0: + ldr r0, _080A4CCC @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A4CD4 + ldr r0, _080A4CC8 @ =gUnknown_02038564 + ldrb r3, [r0] + ldr r0, _080A4CD0 @ =gUnknown_03000700 + 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 @ =gUnknown_02038564 + 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 @ =gUnknown_083C1640 +_080A4D1E: + ldr r0, _080A4D9C @ =gUnknown_03000704 + 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 @ =gUnknown_02038564 + ldrb r0, [r0] + cmp r6, r0 + bcc _080A4D1E +_080A4D6E: + ldr r0, _080A4DA0 @ =gUnknown_02038564 + 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 @ =gTasks + 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 @ =gBG1TilemapBuffer + 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 @ =gBG2TilemapBuffer + lsls r4, 24 + asrs r4, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A3B04 + ldr r0, _080A4F08 @ =gUnknown_02038559 + ldrb r1, [r0] + adds r0, r5, 0 + bl sub_80A3AC0 + bl sub_80A3770 + bl sub_80A7C64 + adds r0, r6, 0 + bl CreateBagPokeballSprite + 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 @ =gUnknown_03000701 + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4F60 + ldr r4, _080A4F3C @ =gMain + 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 @ =gMain + ldrh r0, [r0, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A4FE8 + ldr r1, _080A4FB0 @ =gUnknown_03005D10 + ldr r0, _080A4FB4 @ =gUnknown_02038559 + 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 @ =gLinkOpen + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A50AE + ldr r1, _080A4FE4 @ =gMain + 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 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x5 + beq _080A502C + ldr r1, _080A5024 @ =gUnknown_03005D10 + ldr r0, _080A5028 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D10 + ldr r0, _080A505C @ =gUnknown_02038559 + 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 @ =gLinkOpen + ldrb r0, [r0] + cmp r0, 0x1 + bne _080A50C0 + ldr r1, _080A5084 @ =gMain + 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 @ =gTasks + 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 @ =sub_80A4F68 + 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 @ =gTasks + 0x8 + adds r5, r0, r1 + ldr r0, _080A514C @ =gPaletteFade + 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 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080A5190 + ldr r3, _080A5154 @ =gUnknown_02038559 + ldrb r0, [r3] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A5190 + ldr r0, _080A5158 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _080A5190 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A5160 + ldr r1, _080A515C @ =gUnknown_03005D10 + 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 gTasks + 0x8 +_080A514C: .4byte gPaletteFade +_080A5150: .4byte gMain +_080A5154: .4byte gUnknown_02038559 +_080A5158: .4byte gUnknown_03000701 +_080A515C: .4byte gUnknown_03005D10 +_080A5160: + ldr r1, _080A5184 @ =gUnknown_03005D10 + 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 @ =gUnknown_03005D10 + ldr r6, _080A51D8 @ =gUnknown_02038559 + 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 @ =word_203855E + strh r1, [r0] + ldr r1, _080A51E0 @ =gUnknown_083C16BC + ldr r0, _080A51E4 @ =gUnknown_03000701 + 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 @ =gUnknown_02038560 + 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 @ =word_203855E + ldrb r0, [r2] + ldr r1, _080A5258 @ =gUnknown_03005D24 + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] + ldr r1, _080A525C @ =gUnknown_083C16BC + ldr r0, _080A5260 @ =gUnknown_03000701 + 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 @ =gUnknown_03000701 + ldrb r0, [r2] + cmp r0, 0x5 + beq _080A52B6 + ldr r0, _080A52A8 @ =word_203855E + strh r1, [r0] + ldr r1, _080A52AC @ =gUnknown_083C16BC + 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 @ =gTasks + 0x8 + adds r1, r0 + ldr r0, _080A52F8 @ =gMain + 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 gTasks + 0x8 +_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 @ =gTasks + 0x8 + adds r4, r1, r2 + ldr r1, _080A53A0 @ =gUnknown_02038560 + ldrb r1, [r1] + ldr r2, _080A53A4 @ =gUnknown_03005D24 + 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 @ =gUnknown_02038559 + 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 gTasks + 0x8 +_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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A53F4 @ =gUnknown_02038563 + 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 @ =gUnknown_03000701 + movs r1, 0 + strb r1, [r0] + ldr r0, _080A5410 @ =sub_80A53CC + 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 sub_80A78A0 + cmp r0, 0 + bne _080A5426 + b _080A5552 +_080A5426: + ldr r2, _080A5460 @ =gMain + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A546C + ldr r4, _080A5464 @ =gUnknown_03000700 + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5440 + b _080A5552 +_080A5440: + ldrb r1, [r4] + ldr r0, _080A5468 @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5552 + ldrb r1, [r4] + ldr r0, _080A5498 @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + ldrb r0, [r4] + cmp r0, 0x1 + bls _080A5552 + adds r1, r0, 0 + ldr r0, _080A54C8 @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + ldrb r0, [r4] + cmp r0, 0x1 + bhi _080A5552 + adds r1, r0, 0 + ldr r0, _080A54FC @ =gUnknown_03000704 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r1, _080A5574 @ =gUnknown_03005D10 + ldr r0, _080A5578 @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r1, _080A5580 @ =gUnknown_083C1640 + ldr r0, _080A5584 @ =gUnknown_03000704 + 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 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A55E0 + ldr r0, _080A558C @ =gUnknown_03000700 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r0, _080A55C4 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r1, _080A55C8 @ =gUnknown_083C1640 + ldr r0, _080A55CC @ =gUnknown_03000700 + ldrb r2, [r0] + ldr r0, _080A55D0 @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + 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 @ =gMain + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A5648 + ldr r4, _080A5640 @ =gUnknown_03000700 + ldrb r0, [r4] + cmp r0, 0 + bne _080A561E + b _080A5736 +_080A561E: + adds r1, r0, 0 + ldr r0, _080A5644 @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + ldrb r1, [r4] + ldr r0, _080A5678 @ =gUnknown_02038564 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _080A5736 + cmp r1, 0x2 + beq _080A5736 + ldr r0, _080A567C @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + ldrb r0, [r4] + cmp r0, 0x2 + bls _080A5736 + adds r1, r0, 0 + ldr r0, _080A56AC @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + ldrb r0, [r4] + cmp r0, 0x2 + bhi _080A5736 + adds r1, r0, 0 + ldr r0, _080A56E0 @ =gUnknown_03000704 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r1, _080A5750 @ =gUnknown_03005D10 + ldr r0, _080A5754 @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r1, _080A575C @ =gUnknown_083C1640 + ldr r0, _080A5760 @ =gUnknown_03000704 + 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 @ =gUnknown_03000700 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] + ldr r0, _080A579C @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r1, _080A57A0 @ =gUnknown_083C1640 + ldr r0, _080A57A4 @ =gUnknown_03000700 + ldrb r2, [r0] + ldr r0, _080A57A8 @ =gUnknown_03000704 + 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 @ =gUnknown_03000704 + ldr r0, _080A57F0 @ =gUnknown_02038559 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + ldr r4, _080A57F4 @ =gUnknown_083C16AE + adds r1, r4 + str r1, [r5] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bne _080A57FC + ldr r1, _080A57F8 @ =gUnknown_02038564 + 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 @ =word_203855E + 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 @ =gUnknown_02038564 + 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 @ =gUnknown_02038564 + movs r0, 0x2 + strb r0, [r1] + movs r5, 0x7 +_080A582C: + adds r6, r1, 0 + ldr r0, _080A5884 @ =gBG1TilemapBuffer + 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 sub_80A78A0 + cmp r0, 0 + beq _080A5988 + ldr r2, _080A58B8 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080A58C0 + ldr r4, _080A58BC @ =gUnknown_03000700 + 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 @ =gUnknown_03000700 + ldrb r1, [r4] + ldr r0, _080A58F0 @ =gUnknown_02038564 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x1C] + ldr r1, _080A594C @ =gUnknown_03005D10 + ldr r0, _080A5950 @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r1, _080A5958 @ =gUnknown_083C1640 + ldr r0, _080A595C @ =gUnknown_03000700 + ldrb r2, [r0] + ldr r0, _080A5960 @ =gUnknown_03000704 + 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 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r0, _080A5994 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r0, _080A5998 @ =gUnknown_083C1640 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A59C8 @ =sub_805469C + lsrs r2, r3, 16 + movs r4, 0 + strh r2, [r1, 0x18] + strh r3, [r1, 0x1A] + ldr r1, _080A59CC @ =gUnknown_03005CE0 + 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 @ =gUnknown_03000700 + movs r0, 0 + strb r0, [r1] + ldr r7, _080A5A40 @ =gUnknown_03000701 + ldrb r0, [r7] + cmp r0, 0x5 + bne _080A59E8 + movs r0, 0x1 + strb r0, [r1] +_080A59E8: + ldr r1, _080A5A44 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r6, r0, r1 + ldr r3, _080A5A48 @ =gUnknown_03005D10 + ldr r2, _080A5A4C @ =gUnknown_02038559 + 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 @ =sub_80A5888 + 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 @ =gBG1TilemapBuffer + bl sub_80A4BF0 + ldr r0, _080A5A80 @ =gUnknown_02038559 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _080A5A6E + ldr r0, _080A5A84 @ =gUnknown_03000701 + ldrb r0, [r0] + cmp r0, 0x5 + bne _080A5A90 +_080A5A6E: + ldr r0, _080A5A88 @ =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A5A8C @ =sub_80A5414 + 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 @ =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A5AA8 @ =sub_80A5600 +_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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5AE0 @ =sub_80A5B00 + 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 @ =gTasks + 0x8 + adds r2, r0, r1 + ldr r0, _080A5B3C @ =gPaletteFade + 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 gTasks + 0x8 +_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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A5B64 @ =gUnknown_02038563 + 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 @ =word_203855E + ldrh r0, [r5] + bl ItemId_GetFieldFunc + 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_GetType + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r0, _080A5BE4 @ =gUnknown_02038559 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + beq _080A5BEC + ldr r0, _080A5BE8 @ =word_203855E + ldrh r0, [r0] + bl ItemId_GetFieldFunc + 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 @ =gOtherText_NoPokemon + ldr r2, _080A5C20 @ =sub_80A5C48 + 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 ItemListMenu_InitMenu + 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 @ =gBG1TilemapBuffer + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5C98 @ =sub_80A5C24 + 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 @ =Task_CallItemUseOnFieldCallback + 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 @ =gUnknown_03005D00 + 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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A5D24 @ =gUnknown_02038563 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xA] + ldr r0, _080A5D74 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + movs r0, 0 + bl sub_80A7528 + adds r0, r4, 0 + bl sub_80A41D4 + bl ItemListMenu_InitMenu + 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 @ =gBG1TilemapBuffer + 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 @ =gStringVar1 + bl CopyItemName + cmp r4, 0x63 + bls _080A5DCC + ldr r0, _080A5DC8 @ =gStringVar2 + 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 @ =gStringVar2 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN +_080A5DD8: + ldr r0, _080A5DF4 @ =gBG1TilemapBuffer + 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 @ =gBG1TilemapBuffer + 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 @ =gMain + 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 @ =gTasks + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5E8C @ =sub_80A5E1C + 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 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A5EF8 + movs r0, 0x5 + bl PlaySE + ldr r0, _080A5EEC @ =word_203855E + ldrh r0, [r0] + ldr r2, _080A5EF0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + ldrh r1, [r1, 0xA] + bl sub_80A5DA0 + ldr r1, _080A5EF4 @ =gUnknown_083C16F4 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A5F5C @ =sub_80A5EA0 + str r1, [r0] + movs r0, 0x3 + bl sub_80A7528 + ldr r0, _080A5F60 @ =gUnknown_02038559 + 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 ItemListMenu_InitMenu + 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 @ =gSaveBlock1 + ldr r1, _080A5FD4 @ =0x00000496 + adds r4, r0, r1 + ldr r5, _080A5FD8 @ =word_203855E + 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 ItemListMenu_InitMenu + 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 ItemListMenu_InitMenu + 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 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A6062 + ldr r0, _080A6070 @ =gBG1TilemapBuffer + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A6078 @ =sub_80A6000 + 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 DisplayCannotBeHeldMessage +DisplayCannotBeHeldMessage: @ 80A607C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80A73FC + ldr r0, _080A60B4 @ =word_203855E + ldrh r0, [r0] + ldr r1, _080A60B8 @ =gStringVar1 + bl CopyItemName + ldr r5, _080A60BC @ =gStringVar4 + ldr r1, _080A60C0 @ =gOtherText_CantBeHeld + adds r0, r5, 0 + bl StringExpandPlaceholders + bl sub_80A7590 + ldr r2, _080A60C4 @ =sub_80A6024 + 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 DisplayCannotBeHeldMessage + + 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 @ =word_203855E + ldrh r0, [r5] + bl sub_80F931C + lsls r0, 24 + cmp r0, 0 + bne _080A6108 + bl sub_80A73FC + bl sub_80A7590 + ldr r1, _080A6100 @ =gOtherText_CantWriteMail + ldr r2, _080A6104 @ =sub_80A6024 + 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_GetImportance + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A615C @ =sub_808B020 + lsrs r1, r2, 16 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + ldr r1, _080A6160 @ =sub_80A5B00 + str r1, [r0] + ldr r1, _080A6164 @ =gUnknown_02038561 + 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 DisplayCannotBeHeldMessage +_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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A61A4 @ =sub_814625C + 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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A61CC @ =gUnknown_02038563 + 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 @ =gUnknown_03000701 + movs r1, 0x2 + strb r1, [r0] + ldr r0, _080A61E8 @ =sub_80A61A8 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6210 @ =sub_808A3F8 + 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 @ =gUnknown_02038559 + ldrb r0, [r0] + adds r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080A6248 @ =word_203855E + ldrh r0, [r4] + bl sub_80F931C + lsls r0, 24 + cmp r0, 0 + bne _080A6254 + bl sub_80A73FC + bl sub_80A7590 + ldr r1, _080A624C @ =gOtherText_CantWriteMail + ldr r2, _080A6250 @ =sub_80A6024 + 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 @ =gStringVar1 + bl CopyItemName + ldr r4, _080A628C @ =gStringVar4 + ldr r1, _080A6290 @ =gOtherText_CantBeHeldHere + adds r0, r4, 0 + bl StringExpandPlaceholders + bl sub_80A7590 + ldr r2, _080A6294 @ =sub_80A6024 + 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_GetImportance + lsls r0, 24 + cmp r0, 0 + bne _080A62CC + ldr r1, _080A62C4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A62C8 @ =sub_808A3F8 + 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 DisplayCannotBeHeldMessage +_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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A62FC @ =gUnknown_02038563 + 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 @ =gUnknown_03000701 + movs r1, 0x3 + strb r1, [r0] + ldr r0, _080A6318 @ =sub_80A62D8 + 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 @ =gUnknown_0300485C + ldr r1, _080A6348 @ =sub_80B3050 + str r1, [r2] + ldr r2, _080A634C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6350 @ =c2_exit_to_overworld_2_switch + 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 @ =gTasks + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r0 + ldr r4, _080A63C8 @ =gUnknown_03005D10 + ldr r3, _080A63CC @ =gUnknown_02038559 + 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 @ =word_203855E + ldrh r0, [r4] + ldr r1, _080A63D4 @ =gStringVar2 + bl CopyItemName + ldrh r0, [r4] + bl ItemId_GetPrice + lsls r0, 16 + cmp r0, 0 + bne _080A63E4 + ldr r4, _080A63D8 @ =gStringVar4 + ldr r1, _080A63DC @ =gOtherText_CantBuyThat + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A63E0 @ =sub_80A6444 + 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 @ =gStringVar4 + ldr r1, _080A6404 @ =gOtherText_HowManyToSell + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A6408 @ =sub_80A648C + 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 @ =gTasks + 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 ItemListMenu_InitMenu + 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 @ =gBG1TilemapBuffer + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A6488 @ =sub_80A640C + 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 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput + str r0, [r4] + ldr r0, _080A64F0 @ =gBG1TilemapBuffer + 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 @ =gUnknown_02038559 + 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 @ =word_203855E + 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 @ =gMain + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A6570 @ =sub_80A6520 + 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 @ =word_203855E + ldrh r0, [r0] + ldr r1, _080A65A4 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r1 + ldrb r1, [r4, 0xA] + bl sub_80A6870 + ldr r0, _080A65A8 @ =sub_80A6548 + 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 @ =gBG1TilemapBuffer + movs r1, 0x6 + str r1, [sp] + movs r1, 0x7 + movs r2, 0x6 + movs r3, 0x6 + bl sub_80A36B8 + ldr r0, _080A6604 @ =word_203855E + ldrh r0, [r0] + ldr r1, _080A6608 @ =gStringVar2 + bl CopyItemName + ldr r4, _080A660C @ =gStringVar4 + ldr r1, _080A6610 @ =gOtherText_SoldItem + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A6614 @ =sub_80A6574 + 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 @ =gBG1TilemapBuffer + 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 @ =gUnknown_083C16FC + 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 @ =word_203855E + ldrh r0, [r0] + ldr r2, _080A66B0 @ =gTasks + 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 @ =gMain + 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 @ =gBG1TilemapBuffer + movs r1, 0x3 + str r1, [sp] + movs r1, 0 + movs r2, 0xA + movs r3, 0xD + bl sub_80A36B8 + ldr r4, _080A672C @ =gStringVar1 + ldr r0, _080A6730 @ =word_203855E + ldrh r0, [r0] + bl ItemId_GetPrice + lsls r0, 16 + lsrs r0, 17 + ldr r2, _080A6734 @ =gTasks + 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 @ =gStringVar4 + ldr r1, _080A673C @ =gOtherText_CanPay + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080A6740 @ =sub_80A6650 + 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 @ =gTasks + 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 ItemListMenu_InitMenu + 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 @ =gBG1TilemapBuffer + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A67F0 @ =sub_80A6760 + 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_GetPrice + lsls r0, 16 + lsrs r0, 17 + muls r0, r5 + movs r1, 0x6 + movs r2, 0x6 + movs r3, 0xB + bl sub_80B7A94 + ldr r6, _080A6838 @ =gStringVar1 + adds r0, r4, 0 + bl ItemId_GetPrice + 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 @ =gSaveBlock1 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + movs r2, 0 + bl sub_80B7C14 + ldr r0, _080A686C @ =gBG1TilemapBuffer + 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 @ =gSaveBlock1 + 0x490 + bl ItemId_GetPrice + 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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A68C8 @ =gUnknown_02038563 + 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 @ =gUnknown_02038559 + movs r0, 0x3 + strb r0, [r1] + ldr r1, _080A68E8 @ =gUnknown_03000701 + movs r0, 0x4 + strb r0, [r1] + ldr r0, _080A68EC @ =sub_80A68A4 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6914 @ =sub_80546B8 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A693C @ =sub_80546B8 + 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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A6964 @ =gUnknown_02038563 + 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 @ =gUnknown_02038559 + movs r0, 0x3 + strb r0, [r1] + ldr r1, _080A6994 @ =gUnknown_03000701 + movs r0, 0x5 + strb r0, [r1] + ldr r0, _080A6998 @ =sub_80A6940 + 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 @ =gUnknown_03000704 + ldr r0, _080A69B0 @ =gUnknown_083C16B8 + str r0, [r1] + ldr r1, _080A69B4 @ =gUnknown_02038564 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A69DC @ =sub_804E990 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6A04 @ =sub_804E990 + 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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A6A2C @ =gUnknown_02038563 + 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 @ =gUnknown_03000701 + movs r1, 0x6 + strb r1, [r0] + ldr r0, _080A6A48 @ =sub_80A6A08 + 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 @ =gUnknown_0300485C + ldr r1, _080A6A78 @ =sub_813A0F8 + str r1, [r2] + ldr r2, _080A6A7C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080A6A80 @ =c2_exit_to_overworld_2_switch + 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 @ =gTasks + 0x8 + adds r0, r4, r6 + mov r8, r0 + ldr r0, _080A6AEC @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r0, _080A6AF0 @ =word_203855E + ldrh r0, [r0] + ldr r1, _080A6AF4 @ =gStringVar1 + bl CopyItemName + ldr r0, _080A6AF8 @ =gStringVar2 + 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 @ =sub_80A5E1C + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6AE8: .4byte gTasks + 0x8 +_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 @ =gMain + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r1, _080A6B5C @ =gUnknown_03005D10 + ldr r0, _080A6B60 @ =gUnknown_02038559 + 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 @ =gTasks + 0x8 + adds r7, r5, r6 + ldr r0, _080A6BA0 @ =word_203855E + mov r8, r0 + ldrh r0, [r0] + bl ItemId_GetImportance + 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 @ =sub_80A6B00 + str r1, [r0] + movs r0, 0x9 + bl sub_80A7528 + b _080A6BD2 + .align 2, 0 +_080A6B9C: .4byte gTasks + 0x8 +_080A6BA0: .4byte word_203855E +_080A6BA4: .4byte sub_80A6B00 +_080A6BA8: + mov r1, r8 + ldrh r0, [r1] + ldrh r1, [r7, 0x2] + bl AddPCItem + 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 @ =sub_80A6B00 + 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 @ =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + ands r2, r1 + cmp r2, 0 + beq _080A6C20 + movs r0, 0x5 + bl PlaySE + ldr r0, _080A6C1C @ =gBG1TilemapBuffer + 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 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r1, _080A6C64 @ =gUnknown_03005D10 + ldr r0, _080A6C68 @ =gUnknown_02038559 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldr r2, _080A6CE8 @ =gUnknown_03005D10 + ldr r6, _080A6CEC @ =gUnknown_02038559 + 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 @ =sub_80A6BE0 + 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 @ =gSaveBlock1 + ldr r1, _080A6D74 @ =0x00000496 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080A6D84 + movs r1, 0x1 + bl CheckBagHasItem + 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 @ =word_203855E + ldrh r0, [r4] + strh r0, [r1] + ldrh r0, [r4] + bl ItemId_GetFieldFunc + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A6D7C @ =gTasks + 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 @ =Event_NoRegisteredItem + 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 @ =sub_80A50C8 + movs r1, 0 + bl CreateTask + ldr r1, _080A6DB8 @ =gUnknown_02038563 + 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 @ =gUnknown_03000700 + movs r0, 0 + strb r0, [r1] + ldr r1, _080A6DE8 @ =gUnknown_03000701 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080A6DEC @ =sub_80A6D98 + 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 @ =gUnknown_02038564 + 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 @ =gUnknown_083C1640 + ldr r0, _080A6E54 @ =gUnknown_03000704 + 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 @ =gUnknown_083C1640 + ldr r4, _080A6EB0 @ =gUnknown_03000704 + 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 @ =gUnknown_02038564 + 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 @ =gMain + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080A6EE8 + ldr r4, _080A6EE4 @ =gUnknown_03000700 + 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 @ =gUnknown_03000700 + ldrb r0, [r4] + adds r0, 0x1 + ldr r1, _080A6F10 @ =gUnknown_02038564 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r1, _080A6F6C @ =gUnknown_03005D10 + ldr r0, _080A6F70 @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r1, _080A6F78 @ =gUnknown_083C1640 + ldr r0, _080A6F7C @ =gUnknown_03000700 + ldrb r2, [r0] + ldr r0, _080A6F80 @ =gUnknown_03000704 + 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 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r1, _080A6FCC @ =gUnknown_03005D10 + ldr r0, _080A6FD0 @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r0, _080A6FD8 @ =gUnknown_083C1640 + 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 @ =word_203855E + ldrh r0, [r0] + bl ItemId_GetBattleUsage + lsls r0, 24 + cmp r0, 0 + beq _080A7008 + ldr r1, _080A6FFC @ =gUnknown_03000704 + ldr r0, _080A7000 @ =gUnknown_083C1708 + str r0, [r1] + ldr r1, _080A7004 @ =gUnknown_02038564 + 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 @ =gUnknown_03000704 + ldr r0, _080A701C @ =gUnknown_083C170A + str r0, [r1] + ldr r1, _080A7020 @ =gUnknown_02038564 + 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 @ =gUnknown_03000700 + movs r0, 0 + strb r0, [r1] + bl sub_80A6FDC + ldr r0, _080A7080 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldr r3, _080A7084 @ =gUnknown_03005D10 + ldr r2, _080A7088 @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + bl sub_80A6DF0 + ldr r0, _080A7090 @ =sub_80A6EB8 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080A70D0 @ =sub_802E424 + lsrs r0, r2, 16 + movs r3, 0 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080A70D4 @ =sub_80A5B00 + 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 @ =word_203855E + ldrh r0, [r4] + bl ItemId_GetBattleFunc + cmp r0, 0 + beq _080A711A + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + bl ItemId_GetBattleFunc + 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 ItemListMenu_InitMenu + 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 @ =gUnknown_02038563 + ldr r5, _080A715C @ =gTasks + 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 @ =sub_80A7230 + 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 @ =gUnknown_03000700 + movs r1, 0 + strb r1, [r0] + ldr r0, _080A7218 @ =gUnknown_02038559 + strb r1, [r0] + movs r1, 0 + ldr r4, _080A721C @ =0x0201e000 + ldr r5, _080A7220 @ =gSaveBlock1 + 0x560 + ldr r3, _080A7224 @ =gUnknown_03005D10 + 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 ClearItemSlots + adds r0, r4, 0 + movs r1, 0x10 + bl ClearItemSlots + movs r0, 0xD + movs r1, 0x1 + bl AddBagItem + movs r0, 0x4 + movs r1, 0x1 + bl AddBagItem + ldr r1, _080A7228 @ =gUnknown_03000701 + movs r0, 0x7 + strb r0, [r1] + ldr r0, _080A722C @ =sub_80A7150 + 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 @ =gTasks + 0x8 + 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 gTasks + 0x8 +_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 @ =word_203855E + movs r0, 0x4 + strh r0, [r1] + ldr r1, _080A72DC @ =gUnknown_03000704 + ldr r0, _080A72E0 @ =gUnknown_083C1708 + str r0, [r1] + ldr r1, _080A72E4 @ =gUnknown_02038564 + movs r0, 0x2 + strb r0, [r1] + mov r0, r8 + adds r4, r0, r6 + ldr r3, _080A72E8 @ =gUnknown_03005D10 + ldr r2, _080A72EC @ =gUnknown_02038559 + 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 @ =gBG1TilemapBuffer + 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 @ =gBG1TilemapBuffer + bl sub_80A4DA4 + ldr r4, _080A7348 @ =gSaveBlock1 + 0x560 + ldr r5, _080A734C @ =0x0201e000 + 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 @ =sub_802E424 + 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 @ =sub_80A5B00 + 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 ItemListMenu_InitMenu +ItemListMenu_InitMenu: @ 80A736C + push {lr} + sub sp, 0x8 + ldr r1, _080A73B0 @ =gUnknown_03005D10 + ldr r0, _080A73B4 @ =gUnknown_02038559 + 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 @ =0x0000ffff + ldr r3, _080A73BC @ =0x00002d9f + movs r0, 0xF + str r0, [sp] + movs r0, 0x10 + movs r2, 0xC + bl CreateBlendedOutlineCursor + 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 ItemListMenu_InitMenu + + thumb_func_start sub_80A73C0 +sub_80A73C0: @ 80A73C0 + push {lr} + ldr r1, _080A73E8 @ =gUnknown_03005D10 + ldr r0, _080A73EC @ =gUnknown_02038559 + 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 @ =gUnknown_0203853C + 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 @ =_080A7450 + 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 @ =gUnknown_03005D10 + ldr r0, _080A74A4 @ =gUnknown_02038559 + 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 @ =gUnknown_03005D24 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + ldrb r1, [r4, 0x1] + bl ItemListMenu_ChangeDescription + b _080A74FC + .align 2, 0 +_080A74A0: .4byte gUnknown_03005D10 +_080A74A4: .4byte gUnknown_02038559 +_080A74A8: .4byte gUnknown_03005D24 +_080A74AC: + ldr r0, _080A74B0 @ =gOtherText_SwitchWhichItem + b _080A74E6 + .align 2, 0 +_080A74B0: .4byte gOtherText_SwitchWhichItem +_080A74B4: + ldr r0, _080A74B8 @ =gOtherText_WhatWillYouDo2 + b _080A74E6 + .align 2, 0 +_080A74B8: .4byte gOtherText_WhatWillYouDo2 +_080A74BC: + ldr r0, _080A74C0 @ =gOtherText_HowManyToToss + b _080A74E6 + .align 2, 0 +_080A74C0: .4byte gOtherText_HowManyToToss +_080A74C4: + ldr r0, _080A74C8 @ =gOtherText_ThrewAwayItem + b _080A74E6 + .align 2, 0 +_080A74C8: .4byte gOtherText_ThrewAwayItem +_080A74CC: + ldr r0, _080A74D0 @ =gOtherText_OkayToThrowAwayPrompt + b _080A74E6 + .align 2, 0 +_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt +_080A74D4: + ldr r0, _080A74D8 @ =gOtherText_HowManyToDeposit + b _080A74E6 + .align 2, 0 +_080A74D8: .4byte gOtherText_HowManyToDeposit +_080A74DC: + ldr r0, _080A74E0 @ =gOtherText_DepositedItems + b _080A74E6 + .align 2, 0 +_080A74E0: .4byte gOtherText_DepositedItems +_080A74E4: + ldr r0, _080A74F0 @ =gOtherText_NoRoomForItems +_080A74E6: + ldrb r1, [r4, 0x1] + bl sub_80A4A98 + b _080A74FC + .align 2, 0 +_080A74F0: .4byte gOtherText_NoRoomForItems +_080A74F4: + ldr r0, _080A7518 @ =gOtherText_CantStoreSomeoneItem + 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 @ =gUnknown_0203853C + 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 @ =gUnknown_0203853C + 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 @ =gUnknown_0203853C + 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 @ =gUnknown_0203853C + 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 @ =gUnknown_0203853C + 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 @ =gUnknown_02038540 + ldrb r0, [r4] + cmp r0, 0x1 + bne _080A7622 + bl sub_80A7988 + adds r5, r0, 0 + cmp r5, 0 + bne _080A7622 + ldr r0, _080A762C @ =gUnknown_02038563 + 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 @ =gUnknown_02038540 + 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 @ =gUnknown_02038540 + 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 @ =gUnknown_02038563 + 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 @ =gUnknown_02038540 + 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 @ =gUnknown_02038540 + 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 @ =gUnknown_02038540 + 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 @ =gUnknown_02038540 + 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 @ =gUnknown_02038544 + 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 @ =gUnknown_02038544 + 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 @ =gUnknown_02038544 + 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 @ =gUnknown_02038550 + 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 @ =gUnknown_083C1640 + ldr r0, _080A77B0 @ =gUnknown_03000704 + 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 @ =word_203855E + ldrh r0, [r0] + bl sub_80A4B90 + adds r3, r0, 0 + b _080A77DC + .align 2, 0 +_080A77C4: .4byte word_203855E +_080A77C8: + ldr r2, _080A781C @ =gUnknown_083C1640 + ldrb r0, [r4, 0x1] + ldr r1, _080A7820 @ =gUnknown_03000704 + 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 @ =gUnknown_02038564 + 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 @ =gUnknown_02038550 + 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 @ =gUnknown_02038550 + 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 @ =gUnknown_02038550 + 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 @ =gUnknown_02038550 + 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 sub_80A78A0 +sub_80A78A0: @ 80A78A0 + push {lr} + ldr r0, _080A78B4 @ =gUnknown_02038550 + 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 sub_80A78A0 + + thumb_func_start sub_80A78B8 +sub_80A78B8: @ 80A78B8 + ldr r1, _080A78C0 @ =gUnknown_02038554 + 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 @ =gLinkOpen + 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 @ =gLinkOpen + 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 @ =gLinkOpen + 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 @ =gUnknown_02038554 + 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 @ =gUnknown_02038554 + 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 @ =sub_80A79B4 + 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 @ =gUnknown_0203855B + 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 @ =gUnknown_0203855C + 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 @ =gUnknown_0203855B + 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 @ =gUnknown_0203855B + 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 @ =gSpriteAffineAnimTable_83C1CC4 + 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 @ =gUnknown_0203855C + 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 CreateBagSprite +CreateBagSprite: @ 80A7B10 + push {lr} + ldr r0, _080A7B24 @ =gSpriteTemplate_83C1CE0 + 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 CreateBagSprite + + 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 @ =sub_80A7B6C + 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 @ =gSpriteAffineAnimTable_83C1D20 + b _080A7BA2 + .align 2, 0 +_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20 +_080A7BA0: + ldr r0, _080A7BD0 @ =gSpriteAffineAnimTable_83C1D20 + 0x4 +_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 @ =SpriteCallbackDummy + 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 CreateBagPokeballSprite +CreateBagPokeballSprite: @ 80A7C20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080A7C54 @ =gUnknown_083C1D30 + bl LoadSpritePalette + ldr r0, _080A7C58 @ =gSpriteTemplate_83C1D38 + movs r1, 0x10 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + ldr r1, _080A7C5C @ =gUnknown_02038568 + strb r0, [r1] + ldr r2, _080A7C60 @ =gSprites + 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 CreateBagPokeballSprite + + thumb_func_start sub_80A7C64 +sub_80A7C64: @ 80A7C64 + push {r4,r5,lr} + movs r0, 0x8 + bl FreeSpritePaletteByTag + ldr r5, _080A7C98 @ =gSprites + ldr r4, _080A7C9C @ =gUnknown_02038568 + 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 @ =gSaveBlock1 + 0x317C + ldr r1, _080A7D38 @ =0x02000000 + adds r0, r4, 0 + bl sub_80A7CA0 + movs r0, 0x90 + lsls r0, 3 + adds r4, r0 + str r4, [sp] + ldr r1, _080A7D3C @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + ldr r1, _080A7D40 @ =0x00007544 + 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 @ =gBerryGraphicsTable + lsls r4, 3 + adds r0, r5, 0x4 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp] + mov r1, sp + ldr r0, _080A7D80 @ =0x00007544 + strh r0, [r1, 0x4] + mov r0, sp + bl LoadCompressedObjectPalette + adds r4, r5 + ldr r0, [r4] + ldr r4, _080A7D84 @ =0x02001000 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _080A7D88 @ =0xfffff000 + 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 @ =gSpriteTemplate_83C1D74 + 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 @ =gUnknown_030041B4 + 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 @ =0x00007544 + 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 @ =0x00007544 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl sub_80A7CF8 + ldr r0, _080A7E54 @ =gSpriteTemplate_83C1E04 + 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 @ =gSprites + 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 @ =gSpriteTemplate_83C1F98 + 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 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/matuda_debug_menu.s b/asm/matuda_debug_menu.s new file mode 100644 index 000000000..fe76a8eb6 --- /dev/null +++ b/asm/matuda_debug_menu.s @@ -0,0 +1,2877 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + 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 @ =gUnknown_083C91F0 + 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 @ =gCallback_03004AE8 + ldr r0, _080A9B74 @ =sub_80A9B78 + 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 @ =gCallback_03004AE8 + ldr r0, _080A9BAC @ =gUnknown_083C91F0 + 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 @ =sub_80A9BE4 + 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 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A9C10 + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080A9C18 @ =gUnknown_0203869A + 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 @ =gUnknown_0203869A + 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 @ =sub_80A9E3C + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _080A9C8C @ =sub_80A9C98 + adds r0, r4, 0 + adds r1, r5, 0 + bl SetTaskFuncWithFollowupFunc + ldr r0, _080A9C90 @ =sub_80A9E04 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A9C94 @ =gTasks + 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 @ =sub_80C8734 + ldr r2, _080A9CBC @ =sub_80A9CC0 + 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 @ =sub_80C88AC + ldr r2, _080A9CD8 @ =sub_80A9CDC + 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 @ =sub_80C8E1C + ldr r2, _080A9CF4 @ =sub_80A9D58 + 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 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080A9D20 + ldr r0, _080A9D2C @ =gTasks + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A9D54 @ =sub_80A9CF8 + 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 @ =gTasks + 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 @ =gUnknown_0203869B + strb r0, [r1] + ldr r0, _080A9DB0 @ =gUnknown_0203869C + ldrb r0, [r0] + bl sub_80AE82C + movs r0, 0 + bl sub_80B0F28 + ldr r1, _080A9DB4 @ =sub_80C8EBC + ldr r2, _080A9DB8 @ =sub_80A9DBC + 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 @ =sub_80C8F34 + ldr r2, _080A9DD4 @ =sub_80A9DD8 + 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 @ =gTasks + 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 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x2 + bne _080A9E2A + ldr r2, _080A9E34 @ =gTasks + 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 @ =sub_80A9D30 + 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 @ =gBlockRecvBuffer + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080A9E7C @ =sub_80A9E80 + 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 @ =gTasks + 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 @ =sub_80A9ED8 + b _080A9ECA + .align 2, 0 +_080A9EC4: .4byte sub_80A9ED8 +_080A9EC8: + ldr r0, _080A9ED4 @ =sub_80A9F10 +_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 @ =gTasks + 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 @ =sub_80A9F10 + 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 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080A9F3E + bl GetMultiplayerId + ldr r1, _080A9F48 @ =gUnknown_02038695 + strb r0, [r1] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080A9F3E + ldr r1, _080A9F4C @ =gUnknown_0203869A + 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 @ =gWindowConfig_81E6C3C + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080A9FBC @ =gMenuWindow + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r0, _080A9FC0 @ =REG_MOSAIC + 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 @ =gUnknown_030042A4 + strh r1, [r0] + ldr r0, _080A9FC8 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r0, _080A9FCC @ =gUnknown_030042C0 + strh r1, [r0] + ldr r0, _080A9FD0 @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _080A9FD4 @ =gUnknown_03004288 + strh r1, [r0] + ldr r0, _080A9FD8 @ =gUnknown_03004280 + strh r1, [r0] + ldr r0, _080A9FDC @ =gUnknown_030041B0 + strh r1, [r0] + ldr r0, _080A9FE0 @ =gUnknown_030041B8 + 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 @ =gUnknown_083C9228 + 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 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r12, r5 + ldr r7, _080AA05C @ =0x85000400 + 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 @ =gWindowConfig_81E6C3C + 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 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x4 + bne _080AA084 + ldr r0, _080AA08C @ =sub_805469C + 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 @ =REG_BG0HOFS + ldr r0, _080AA0EC @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0F0 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0F4 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0F8 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA0FC @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA100 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA104 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080AA108 @ =gUnknown_030041B8 + 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 @ =gPaletteFade + 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 @ =sub_80AA090 + bl SetVBlankCallback + ldr r0, _080AA240 @ =sub_80AA064 + bl SetMainCallback2 + ldrb r1, [r4, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x8] + ldr r4, _080AA244 @ =gUnknown_02038694 + movs r0, 0 + strb r0, [r4] + ldr r0, _080AA248 @ =gUnknown_02038570 + 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 @ =gUnknown_083C9276 + adds r0, r6, 0x1 + mov r8, r0 + ldr r7, _080AA250 @ =gUnknown_083C9364 +_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 @ =gMenuWindow + bl sub_8003460 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080AA17A + ldr r1, _080AA258 @ =gUnknown_0203869C + ldr r4, _080AA25C @ =gUnknown_0203869E + 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 @ =gMenuWindow + ldr r1, _080AA260 @ =gUnknown_083C9337 + movs r0, 0x12 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0xD6 + movs r3, 0x12 + bl sub_8003460 + ldr r1, _080AA264 @ =gUnknown_083C933B + movs r0, 0xC + str r0, [sp] + adds r0, r4, 0 + movs r2, 0xDC + movs r3, 0 + bl sub_8003460 + ldr r0, _080AA268 @ =gUnknown_083C92B4 + bl LoadSpriteSheet + ldr r0, _080AA26C @ =gUnknown_083C92BC + 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 @ =gSpriteTemplate_83C92CC + ldr r1, _080AA274 @ =gUnknown_083C9296 + ldrb r1, [r1, 0x3] + ldr r2, _080AA278 @ =gUnknown_083C92A8 + ldrb r2, [r2, 0x1] + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AA27C @ =gSprites + 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 @ =gMenuWindow + 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 @ =0x02000000 + ldr r1, _080AA2F0 @ =gUnknown_083C932C + adds r0, r4, 0 + bl StringCopy + lsls r1, r7, 6 + ldr r0, _080AA2F4 @ =gUnknown_0203857D + adds r1, r0 + adds r0, r4, 0 + bl StringAppend + movs r5, 0 + ldr r6, _080AA2F8 @ =gUnknown_083C926E + 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 @ =gMenuWindow + ldr r1, _080AA2EC @ =0x02000000 + 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 @ =gUnknown_0203857D + 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 @ =gMenuWindow + 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 @ =0x02000000 + ldr r1, _080AA37C @ =gUnknown_02038570 + 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 @ =gMenuWindow + ldr r1, _080AA384 @ =gUnknown_083C9282 + 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 @ =0x02000000 + ldr r1, _080AA3C4 @ =gUnknown_02038570 + 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 @ =gMenuWindow + ldr r1, _080AA3CC @ =gUnknown_083C9282 + 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 @ =0x02000000 + ldr r1, _080AA40C @ =gUnknown_02038570 + 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 @ =gMenuWindow + ldr r1, _080AA414 @ =gUnknown_083C9282 + 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 @ =0x02000000 + ldr r1, _080AA454 @ =gUnknown_02038570 + 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 @ =gMenuWindow + ldr r1, _080AA45C @ =gUnknown_083C9282 + 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 @ =0x02000000 + ldr r1, _080AA49C @ =gUnknown_02038570 + 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 @ =gMenuWindow + ldr r1, _080AA4A4 @ =gUnknown_083C9282 + 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 @ =0x02000000 + ldr r1, _080AA4E4 @ =gUnknown_02038570 + 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 @ =gMenuWindow + ldr r1, _080AA4EC @ =gUnknown_083C9282 + 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 @ =gMenuWindow + ldr r0, _080AA5AC @ =gUnknown_083C928E + 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 @ =gUnknown_02038570 + 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 @ =gMoveNames + 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 @ =gStringVar1 + 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 @ =gMenuWindow + ldr r1, _080AA5E4 @ =gUnknown_083C93B4 + 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 @ =gMenuWindow + ldr r1, _080AA610 @ =gUnknown_083C93F0 + 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 @ =0x02000000 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080AA654 @ =gMenuWindow + 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 @ =gPlayerParty + ldr r5, _080AA74C @ =gUnknown_02038695 + ldrb r2, [r5] + lsls r2, 6 + ldr r4, _080AA750 @ =gUnknown_02038596 + 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 @ =gMain + 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 @ =gUnknown_083C92E4 + 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 @ =gUnknown_083C92E4 + 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 @ =gUnknown_083C92E4 + 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 @ =gUnknown_083C92E4 + 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 @ =gUnknown_083C9296 + 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 @ =gUnknown_083C92A8 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_02038570 + 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 @ =gUnknown_0203869C + strh r4, [r0] + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080AAC58 @ =gUnknown_0203869E + 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 @ =gUnknown_0203869E + 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 @ =gUnknown_0203869E + 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 @ =gUnknown_0203869C + 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 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AACF4 + bl sub_80AA69C + ldr r0, _080AACFC @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AACEE + ldr r0, _080AAD00 @ =0x02000000 + ldrb r0, [r0] + bl sub_80AE82C +_080AACEE: + ldr r0, _080AAD04 @ =sub_80AB47C + 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 @ =0x02000000 + ldrh r0, [r0, 0x34] + movs r4, 0 + strb r0, [r1] + ldr r0, _080AAD40 @ =sub_80AACC4 + 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 @ =gUnknown_02038670 +_080AAD56: + lsls r0, r4, 24 + lsrs r0, 24 + ldr r1, _080AAD7C @ =gUnknown_0203869C + ldrb r1, [r1] + bl sub_80AE770 + strh r0, [r5] + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AAD56 + ldr r0, _080AAD80 @ =sub_805469C + 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 @ =0x06018000 + subs r1, r0, r1 + movs r0, 0 + str r0, [sp, 0x44] + ldr r4, _080AAEC8 @ =0x040000d4 + add r0, sp, 0x44 + str r0, [r4] + str r1, [r4, 0x4] + ldr r0, _080AAECC @ =0x85000040 + 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 @ =0x06018000 +_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 @ =0x84000008 + 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 @ =gMain + mov r9, r0 + lsls r3, r7, 3 + add r3, r9 + ldr r0, _080AAED8 @ =gUnknown_083C9400 + 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 @ =0x000003ff + mov r8, r0 + mov r1, r8 + ands r2, r1 + ldrh r5, [r6] + ldr r4, _080AAEE0 @ =0xfffffc00 + adds r0, r4, 0 + ands r0, r5 + orrs r0, r2 + strh r0, [r6] + ldrh r5, [r3, 0x3E] + ldr r2, _080AAEE4 @ =0xfffffe00 + 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 @ =gUnknown_0203856C + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080AAFC4 @ =gUnknown_02038695 + movs r0, 0x3 + strb r0, [r1] + movs r0, 0 + bl sub_80AE098 + movs r4, 0x3 + movs r5, 0x1 + negs r5, r5 + ldr r3, _080AAFC8 @ =gUnknown_02038690 + 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 @ =gUnknown_02038670 + ldr r5, _080AAFD0 @ =gUnknown_02038570 + mov r9, r5 +_080AAF6C: + lsls r1, r4, 1 + strh r6, [r7] + ldr r0, _080AAFD4 @ =gUnknown_02038680 + mov r8, r0 + adds r0, r1, r0 + strh r6, [r0] + ldr r3, _080AAFD8 @ =gUnknown_02038678 + 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 @ =gUnknown_02038670 + 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 @ =gUnknown_0203856C + movs r0, 0 + strb r0, [r1] + movs r4, 0 + ldr r3, _080AB020 @ =gUnknown_02038678 + ldr r2, _080AB024 @ =gUnknown_02038680 + ldr r1, _080AB028 @ =gUnknown_02038670 + 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 @ =gUnknown_02038695 + movs r0, 0x3 + strb r0, [r1] + movs r0, 0 + bl sub_80AE098 + movs r2, 0x3 + movs r5, 0x1 + negs r5, r5 + ldr r4, _080AB07C @ =gUnknown_02038690 + 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 @ =gUnknown_0203869C + 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 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 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 @ =0x04000208 + ldrh r2, [r3] + strh r1, [r3] + ldr r4, _080AB168 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r1, _080AB16C @ =REG_DISPSTAT + movs r0, 0x8 + strh r0, [r1] + bl ResetTasks + bl ResetSpriteData + ldr r0, _080AB170 @ =sub_80AB184 + bl SetMainCallback2 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + movs r5, 0 + ldr r1, _080AB174 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080AB178 @ =0x85000400 + 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 @ =gWindowConfig_81E6FD8 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r5, _080AB180 @ =gUnknown_03004210 + 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 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 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 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s index c912fd14e..161fb57f2 100644 --- a/asm/rom_8094928.s +++ b/asm/rom_8094928.s @@ -29456,35750 +29456,4 @@ sub_80A30E0: @ 80A30E0 _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 @ =gBG1TilemapBuffer - ldr r2, _080A316C @ =0x06002000 - ldr r0, _080A3170 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r3, _080A3174 @ =0x80000400 - str r3, [r0, 0x8] - ldr r2, [r0, 0x8] - movs r2, 0x80 - lsls r2, 4 - adds r1, r2 - ldr r2, _080A3178 @ =0x06006000 - 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 @ =gMain - ldr r1, _080A319C @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x10 - bls _080A318E - b _080A34A8 -_080A318E: - lsls r0, 2 - ldr r1, _080A31A0 @ =_080A31A4 - 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 @ =gMain - ldr r0, _080A3204 @ =0x0000043c - 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 @ =0x02000000 - ldr r1, _080A3224 @ =0x0001ffff - 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 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080A3244 @ =gMain - ldr r0, _080A3248 @ =0x0000043c - 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 @ =gMain - ldr r0, _080A326C @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3268: .4byte gMain -_080A326C: .4byte 0x0000043c -_080A3270: - ldr r0, _080A3278 @ =gWindowConfig_81E6DFC - bl SetUpWindowConfig - b _080A3464 - .align 2, 0 -_080A3278: .4byte gWindowConfig_81E6DFC -_080A327C: - ldr r0, _080A328C @ =gWindowConfig_81E6DFC - bl MultistepInitMenuWindowBegin - ldr r1, _080A3290 @ =gMain - ldr r0, _080A3294 @ =0x0000043c - 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 LoadScrollIndicatorPalette - movs r0, 0 - movs r1, 0xAC - movs r2, 0xC - bl CreateVerticalScrollIndicators - movs r0, 0x1 - movs r1, 0xAC - movs r2, 0x94 - bl CreateVerticalScrollIndicators - movs r0, 0x2 - movs r1, 0x1C - movs r2, 0x58 - bl CreateVerticalScrollIndicators - movs r0, 0x3 - movs r1, 0x64 - movs r2, 0x58 - bl CreateVerticalScrollIndicators - 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 @ =gUnknown_03000701 - 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 @ =gMain - ldr r0, _080A3324 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A331C: .4byte gUnknown_03000701 -_080A3320: .4byte gMain -_080A3324: .4byte 0x0000043c -_080A3328: - ldr r1, _080A3378 @ =gUnknown_0203855A - movs r0, 0x10 - strb r0, [r1] - ldr r4, _080A337C @ =gBG2TilemapBuffer - ldr r5, _080A3380 @ =gUnknown_02038559 - 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 @ =gBagPockets - 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 @ =gUnknown_03005D24 - 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 gBagPockets -_080A3388: .4byte gUnknown_03005D24 -_080A338C: - ldr r0, _080A33D4 @ =0x0000ffff - movs r1, 0 - movs r2, 0x7 - bl sub_80A48E8 - ldr r1, _080A33D8 @ =gUnknown_03005D10 - ldr r4, _080A33DC @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - bl ItemListMenu_InitDescription - bl ItemListMenu_InitMenu - ldr r1, _080A33E4 @ =gUnknown_0203855B - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _080A33E8 @ =gUnknown_0203855C - movs r0, 0 - strb r0, [r1] - ldr r1, _080A33EC @ =gMain - ldr r0, _080A33F0 @ =0x0000043c - 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 CreateBagSprite - movs r0, 0 - bl CreateBagPokeballSprite - bl sub_80A3740 - b _080A3464 -_080A3404: - ldr r3, _080A3444 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _080A3448 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _080A344C @ =REG_DISPSTAT - 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 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080A3454 @ =gMain - ldr r0, _080A3458 @ =0x0000043c - 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 @ =gMain - ldr r2, _080A3478 @ =0x0000043c - 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 @ =sub_80A3134 - bl SetVBlankCallback - ldr r0, _080A34A4 @ =sub_80A3118 - 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 @ =gUnknown_03000700 - 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 @ =REG_BG2CNT - ldr r2, _080A3518 @ =0x00000c06 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080A351C @ =0x00000405 - 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 @ =0x02000000 - ldr r1, _080A3540 @ =0x0001ffff - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080A3530 - b _080A3624 -_080A3530: - lsls r0, 2 - ldr r1, _080A3544 @ =_080A3548 - 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 @ =gBagScreen_Gfx - ldr r1, _080A356C @ =0x06004000 - bl LZDecompressVram - b _080A35EA - .align 2, 0 -_080A3568: .4byte gBagScreen_Gfx -_080A356C: .4byte 0x06004000 -_080A3570: - ldr r0, _080A3580 @ =gUnknown_08E77004 - ldr r1, _080A3584 @ =gBG2TilemapBuffer - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - b _080A35EA - .align 2, 0 -_080A3580: .4byte gUnknown_08E77004 -_080A3584: .4byte gBG2TilemapBuffer -_080A3588: - ldr r0, _080A35A4 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080A3598 - ldr r0, _080A35A8 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080A35B0 -_080A3598: - ldr r0, _080A35AC @ =gBagScreenMale_Pal - 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 @ =gBagScreenFemale_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _080A35EA - .align 2, 0 -_080A35BC: .4byte gBagScreenFemale_Pal -_080A35C0: - ldr r0, _080A35D8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080A35D0 - ldr r0, _080A35DC @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080A35E4 -_080A35D0: - ldr r0, _080A35E0 @ =gUnknown_083C1CC8 - bl LoadCompressedObjectPic - b _080A35EA - .align 2, 0 -_080A35D8: .4byte gSaveBlock2 -_080A35DC: .4byte gUnknown_03000701 -_080A35E0: .4byte gUnknown_083C1CC8 -_080A35E4: - ldr r0, _080A35F8 @ =gUnknown_083C1CD0 - bl LoadCompressedObjectPic -_080A35EA: - ldr r1, _080A35FC @ =0x02000000 - ldr r0, _080A3600 @ =0x0001ffff - 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 @ =gUnknown_083C1CD8 - bl LoadCompressedObjectPalette - ldr r0, _080A361C @ =0x02000000 - ldr r1, _080A3620 @ =0x0001ffff - 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 @ =gUnknown_03000701 - ldr r5, _080A364C @ =gUnknown_03005D10 -_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 @ =gUnknown_02038559 - ldr r3, _080A36B4 @ =gUnknown_03005D10 - 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 @ =gBagPockets -_080A371A: - lsls r1, r4, 3 - adds r1, r5 - ldr r0, [r1] - ldrb r1, [r1, 0x4] - bl ClearItemSlots - 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 gBagPockets - thumb_func_end sub_80A3714 - - thumb_func_start sub_80A3740 -sub_80A3740: @ 80A3740 - push {lr} - sub sp, 0x4 - ldr r1, _080A376C @ =gUnknown_083C1704 - 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 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0 - bne _080A37B6 - ldr r3, _080A37A0 @ =gUnknown_03000704 - ldr r2, _080A37A4 @ =gUnknown_02038559 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldr r1, _080A37A8 @ =gUnknown_083C1690 - adds r0, r1 - str r0, [r3] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x3 - beq _080A37B0 - ldr r1, _080A37AC @ =gUnknown_02038564 - 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 @ =gUnknown_02038564 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080A37F4 @ =sub_80A50C8 - 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 @ =gUnknown_0203855A - ldrb r5, [r6] - cmp r5, 0xF - bhi _080A3868 - adds r0, r5, 0x1 - strb r0, [r6] - ldr r4, _080A3858 @ =gBG2TilemapBuffer - ldrb r2, [r6] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x4F - bl sub_80A396C - ldr r0, _080A385C @ =gUnknown_02038559 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6] - lsrs r2, 1 - ldr r3, _080A3860 @ =gTasks - 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 @ =gUnknown_02038558 - 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 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A38B4 - ldr r1, _080A38A4 @ =gUnknown_03005D10 - ldr r0, _080A38A8 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldr r4, _080A38B0 @ =gUnknown_02038562 - ldrb r1, [r4] - bl ItemListMenu_ChangeDescription - 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 @ =gUnknown_02038562 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _080A38F2 - ldr r5, _080A393C @ =gUnknown_03005D10 - adds r4, r1, 0 -_080A38C0: - ldr r0, _080A3940 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldrb r1, [r4] - bl ItemListMenu_ChangeDescription - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _080A38C0 -_080A38F2: - ldr r0, _080A3938 @ =gUnknown_02038562 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080A3932 - ldr r1, _080A3948 @ =gUnknown_0203855A - movs r0, 0x10 - strb r0, [r1] - ldr r1, _080A394C @ =gUnknown_0203855B - ldr r0, _080A3940 @ =gUnknown_02038559 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080A3950 @ =sub_80A4F68 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl sub_80A37C0 - adds r0, r7, 0 - bl DestroyTask - bl ItemListMenu_InitMenu - 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 @ =gUnknown_08E77004 - 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 @ =gUnknown_08E96EC8 - 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 @ =gUnknown_08E96EC8 - 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 @ =gUnknown_08E96EC8 - 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 @ =0x0000024a - ldr r0, _080A3AE8 @ =0x0000107d - 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 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - ldr r1, _080A3BAC @ =gBagPockets - 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 @ =gUnknown_0203855A - 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 @ =gUnknown_0203855B - movs r0, 0x6 - strb r0, [r1] - ldr r0, _080A3BB8 @ =gUnknown_02038562 - strb r4, [r0] - ldr r4, _080A3BBC @ =sub_80A37F8 - 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 @ =gTasks - 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 gBagPockets -_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 @ =gUnknown_03005D10 - lsls r0, r6, 2 - adds r3, r0, r1 - movs r0, 0 - strb r0, [r3, 0x2] - movs r4, 0 - ldr r0, _080A3D04 @ =gBagPockets - 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 gBagPockets - 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 @ =gUnknown_03005D10 - 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 @ =gUnknown_03005D10 - mov r9, r1 - ldr r2, _080A3DF8 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - ldr r1, [r7] - lsls r6, r2, 2 - adds r3, r6, r1 - ldr r2, _080A3E00 @ =gTasks - 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 @ =gSaveBlock1 - ldr r1, _080A3E08 @ =0x00000496 - 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 @ =gUnknown_02038559 - ldrb r0, [r0] - bl sub_80A3CA8 -_080A3DE0: - ldr r0, _080A3DF8 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D10 - ldr r2, _080A3E64 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - 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 @ =gUnknown_02038559 - ldrb r0, [r0] - bl sub_80A3CA8 -_080A3E52: - ldr r0, _080A3E64 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - 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 @ =gTasks - 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 @ =gUnknown_03005D10 - ldr r1, _080A3EF0 @ =gUnknown_02038559 - 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 ItemListMenu_InitMenu - 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 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r2, _080A3F48 @ =gUnknown_03005D10 - ldr r0, _080A3F4C @ =gUnknown_02038559 - 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 @ =gTasks - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - adds r3, r1 - ldr r5, _080A3F98 @ =gUnknown_03005D10 - ldr r4, _080A3F9C @ =gUnknown_02038559 - 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 @ =gBG2TilemapBuffer + 0xB4 - 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 @ =gBG2TilemapBuffer + 0xB4 - 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 @ =gBG2TilemapBuffer + 0xB4 - 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 @ =gUnknown_03005D10 - ldr r3, _080A4118 @ =gUnknown_02038559 - 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 @ =gSaveBlock1 + 0x496 -_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 @ =gUnknown_03005D24 - 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 @ =gUnknown_03005D10 - ldr r0, _080A4160 @ =gUnknown_02038559 - 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 @ =gStringVar1 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r0, 0x1C - ldrsh r1, [r1, r0] - ldr r3, _080A42A8 @ =gUnknown_03005D10 - ldr r0, _080A42AC @ =gUnknown_02038559 - 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 @ =gUnknown_02038540 - mov r8, r0 - ldr r1, _080A4348 @ =gUnknown_03005D10 - ldr r0, _080A434C @ =gUnknown_02038559 - 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 @ =gUnknown_03000701 - 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 @ =gStringVar1 - ldr r1, _080A4358 @ =gOtherText_CloseBag - 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 @ =gBG2TilemapBuffer + 0x1C - 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 @ =gUnknown_03005D24 - mov r8, r0 - b _080A441A - .align 2, 0 -_080A43A0: .4byte gUnknown_03005D24 -_080A43A4: - ldr r1, _080A4440 @ =gUnknown_03005D10 - ldr r0, _080A4444 @ =gUnknown_02038559 - 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 @ =gStringVar1 - 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_GetItem - 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 @ =gStringVar1 - 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 @ =gSaveBlock1 + 0x496 - mov r9, r0 - b _080A4520 - .align 2, 0 -_080A446C: .4byte gSaveBlock1 + 0x496 -_080A4470: - ldr r1, _080A44E8 @ =gUnknown_03005D10 - ldr r0, _080A44EC @ =gUnknown_02038559 - 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 @ =gStringVar1 - 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 @ =gUnknown_03005D24 - mov r8, r0 - ldr r0, [r0] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r7, 0 - movs r2, 0x60 - movs r3, 0 - bl sub_8072C74 - ldr r0, _080A44F0 @ =gStringVar1 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - ldr r0, _080A44F8 @ =gUnknown_02038558 - 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 @ =gBG2TilemapBuffer - mov r9, r0 - b _080A46C2 - .align 2, 0 -_080A456C: .4byte gBG2TilemapBuffer -_080A4570: - ldr r1, _080A461C @ =gUnknown_03005D10 - ldr r0, _080A4620 @ =gUnknown_02038559 - 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 @ =gStringVar1 - 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 @ =gUnknown_03005D24 - 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 @ =gMoveNames - adds r2, r0 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldr r3, _080A4630 @ =0xfffffee0 - 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 @ =0x0000105d - 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 @ =0xfffffeae - 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 @ =gMoveNames - adds r1, r0 - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 -_080A46AE: - ldr r0, _080A46F8 @ =gStringVar1 - 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 @ =gBG2TilemapBuffer - mov r10, r0 - ldr r1, _080A4728 @ =gStringVar2 - mov r9, r1 - ldr r0, _080A472C @ =gUnknown_03005D24 - mov r8, r0 - b _080A47B4 - .align 2, 0 -_080A4724: .4byte gBG2TilemapBuffer -_080A4728: .4byte gStringVar2 -_080A472C: .4byte gUnknown_03005D24 -_080A4730: - ldr r1, _080A47DC @ =gUnknown_03005D10 - ldr r0, _080A47E0 @ =gUnknown_02038559 - 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 @ =gStringVar1 - 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 CopyItemName - 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 @ =gStringVar1 - 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 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _080A4852 - lsls r0, 2 - ldr r1, _080A480C @ =_080A4810 - 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 @ =gUnknown_03005D10 - ldr r0, _080A4874 @ =gUnknown_02038559 - 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 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A48B0 - ldr r1, _080A48A8 @ =gUnknown_03005D10 - ldr r0, _080A48AC @ =gUnknown_02038559 - 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 @ =gUnknown_03005D10 - ldr r0, _080A48D4 @ =gUnknown_02038559 - 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 ItemListMenu_InitDescription -ItemListMenu_InitDescription: @ 80A490C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _080A4960 @ =gUnknown_03005D10 - ldr r0, _080A4964 @ =gUnknown_02038559 - 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 @ =gOtherText_ReturnTo - 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 @ =gUnknown_0840E740 - ldr r0, _080A4970 @ =gUnknown_03000701 - 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_GetDescription - 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 ItemListMenu_InitDescription - - thumb_func_start ItemListMenu_ChangeDescription -ItemListMenu_ChangeDescription: @ 80A49AC - push {r4,r5,lr} - sub sp, 0x64 - adds r4, r1, 0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080A49E8 @ =gUnknown_03005D10 - ldr r0, _080A49EC @ =gUnknown_02038559 - 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 @ =gOtherText_ReturnTo - 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 @ =gUnknown_0840E740 - ldr r0, _080A4A14 @ =gUnknown_03000701 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x4 - movs r2, 0x78 -_080A4A08: - movs r3, 0 - bl MenuPrint_PixelCoords - 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 ItemId_CopyDescription - 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 MenuPrint_PixelCoords -_080A4A4C: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ItemListMenu_ChangeDescription - - 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 MenuPrint_PixelCoords -_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 @ =gTasks - 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 @ =gUnknown_0203855C - 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 @ =gUnknown_03005D10 - ldr r1, _080A4B54 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D10 - ldr r1, _080A4B8C @ =gUnknown_02038559 - 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 @ =0x00000103 - cmp r4, r0 - beq _080A4BAE - adds r0, 0xD - cmp r4, r0 - bne _080A4BBC -_080A4BAE: - ldr r0, _080A4BB8 @ =gOtherText_Walk - 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 @ =gUnknown_083C1640 - ldr r0, _080A4BE0 @ =gUnknown_03000704 - 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 @ =gOtherText_Check -_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 @ =gUnknown_02038564 - 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 @ =gUnknown_03000701 - 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 @ =gUnknown_02038564 - ldrb r0, [r0] - cmp r6, r0 - bcs _080A4CA0 - ldr r4, _080A4C60 @ =gUnknown_083C1640 -_080A4C4C: - cmp r6, 0 - bne _080A4C68 - ldr r0, _080A4C64 @ =word_203855E - 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 @ =gUnknown_03000704 - 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 @ =gUnknown_02038564 - ldrb r0, [r0] - cmp r6, r0 - bcc _080A4C4C -_080A4CA0: - ldr r0, _080A4CCC @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A4CD4 - ldr r0, _080A4CC8 @ =gUnknown_02038564 - ldrb r3, [r0] - ldr r0, _080A4CD0 @ =gUnknown_03000700 - 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 @ =gUnknown_02038564 - 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 @ =gUnknown_083C1640 -_080A4D1E: - ldr r0, _080A4D9C @ =gUnknown_03000704 - 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 @ =gUnknown_02038564 - ldrb r0, [r0] - cmp r6, r0 - bcc _080A4D1E -_080A4D6E: - ldr r0, _080A4DA0 @ =gUnknown_02038564 - 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 @ =gTasks - 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 @ =gBG1TilemapBuffer - 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 @ =gBG2TilemapBuffer - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A3B04 - ldr r0, _080A4F08 @ =gUnknown_02038559 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_80A3AC0 - bl sub_80A3770 - bl sub_80A7C64 - adds r0, r6, 0 - bl CreateBagPokeballSprite - 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 @ =gUnknown_03000701 - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4F60 - ldr r4, _080A4F3C @ =gMain - 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 @ =gMain - ldrh r0, [r0, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A4FE8 - ldr r1, _080A4FB0 @ =gUnknown_03005D10 - ldr r0, _080A4FB4 @ =gUnknown_02038559 - 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 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A50AE - ldr r1, _080A4FE4 @ =gMain - 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 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A502C - ldr r1, _080A5024 @ =gUnknown_03005D10 - ldr r0, _080A5028 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D10 - ldr r0, _080A505C @ =gUnknown_02038559 - 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 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A50C0 - ldr r1, _080A5084 @ =gMain - 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 @ =gTasks - 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 @ =sub_80A4F68 - 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 @ =gTasks + 0x8 - adds r5, r0, r1 - ldr r0, _080A514C @ =gPaletteFade - 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 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080A5190 - ldr r3, _080A5154 @ =gUnknown_02038559 - ldrb r0, [r3] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A5190 - ldr r0, _080A5158 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080A5190 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5160 - ldr r1, _080A515C @ =gUnknown_03005D10 - 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 gTasks + 0x8 -_080A514C: .4byte gPaletteFade -_080A5150: .4byte gMain -_080A5154: .4byte gUnknown_02038559 -_080A5158: .4byte gUnknown_03000701 -_080A515C: .4byte gUnknown_03005D10 -_080A5160: - ldr r1, _080A5184 @ =gUnknown_03005D10 - 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 @ =gUnknown_03005D10 - ldr r6, _080A51D8 @ =gUnknown_02038559 - 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 @ =word_203855E - strh r1, [r0] - ldr r1, _080A51E0 @ =gUnknown_083C16BC - ldr r0, _080A51E4 @ =gUnknown_03000701 - 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 @ =gUnknown_02038560 - 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 @ =word_203855E - ldrb r0, [r2] - ldr r1, _080A5258 @ =gUnknown_03005D24 - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - ldr r1, _080A525C @ =gUnknown_083C16BC - ldr r0, _080A5260 @ =gUnknown_03000701 - 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 @ =gUnknown_03000701 - ldrb r0, [r2] - cmp r0, 0x5 - beq _080A52B6 - ldr r0, _080A52A8 @ =word_203855E - strh r1, [r0] - ldr r1, _080A52AC @ =gUnknown_083C16BC - 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 @ =gTasks + 0x8 - adds r1, r0 - ldr r0, _080A52F8 @ =gMain - 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 gTasks + 0x8 -_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 @ =gTasks + 0x8 - adds r4, r1, r2 - ldr r1, _080A53A0 @ =gUnknown_02038560 - ldrb r1, [r1] - ldr r2, _080A53A4 @ =gUnknown_03005D24 - 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 @ =gUnknown_02038559 - 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 gTasks + 0x8 -_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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A53F4 @ =gUnknown_02038563 - 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 @ =gUnknown_03000701 - movs r1, 0 - strb r1, [r0] - ldr r0, _080A5410 @ =sub_80A53CC - 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 sub_80A78A0 - cmp r0, 0 - bne _080A5426 - b _080A5552 -_080A5426: - ldr r2, _080A5460 @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A546C - ldr r4, _080A5464 @ =gUnknown_03000700 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5440 - b _080A5552 -_080A5440: - ldrb r1, [r4] - ldr r0, _080A5468 @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5552 - ldrb r1, [r4] - ldr r0, _080A5498 @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x1 - bls _080A5552 - adds r1, r0, 0 - ldr r0, _080A54C8 @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x1 - bhi _080A5552 - adds r1, r0, 0 - ldr r0, _080A54FC @ =gUnknown_03000704 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r1, _080A5574 @ =gUnknown_03005D10 - ldr r0, _080A5578 @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r1, _080A5580 @ =gUnknown_083C1640 - ldr r0, _080A5584 @ =gUnknown_03000704 - 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 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A55E0 - ldr r0, _080A558C @ =gUnknown_03000700 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r0, _080A55C4 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r1, _080A55C8 @ =gUnknown_083C1640 - ldr r0, _080A55CC @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A55D0 @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - 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 @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A5648 - ldr r4, _080A5640 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0 - bne _080A561E - b _080A5736 -_080A561E: - adds r1, r0, 0 - ldr r0, _080A5644 @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - ldrb r1, [r4] - ldr r0, _080A5678 @ =gUnknown_02038564 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _080A5736 - cmp r1, 0x2 - beq _080A5736 - ldr r0, _080A567C @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x2 - bls _080A5736 - adds r1, r0, 0 - ldr r0, _080A56AC @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x2 - bhi _080A5736 - adds r1, r0, 0 - ldr r0, _080A56E0 @ =gUnknown_03000704 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r1, _080A5750 @ =gUnknown_03005D10 - ldr r0, _080A5754 @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r1, _080A575C @ =gUnknown_083C1640 - ldr r0, _080A5760 @ =gUnknown_03000704 - 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 @ =gUnknown_03000700 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r0, _080A579C @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r1, _080A57A0 @ =gUnknown_083C1640 - ldr r0, _080A57A4 @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A57A8 @ =gUnknown_03000704 - 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 @ =gUnknown_03000704 - ldr r0, _080A57F0 @ =gUnknown_02038559 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r4, _080A57F4 @ =gUnknown_083C16AE - adds r1, r4 - str r1, [r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bne _080A57FC - ldr r1, _080A57F8 @ =gUnknown_02038564 - 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 @ =word_203855E - 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 @ =gUnknown_02038564 - 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 @ =gUnknown_02038564 - movs r0, 0x2 - strb r0, [r1] - movs r5, 0x7 -_080A582C: - adds r6, r1, 0 - ldr r0, _080A5884 @ =gBG1TilemapBuffer - 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 sub_80A78A0 - cmp r0, 0 - beq _080A5988 - ldr r2, _080A58B8 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080A58C0 - ldr r4, _080A58BC @ =gUnknown_03000700 - 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 @ =gUnknown_03000700 - ldrb r1, [r4] - ldr r0, _080A58F0 @ =gUnknown_02038564 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x1C] - ldr r1, _080A594C @ =gUnknown_03005D10 - ldr r0, _080A5950 @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r1, _080A5958 @ =gUnknown_083C1640 - ldr r0, _080A595C @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A5960 @ =gUnknown_03000704 - 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 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r0, _080A5994 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r0, _080A5998 @ =gUnknown_083C1640 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A59C8 @ =sub_805469C - lsrs r2, r3, 16 - movs r4, 0 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - ldr r1, _080A59CC @ =gUnknown_03005CE0 - 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 @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - ldr r7, _080A5A40 @ =gUnknown_03000701 - ldrb r0, [r7] - cmp r0, 0x5 - bne _080A59E8 - movs r0, 0x1 - strb r0, [r1] -_080A59E8: - ldr r1, _080A5A44 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r6, r0, r1 - ldr r3, _080A5A48 @ =gUnknown_03005D10 - ldr r2, _080A5A4C @ =gUnknown_02038559 - 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 @ =sub_80A5888 - 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 @ =gBG1TilemapBuffer - bl sub_80A4BF0 - ldr r0, _080A5A80 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A5A6E - ldr r0, _080A5A84 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A5A90 -_080A5A6E: - ldr r0, _080A5A88 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A5A8C @ =sub_80A5414 - 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 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A5AA8 @ =sub_80A5600 -_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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5AE0 @ =sub_80A5B00 - 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 @ =gTasks + 0x8 - adds r2, r0, r1 - ldr r0, _080A5B3C @ =gPaletteFade - 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 gTasks + 0x8 -_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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A5B64 @ =gUnknown_02038563 - 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 @ =word_203855E - ldrh r0, [r5] - bl ItemId_GetFieldFunc - 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_GetType - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r0, _080A5BE4 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - beq _080A5BEC - ldr r0, _080A5BE8 @ =word_203855E - ldrh r0, [r0] - bl ItemId_GetFieldFunc - 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 @ =gOtherText_NoPokemon - ldr r2, _080A5C20 @ =sub_80A5C48 - 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 ItemListMenu_InitMenu - 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 @ =gBG1TilemapBuffer - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5C98 @ =sub_80A5C24 - 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 @ =Task_CallItemUseOnFieldCallback - 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 @ =gUnknown_03005D00 - 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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A5D24 @ =gUnknown_02038563 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldr r0, _080A5D74 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - 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 @ =gBG1TilemapBuffer - 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 @ =gStringVar1 - bl CopyItemName - cmp r4, 0x63 - bls _080A5DCC - ldr r0, _080A5DC8 @ =gStringVar2 - 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 @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN -_080A5DD8: - ldr r0, _080A5DF4 @ =gBG1TilemapBuffer - 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 @ =gBG1TilemapBuffer - 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 @ =gMain - 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 @ =gTasks - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5E8C @ =sub_80A5E1C - 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 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A5EF8 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A5EEC @ =word_203855E - ldrh r0, [r0] - ldr r2, _080A5EF0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl sub_80A5DA0 - ldr r1, _080A5EF4 @ =gUnknown_083C16F4 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5F5C @ =sub_80A5EA0 - str r1, [r0] - movs r0, 0x3 - bl sub_80A7528 - ldr r0, _080A5F60 @ =gUnknown_02038559 - 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 ItemListMenu_InitMenu - 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 @ =gSaveBlock1 - ldr r1, _080A5FD4 @ =0x00000496 - adds r4, r0, r1 - ldr r5, _080A5FD8 @ =word_203855E - 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 ItemListMenu_InitMenu - 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 ItemListMenu_InitMenu - 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 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A6062 - ldr r0, _080A6070 @ =gBG1TilemapBuffer - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6078 @ =sub_80A6000 - 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 DisplayCannotBeHeldMessage -DisplayCannotBeHeldMessage: @ 80A607C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A73FC - ldr r0, _080A60B4 @ =word_203855E - ldrh r0, [r0] - ldr r1, _080A60B8 @ =gStringVar1 - bl CopyItemName - ldr r5, _080A60BC @ =gStringVar4 - ldr r1, _080A60C0 @ =gOtherText_CantBeHeld - adds r0, r5, 0 - bl StringExpandPlaceholders - bl sub_80A7590 - ldr r2, _080A60C4 @ =sub_80A6024 - 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 DisplayCannotBeHeldMessage - - 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 @ =word_203855E - ldrh r0, [r5] - bl sub_80F931C - lsls r0, 24 - cmp r0, 0 - bne _080A6108 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A6100 @ =gOtherText_CantWriteMail - ldr r2, _080A6104 @ =sub_80A6024 - 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_GetImportance - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A615C @ =sub_808B020 - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - ldr r1, _080A6160 @ =sub_80A5B00 - str r1, [r0] - ldr r1, _080A6164 @ =gUnknown_02038561 - 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 DisplayCannotBeHeldMessage -_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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A61A4 @ =sub_814625C - 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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A61CC @ =gUnknown_02038563 - 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 @ =gUnknown_03000701 - movs r1, 0x2 - strb r1, [r0] - ldr r0, _080A61E8 @ =sub_80A61A8 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6210 @ =sub_808A3F8 - 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 @ =gUnknown_02038559 - ldrb r0, [r0] - adds r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080A6248 @ =word_203855E - ldrh r0, [r4] - bl sub_80F931C - lsls r0, 24 - cmp r0, 0 - bne _080A6254 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A624C @ =gOtherText_CantWriteMail - ldr r2, _080A6250 @ =sub_80A6024 - 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 @ =gStringVar1 - bl CopyItemName - ldr r4, _080A628C @ =gStringVar4 - ldr r1, _080A6290 @ =gOtherText_CantBeHeldHere - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80A7590 - ldr r2, _080A6294 @ =sub_80A6024 - 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_GetImportance - lsls r0, 24 - cmp r0, 0 - bne _080A62CC - ldr r1, _080A62C4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A62C8 @ =sub_808A3F8 - 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 DisplayCannotBeHeldMessage -_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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A62FC @ =gUnknown_02038563 - 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 @ =gUnknown_03000701 - movs r1, 0x3 - strb r1, [r0] - ldr r0, _080A6318 @ =sub_80A62D8 - 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 @ =gUnknown_0300485C - ldr r1, _080A6348 @ =sub_80B3050 - str r1, [r2] - ldr r2, _080A634C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6350 @ =c2_exit_to_overworld_2_switch - 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 @ =gTasks - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r0 - ldr r4, _080A63C8 @ =gUnknown_03005D10 - ldr r3, _080A63CC @ =gUnknown_02038559 - 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 @ =word_203855E - ldrh r0, [r4] - ldr r1, _080A63D4 @ =gStringVar2 - bl CopyItemName - ldrh r0, [r4] - bl ItemId_GetPrice - lsls r0, 16 - cmp r0, 0 - bne _080A63E4 - ldr r4, _080A63D8 @ =gStringVar4 - ldr r1, _080A63DC @ =gOtherText_CantBuyThat - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A63E0 @ =sub_80A6444 - 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 @ =gStringVar4 - ldr r1, _080A6404 @ =gOtherText_HowManyToSell - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6408 @ =sub_80A648C - 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 @ =gTasks - 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 ItemListMenu_InitMenu - 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 @ =gBG1TilemapBuffer - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6488 @ =sub_80A640C - 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 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput - str r0, [r4] - ldr r0, _080A64F0 @ =gBG1TilemapBuffer - 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 @ =gUnknown_02038559 - 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 @ =word_203855E - 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 @ =gMain - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6570 @ =sub_80A6520 - 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 @ =word_203855E - ldrh r0, [r0] - ldr r1, _080A65A4 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - ldrb r1, [r4, 0xA] - bl sub_80A6870 - ldr r0, _080A65A8 @ =sub_80A6548 - 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 @ =gBG1TilemapBuffer - movs r1, 0x6 - str r1, [sp] - movs r1, 0x7 - movs r2, 0x6 - movs r3, 0x6 - bl sub_80A36B8 - ldr r0, _080A6604 @ =word_203855E - ldrh r0, [r0] - ldr r1, _080A6608 @ =gStringVar2 - bl CopyItemName - ldr r4, _080A660C @ =gStringVar4 - ldr r1, _080A6610 @ =gOtherText_SoldItem - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6614 @ =sub_80A6574 - 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 @ =gBG1TilemapBuffer - 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 @ =gUnknown_083C16FC - 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 @ =word_203855E - ldrh r0, [r0] - ldr r2, _080A66B0 @ =gTasks - 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 @ =gMain - 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 @ =gBG1TilemapBuffer - movs r1, 0x3 - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0xD - bl sub_80A36B8 - ldr r4, _080A672C @ =gStringVar1 - ldr r0, _080A6730 @ =word_203855E - ldrh r0, [r0] - bl ItemId_GetPrice - lsls r0, 16 - lsrs r0, 17 - ldr r2, _080A6734 @ =gTasks - 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 @ =gStringVar4 - ldr r1, _080A673C @ =gOtherText_CanPay - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6740 @ =sub_80A6650 - 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 @ =gTasks - 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 ItemListMenu_InitMenu - 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 @ =gBG1TilemapBuffer - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A67F0 @ =sub_80A6760 - 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_GetPrice - lsls r0, 16 - lsrs r0, 17 - muls r0, r5 - movs r1, 0x6 - movs r2, 0x6 - movs r3, 0xB - bl sub_80B7A94 - ldr r6, _080A6838 @ =gStringVar1 - adds r0, r4, 0 - bl ItemId_GetPrice - 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 @ =gSaveBlock1 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_80B7C14 - ldr r0, _080A686C @ =gBG1TilemapBuffer - 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 @ =gSaveBlock1 + 0x490 - bl ItemId_GetPrice - 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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A68C8 @ =gUnknown_02038563 - 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 @ =gUnknown_02038559 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _080A68E8 @ =gUnknown_03000701 - movs r0, 0x4 - strb r0, [r1] - ldr r0, _080A68EC @ =sub_80A68A4 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6914 @ =sub_80546B8 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A693C @ =sub_80546B8 - 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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A6964 @ =gUnknown_02038563 - 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 @ =gUnknown_02038559 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _080A6994 @ =gUnknown_03000701 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080A6998 @ =sub_80A6940 - 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 @ =gUnknown_03000704 - ldr r0, _080A69B0 @ =gUnknown_083C16B8 - str r0, [r1] - ldr r1, _080A69B4 @ =gUnknown_02038564 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A69DC @ =sub_804E990 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6A04 @ =sub_804E990 - 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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A6A2C @ =gUnknown_02038563 - 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 @ =gUnknown_03000701 - movs r1, 0x6 - strb r1, [r0] - ldr r0, _080A6A48 @ =sub_80A6A08 - 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 @ =gUnknown_0300485C - ldr r1, _080A6A78 @ =sub_813A0F8 - str r1, [r2] - ldr r2, _080A6A7C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6A80 @ =c2_exit_to_overworld_2_switch - 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 @ =gTasks + 0x8 - adds r0, r4, r6 - mov r8, r0 - ldr r0, _080A6AEC @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r0, _080A6AF0 @ =word_203855E - ldrh r0, [r0] - ldr r1, _080A6AF4 @ =gStringVar1 - bl CopyItemName - ldr r0, _080A6AF8 @ =gStringVar2 - 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 @ =sub_80A5E1C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6AE8: .4byte gTasks + 0x8 -_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 @ =gMain - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r1, _080A6B5C @ =gUnknown_03005D10 - ldr r0, _080A6B60 @ =gUnknown_02038559 - 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 @ =gTasks + 0x8 - adds r7, r5, r6 - ldr r0, _080A6BA0 @ =word_203855E - mov r8, r0 - ldrh r0, [r0] - bl ItemId_GetImportance - 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 @ =sub_80A6B00 - str r1, [r0] - movs r0, 0x9 - bl sub_80A7528 - b _080A6BD2 - .align 2, 0 -_080A6B9C: .4byte gTasks + 0x8 -_080A6BA0: .4byte word_203855E -_080A6BA4: .4byte sub_80A6B00 -_080A6BA8: - mov r1, r8 - ldrh r0, [r1] - ldrh r1, [r7, 0x2] - bl AddPCItem - 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 @ =sub_80A6B00 - 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 @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A6C20 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A6C1C @ =gBG1TilemapBuffer - 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 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _080A6C64 @ =gUnknown_03005D10 - ldr r0, _080A6C68 @ =gUnknown_02038559 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldr r2, _080A6CE8 @ =gUnknown_03005D10 - ldr r6, _080A6CEC @ =gUnknown_02038559 - 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 @ =sub_80A6BE0 - 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 @ =gSaveBlock1 - ldr r1, _080A6D74 @ =0x00000496 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080A6D84 - movs r1, 0x1 - bl CheckBagHasItem - 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 @ =word_203855E - ldrh r0, [r4] - strh r0, [r1] - ldrh r0, [r4] - bl ItemId_GetFieldFunc - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6D7C @ =gTasks - 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 @ =Event_NoRegisteredItem - 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 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A6DB8 @ =gUnknown_02038563 - 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 @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - ldr r1, _080A6DE8 @ =gUnknown_03000701 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080A6DEC @ =sub_80A6D98 - 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 @ =gUnknown_02038564 - 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 @ =gUnknown_083C1640 - ldr r0, _080A6E54 @ =gUnknown_03000704 - 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 @ =gUnknown_083C1640 - ldr r4, _080A6EB0 @ =gUnknown_03000704 - 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 @ =gUnknown_02038564 - 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 @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A6EE8 - ldr r4, _080A6EE4 @ =gUnknown_03000700 - 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 @ =gUnknown_03000700 - ldrb r0, [r4] - adds r0, 0x1 - ldr r1, _080A6F10 @ =gUnknown_02038564 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r1, _080A6F6C @ =gUnknown_03005D10 - ldr r0, _080A6F70 @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r1, _080A6F78 @ =gUnknown_083C1640 - ldr r0, _080A6F7C @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A6F80 @ =gUnknown_03000704 - 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 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _080A6FCC @ =gUnknown_03005D10 - ldr r0, _080A6FD0 @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r0, _080A6FD8 @ =gUnknown_083C1640 - 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 @ =word_203855E - ldrh r0, [r0] - bl ItemId_GetBattleUsage - lsls r0, 24 - cmp r0, 0 - beq _080A7008 - ldr r1, _080A6FFC @ =gUnknown_03000704 - ldr r0, _080A7000 @ =gUnknown_083C1708 - str r0, [r1] - ldr r1, _080A7004 @ =gUnknown_02038564 - 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 @ =gUnknown_03000704 - ldr r0, _080A701C @ =gUnknown_083C170A - str r0, [r1] - ldr r1, _080A7020 @ =gUnknown_02038564 - 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 @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - bl sub_80A6FDC - ldr r0, _080A7080 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldr r3, _080A7084 @ =gUnknown_03005D10 - ldr r2, _080A7088 @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - bl sub_80A6DF0 - ldr r0, _080A7090 @ =sub_80A6EB8 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A70D0 @ =sub_802E424 - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080A70D4 @ =sub_80A5B00 - 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 @ =word_203855E - ldrh r0, [r4] - bl ItemId_GetBattleFunc - cmp r0, 0 - beq _080A711A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - bl ItemId_GetBattleFunc - 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 ItemListMenu_InitMenu - 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 @ =gUnknown_02038563 - ldr r5, _080A715C @ =gTasks - 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 @ =sub_80A7230 - 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 @ =gUnknown_03000700 - movs r1, 0 - strb r1, [r0] - ldr r0, _080A7218 @ =gUnknown_02038559 - strb r1, [r0] - movs r1, 0 - ldr r4, _080A721C @ =0x0201e000 - ldr r5, _080A7220 @ =gSaveBlock1 + 0x560 - ldr r3, _080A7224 @ =gUnknown_03005D10 - 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 ClearItemSlots - adds r0, r4, 0 - movs r1, 0x10 - bl ClearItemSlots - movs r0, 0xD - movs r1, 0x1 - bl AddBagItem - movs r0, 0x4 - movs r1, 0x1 - bl AddBagItem - ldr r1, _080A7228 @ =gUnknown_03000701 - movs r0, 0x7 - strb r0, [r1] - ldr r0, _080A722C @ =sub_80A7150 - 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 @ =gTasks + 0x8 - 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 gTasks + 0x8 -_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 @ =word_203855E - movs r0, 0x4 - strh r0, [r1] - ldr r1, _080A72DC @ =gUnknown_03000704 - ldr r0, _080A72E0 @ =gUnknown_083C1708 - str r0, [r1] - ldr r1, _080A72E4 @ =gUnknown_02038564 - movs r0, 0x2 - strb r0, [r1] - mov r0, r8 - adds r4, r0, r6 - ldr r3, _080A72E8 @ =gUnknown_03005D10 - ldr r2, _080A72EC @ =gUnknown_02038559 - 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 @ =gBG1TilemapBuffer - 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 @ =gBG1TilemapBuffer - bl sub_80A4DA4 - ldr r4, _080A7348 @ =gSaveBlock1 + 0x560 - ldr r5, _080A734C @ =0x0201e000 - 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 @ =sub_802E424 - 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 @ =sub_80A5B00 - 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 ItemListMenu_InitMenu -ItemListMenu_InitMenu: @ 80A736C - push {lr} - sub sp, 0x8 - ldr r1, _080A73B0 @ =gUnknown_03005D10 - ldr r0, _080A73B4 @ =gUnknown_02038559 - 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 @ =0x0000ffff - ldr r3, _080A73BC @ =0x00002d9f - movs r0, 0xF - str r0, [sp] - movs r0, 0x10 - movs r2, 0xC - bl CreateBlendedOutlineCursor - 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 ItemListMenu_InitMenu - - thumb_func_start sub_80A73C0 -sub_80A73C0: @ 80A73C0 - push {lr} - ldr r1, _080A73E8 @ =gUnknown_03005D10 - ldr r0, _080A73EC @ =gUnknown_02038559 - 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 @ =gUnknown_0203853C - 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 @ =_080A7450 - 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 @ =gUnknown_03005D10 - ldr r0, _080A74A4 @ =gUnknown_02038559 - 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 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldrb r1, [r4, 0x1] - bl ItemListMenu_ChangeDescription - b _080A74FC - .align 2, 0 -_080A74A0: .4byte gUnknown_03005D10 -_080A74A4: .4byte gUnknown_02038559 -_080A74A8: .4byte gUnknown_03005D24 -_080A74AC: - ldr r0, _080A74B0 @ =gOtherText_SwitchWhichItem - b _080A74E6 - .align 2, 0 -_080A74B0: .4byte gOtherText_SwitchWhichItem -_080A74B4: - ldr r0, _080A74B8 @ =gOtherText_WhatWillYouDo2 - b _080A74E6 - .align 2, 0 -_080A74B8: .4byte gOtherText_WhatWillYouDo2 -_080A74BC: - ldr r0, _080A74C0 @ =gOtherText_HowManyToToss - b _080A74E6 - .align 2, 0 -_080A74C0: .4byte gOtherText_HowManyToToss -_080A74C4: - ldr r0, _080A74C8 @ =gOtherText_ThrewAwayItem - b _080A74E6 - .align 2, 0 -_080A74C8: .4byte gOtherText_ThrewAwayItem -_080A74CC: - ldr r0, _080A74D0 @ =gOtherText_OkayToThrowAwayPrompt - b _080A74E6 - .align 2, 0 -_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt -_080A74D4: - ldr r0, _080A74D8 @ =gOtherText_HowManyToDeposit - b _080A74E6 - .align 2, 0 -_080A74D8: .4byte gOtherText_HowManyToDeposit -_080A74DC: - ldr r0, _080A74E0 @ =gOtherText_DepositedItems - b _080A74E6 - .align 2, 0 -_080A74E0: .4byte gOtherText_DepositedItems -_080A74E4: - ldr r0, _080A74F0 @ =gOtherText_NoRoomForItems -_080A74E6: - ldrb r1, [r4, 0x1] - bl sub_80A4A98 - b _080A74FC - .align 2, 0 -_080A74F0: .4byte gOtherText_NoRoomForItems -_080A74F4: - ldr r0, _080A7518 @ =gOtherText_CantStoreSomeoneItem - 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 @ =gUnknown_0203853C - 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 @ =gUnknown_0203853C - 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 @ =gUnknown_0203853C - 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 @ =gUnknown_0203853C - 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 @ =gUnknown_0203853C - 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 @ =gUnknown_02038540 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7622 - bl sub_80A7988 - adds r5, r0, 0 - cmp r5, 0 - bne _080A7622 - ldr r0, _080A762C @ =gUnknown_02038563 - 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 @ =gUnknown_02038540 - 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 @ =gUnknown_02038540 - 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 @ =gUnknown_02038563 - 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 @ =gUnknown_02038540 - 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 @ =gUnknown_02038540 - 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 @ =gUnknown_02038540 - 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 @ =gUnknown_02038540 - 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 @ =gUnknown_02038544 - 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 @ =gUnknown_02038544 - 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 @ =gUnknown_02038544 - 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 @ =gUnknown_02038550 - 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 @ =gUnknown_083C1640 - ldr r0, _080A77B0 @ =gUnknown_03000704 - 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 @ =word_203855E - ldrh r0, [r0] - bl sub_80A4B90 - adds r3, r0, 0 - b _080A77DC - .align 2, 0 -_080A77C4: .4byte word_203855E -_080A77C8: - ldr r2, _080A781C @ =gUnknown_083C1640 - ldrb r0, [r4, 0x1] - ldr r1, _080A7820 @ =gUnknown_03000704 - 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 @ =gUnknown_02038564 - 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 @ =gUnknown_02038550 - 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 @ =gUnknown_02038550 - 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 @ =gUnknown_02038550 - 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 @ =gUnknown_02038550 - 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 sub_80A78A0 -sub_80A78A0: @ 80A78A0 - push {lr} - ldr r0, _080A78B4 @ =gUnknown_02038550 - 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 sub_80A78A0 - - thumb_func_start sub_80A78B8 -sub_80A78B8: @ 80A78B8 - ldr r1, _080A78C0 @ =gUnknown_02038554 - 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 @ =gLinkOpen - 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 @ =gLinkOpen - 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 @ =gLinkOpen - 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 @ =gUnknown_02038554 - 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 @ =gUnknown_02038554 - 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 @ =sub_80A79B4 - 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 @ =gUnknown_0203855B - 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 @ =gUnknown_0203855C - 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 @ =gUnknown_0203855B - 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 @ =gUnknown_0203855B - 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 @ =gSpriteAffineAnimTable_83C1CC4 - 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 @ =gUnknown_0203855C - 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 CreateBagSprite -CreateBagSprite: @ 80A7B10 - push {lr} - ldr r0, _080A7B24 @ =gSpriteTemplate_83C1CE0 - 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 CreateBagSprite - - 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 @ =sub_80A7B6C - 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 @ =gSpriteAffineAnimTable_83C1D20 - b _080A7BA2 - .align 2, 0 -_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20 -_080A7BA0: - ldr r0, _080A7BD0 @ =gSpriteAffineAnimTable_83C1D20 + 0x4 -_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 @ =SpriteCallbackDummy - 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 CreateBagPokeballSprite -CreateBagPokeballSprite: @ 80A7C20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A7C54 @ =gUnknown_083C1D30 - bl LoadSpritePalette - ldr r0, _080A7C58 @ =gSpriteTemplate_83C1D38 - movs r1, 0x10 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - ldr r1, _080A7C5C @ =gUnknown_02038568 - strb r0, [r1] - ldr r2, _080A7C60 @ =gSprites - 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 CreateBagPokeballSprite - - thumb_func_start sub_80A7C64 -sub_80A7C64: @ 80A7C64 - push {r4,r5,lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - ldr r5, _080A7C98 @ =gSprites - ldr r4, _080A7C9C @ =gUnknown_02038568 - 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 @ =gSaveBlock1 + 0x317C - ldr r1, _080A7D38 @ =0x02000000 - adds r0, r4, 0 - bl sub_80A7CA0 - movs r0, 0x90 - lsls r0, 3 - adds r4, r0 - str r4, [sp] - ldr r1, _080A7D3C @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - ldr r1, _080A7D40 @ =0x00007544 - 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 @ =gBerryGraphicsTable - lsls r4, 3 - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp] - mov r1, sp - ldr r0, _080A7D80 @ =0x00007544 - strh r0, [r1, 0x4] - mov r0, sp - bl LoadCompressedObjectPalette - adds r4, r5 - ldr r0, [r4] - ldr r4, _080A7D84 @ =0x02001000 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _080A7D88 @ =0xfffff000 - 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 @ =gSpriteTemplate_83C1D74 - 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 @ =gUnknown_030041B4 - 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 @ =0x00007544 - 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 @ =0x00007544 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl sub_80A7CF8 - ldr r0, _080A7E54 @ =gSpriteTemplate_83C1E04 - 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 @ =gSprites - 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 @ =gSpriteTemplate_83C1F98 - 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 @ =gUnknown_03004B00 - 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 @ =gSprites - 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 @ =gTasks - 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 @ =sub_80A7EF0 - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - 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 @ =gUnknown_02024BE0 - adds r0, r4, r0 - b _080A8020 - .align 2, 0 -_080A8014: .4byte gUnknown_02024BE0 -_080A8018: - ldr r1, _080A8030 @ =gUnknown_02024BE0 - ldr r0, _080A8034 @ =gUnknown_0202F7C8 - 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 @ =gSprites - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r2, _080A8080 @ =gUnknown_03004B00 - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x26] - ldr r1, _080A8084 @ =gTasks - 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 @ =sub_80A808C - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - 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 @ =gSprites - 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 @ =gTasks - 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 @ =sub_80A81D8 - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8368 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r5, 0x2] - strh r2, [r1, 0x24] - ldr r2, _080A836C @ =gTasks - 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 @ =sub_80A8374 - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - 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 @ =gTasks - mov r12, r2 - lsls r4, r5, 2 - ldr r2, _080A8484 @ =sub_80A8488 - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A851C - ldr r1, _080A852C @ =gUnknown_03004B00 - 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 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8560 - ldr r1, _080A855C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - b _080A8564 - .align 2, 0 -_080A8558: .4byte gUnknown_0202F7C8 -_080A855C: .4byte gUnknown_03004B00 -_080A8560: - ldr r1, _080A8590 @ =gUnknown_03004B00 - 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 @ =gUnknown_02024BE0 - ldr r0, _080A8598 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _080A859C @ =sub_80A85A4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080A85A0 @ =sub_8078458 - 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 @ =sub_8078458 - str r1, [r0, 0x1C] - ldr r1, _080A85C4 @ =move_anim_8072740 - 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 @ =gUnknown_03004B00 - 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 @ =sub_80A8614 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080A8610 @ =sub_8078458 - 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 @ =sub_8078458 - str r1, [r0, 0x1C] - ldr r1, _080A8634 @ =move_anim_8072740 - 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 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A865C - ldr r1, _080A8654 @ =gUnknown_02024BE0 - ldr r0, _080A8658 @ =gUnknown_0202F7C8 - b _080A8660 - .align 2, 0 -_080A8650: .4byte gUnknown_03004B00 -_080A8654: .4byte gUnknown_02024BE0 -_080A8658: .4byte gUnknown_0202F7C8 -_080A865C: - ldr r1, _080A86C0 @ =gUnknown_02024BE0 - ldr r0, _080A86C4 @ =gUnknown_0202F7C9 -_080A8660: - ldrb r0, [r0] - adds r0, r1 - ldrb r7, [r0] - ldr r5, _080A86C8 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x4] - movs r3, 0 - strh r0, [r6, 0x2E] - ldr r0, _080A86CC @ =gSprites - 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 @ =gUnknown_03004B00 - ldrh r1, [r0, 0x2] - lsls r0, r7, 8 - orrs r0, r1 - strh r0, [r6, 0x3C] - ldr r0, _080A86F0 @ =sub_80A86F4 - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A8780 - ldr r0, _080A877C @ =gUnknown_0202F7C8 - b _080A8782 - .align 2, 0 -_080A8778: .4byte gUnknown_03004B00 -_080A877C: .4byte gUnknown_0202F7C8 -_080A8780: - ldr r0, _080A8800 @ =gUnknown_0202F7C9 -_080A8782: - ldrb r2, [r0] - ldr r0, _080A8804 @ =gUnknown_02024BE0 - 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 @ =gUnknown_03004B00 - 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 @ =gUnknown_03004B00 - ldrh r0, [r2, 0x8] - movs r4, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A880C @ =gSprites - 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 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080A8814 @ =sub_80784A8 - 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 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A8840 - ldr r0, _080A883C @ =gUnknown_0202F7C8 - b _080A8842 - .align 2, 0 -_080A8838: .4byte gUnknown_03004B00 -_080A883C: .4byte gUnknown_0202F7C8 -_080A8840: - ldr r0, _080A88C0 @ =gUnknown_0202F7C9 -_080A8842: - ldrb r1, [r0] - ldr r0, _080A88C4 @ =gUnknown_02024BE0 - 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 @ =gUnknown_03004B00 - 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 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r0, _080A88CC @ =gSprites - 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 @ =move_anim_8072740 - 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 @ =sub_80A88F0 - adds r0, r6, 0 - bl oamt_set_x3A_32 -_080A88DC: - ldr r0, _080A88EC @ =sub_80784A8 - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - 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 @ =gUnknown_0202F7C8 - 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 @ =gTasks - 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 @ =sub_80A89B4 - 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 @ =gTasks - 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 @ =gSprites - 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 @ =sub_80A8A18 - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gUnknown_03004B00 - 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 @ =gUnknown_0202F7C8 - b _080A8ABA - .align 2, 0 -_080A8AB4: .4byte gUnknown_0202F7C8 -_080A8AB8: - ldr r5, _080A8AD8 @ =gUnknown_0202F7C9 -_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 @ =gUnknown_02024BE0 - 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 @ =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r5, r0, r1 - strh r2, [r5, 0x8] - ldr r0, _080A8B0C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8B14 - ldr r0, _080A8B10 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - b _080A8B1A - .align 2, 0 -_080A8B08: .4byte gTasks -_080A8B0C: .4byte gUnknown_0202F7C9 -_080A8B10: .4byte gUnknown_03004B00 -_080A8B14: - ldr r0, _080A8B30 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - negs r0, r0 -_080A8B1A: - strh r0, [r5, 0xA] - ldr r0, _080A8B34 @ =gTasks - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A8B38 @ =sub_80A8B3C - 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 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r2, [r1, 0x8] - ldr r3, _080A8B84 @ =gSprites - 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 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8BA4 - ldr r1, _080A8BDC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A8BA4: - ldr r4, _080A8BDC @ =gUnknown_03004B00 - ldrb r0, [r4, 0x8] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8BE0 @ =gTasks - 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 @ =gUnknown_0202F7C9 - ldrb r0, [r0] -_080A8BE8: - strh r0, [r2, 0x12] - ldr r1, _080A8C04 @ =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r1, _080A8C08 @ =sub_80A8C0C - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gSprites - 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 @ =gSprites - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gUnknown_03004B00 - 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 @ =gTasks - 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 @ =sub_80A8D8C - 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 @ =gTasks - 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 @ =gUnknown_03004B00 - 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 @ =gTasks - 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 @ =gTasks - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r6, _080A8E84 @ =gUnknown_03004B00 - 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 @ =gUnknown_0202F7C8 - b _080A8E9A - .align 2, 0 -_080A8E94: .4byte gUnknown_0202F7C8 -_080A8E98: - ldr r0, _080A8EF0 @ =gUnknown_0202F7C9 -_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 @ =gTasks - 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 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A8EF8 @ =sub_80A8FD8 - 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 @ =gUnknown_03004B00 - 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 @ =gTasks - 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 @ =gUnknown_0202F7C8 - b _080A8F46 - .align 2, 0 -_080A8F38: .4byte gUnknown_03004B00 -_080A8F3C: .4byte gTasks -_080A8F40: .4byte gUnknown_0202F7C8 -_080A8F44: - ldr r0, _080A8F74 @ =gUnknown_0202F7C9 -_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 @ =gUnknown_03004B00 - movs r2, 0x6 - ldrsh r1, [r0, r2] - adds r6, r0, 0 - cmp r1, 0x1 - beq _080A8F80 - ldr r2, _080A8F7C @ =gTasks - 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 @ =gTasks - 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 @ =sub_80A8FD8 - 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 @ =gTasks - 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 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r8, r0 - cmp r1, 0 - bne _080A9090 - ldr r4, _080A9088 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _080A908C @ =gUnknown_0202F7BC - 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 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _080A9130 @ =gUnknown_0202F7B8 - 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 @ =gSprites - 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 @ =sub_80A913C - 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 @ =gTasks - 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 @ =gSprites - 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 @ =gSprites - 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 @ =gSprites - 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 @ =gSprites - 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 @ =gSprites - 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 CopyItemName -CopyItemName: @ 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 @ =gOtherText_Berry2 - adds r0, r4, 0 - bl StringAppend - b _080A9258 - .align 2, 0 -_080A9248: .4byte gOtherText_Berry2 -_080A924C: - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy -_080A9258: - pop {r4} - pop {r0} - bx r0 - thumb_func_end CopyItemName - - thumb_func_start CountUsedBagPocketSlots -CountUsedBagPocketSlots: @ 80A9260 - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _080A9284 @ =gBagPockets - 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 gBagPockets -_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 CountUsedBagPocketSlots - - thumb_func_start IsBagPocketNonEmpty -IsBagPocketNonEmpty: @ 80A929C - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _080A92C0 @ =gBagPockets - 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 gBagPockets -_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 CheckBagHasItem -CheckBagHasItem: @ 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_GetPocket - lsls r0, 24 - cmp r0, 0 - bne _080A92F0 - b _080A9336 -_080A92EC: - movs r0, 0x1 - b _080A9338 -_080A92F0: - adds r0, r5, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - movs r3, 0 - ldr r6, _080A9340 @ =gBagPockets - 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 gBagPockets - thumb_func_end CheckBagHasItem - - thumb_func_start CheckBagHasSpace -CheckBagHasSpace: @ 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_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _080A9408 - adds r0, r6, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, _080A940C @ =0x000003e7 - cmp r1, 0x3 - beq _080A9376 - movs r5, 0x63 -_080A9376: - movs r3, 0 - ldr r0, _080A9410 @ =gBagPockets - 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 gBagPockets -_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 CheckBagHasSpace - - thumb_func_start AddBagItem -AddBagItem: @ 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_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _080A9510 - mov r0, r8 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A94F8 @ =gBagPockets - 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 @ =0x000003e7 - 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 @ =gBagPockets - 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 @ =gBagPockets - 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 gBagPockets -_080A94FC: .4byte 0x000003e7 -_080A9500: - strh r0, [r3, 0x2] - ldr r0, _080A950C @ =gBagPockets - lsls r1, r6, 3 - adds r1, r0 - b _080A951A - .align 2, 0 -_080A950C: .4byte gBagPockets -_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 AddBagItem - - thumb_func_start RemoveBagItem -RemoveBagItem: @ 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_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _080A959E - cmp r6, 0 - beq _080A959E - adds r0, r6, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r5, 0 - ldr r1, _080A95A4 @ =gBagPockets - 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 gBagPockets -_080A95A8: - ldr r0, _080A95DC @ =gBagPockets - mov r2, r12 - lsls r1, r2, 3 - adds r5, r1, r0 - ldr r2, _080A95E0 @ =gUnknown_02038560 - 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 gBagPockets -_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 RemoveBagItem - - thumb_func_start GetPocketByItemId -GetPocketByItemId: @ 80A9670 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetPocketByItemId - - thumb_func_start ClearItemSlots -ClearItemSlots: @ 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 ClearItemSlots - - thumb_func_start FindFreePCItemSlot -FindFreePCItemSlot: @ 80A96AC - push {lr} - movs r1, 0 - ldr r3, _080A96CC @ =gSaveBlock1 - 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 FindFreePCItemSlot - - thumb_func_start CountUsedPCItemSlots -CountUsedPCItemSlots: @ 80A96E4 - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r4, _080A9714 @ =gSaveBlock1 - 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 CountUsedPCItemSlots - - thumb_func_start CheckPCHasItem -CheckPCHasItem: @ 80A9718 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r7, _080A9744 @ =gSaveBlock1 - movs r6, 0x93 - lsls r6, 3 - ldr r5, _080A9748 @ =0x0000049a -_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 CheckPCHasItem - - thumb_func_start AddPCItem -AddPCItem: @ 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 @ =gSaveBlock1 + 0x498 - mov r0, sp - movs r2, 0xC8 - bl memcpy - movs r5, 0 - ldr r0, _080A97C8 @ =0x0000fc19 - 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 @ =0x000003e7 - 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 FindFreePCItemSlot - 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 @ =gSaveBlock1 + 0x498 - 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 AddPCItem - - thumb_func_start RemovePCItem -RemovePCItem: @ 80A97F4 - push {lr} - lsls r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080A9824 @ =gSaveBlock1 - lsrs r0, 22 - adds r3, r0, r2 - ldr r0, _080A9828 @ =0x0000049a - 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 CompactPCItems -_080A9820: - pop {r0} - bx r0 - .align 2, 0 -_080A9824: .4byte gSaveBlock1 -_080A9828: .4byte 0x0000049a - thumb_func_end RemovePCItem - - thumb_func_start CompactPCItems -CompactPCItems: @ 80A982C - push {r4-r7,lr} - movs r2, 0 - ldr r0, _080A987C @ =gSaveBlock1 - 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 @ =gSaveBlock1 + 0x498 - 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 CompactPCItems - - thumb_func_start SwapRegisteredBike -SwapRegisteredBike: @ 80A9884 - push {lr} - ldr r0, _080A98A0 @ =gSaveBlock1 - ldr r1, _080A98A4 @ =0x00000496 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r3, _080A98A8 @ =0x00000103 - 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 SwapRegisteredBike - - thumb_func_start SanitizeItemId -SanitizeItemId: @ 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 SanitizeItemId - - thumb_func_start ItemId_GetItem -ItemId_GetItem: @ 80A98D4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - ldr r1, _080A98F0 @ =gItems - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_080A98F0: .4byte gItems - thumb_func_end ItemId_GetItem - - thumb_func_start ItemId_GetId -ItemId_GetId: @ 80A98F4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9914 @ =gItems - bl SanitizeItemId - 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_GetId - - thumb_func_start ItemId_GetPrice -ItemId_GetPrice: @ 80A9918 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9938 @ =gItems - bl SanitizeItemId - 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_GetPrice - - thumb_func_start ItemId_GetHoldEffect -ItemId_GetHoldEffect: @ 80A993C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A995C @ =gItems - bl SanitizeItemId - 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_GetHoldEffect - - thumb_func_start ItemId_GetHoldEffectParam -ItemId_GetHoldEffectParam: @ 80A9960 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9980 @ =gItems - bl SanitizeItemId - 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_GetHoldEffectParam - - thumb_func_start ItemId_GetDescription -ItemId_GetDescription: @ 80A9984 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A99A4 @ =gItems - bl SanitizeItemId - 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_GetDescription - - thumb_func_start ItemId_CopyDescription -ItemId_CopyDescription: @ 80A99A8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0x1 - ldr r4, _080A99E4 @ =gItems - lsls r0, 16 - lsrs r0, 16 - bl SanitizeItemId - 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 ItemId_CopyDescription - - thumb_func_start ItemId_GetImportance -ItemId_GetImportance: @ 80A9A08 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A28 @ =gItems - bl SanitizeItemId - 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_GetImportance - - thumb_func_start ItemId_GetUnknownValue -ItemId_GetUnknownValue: @ 80A9A2C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A4C @ =gItems - bl SanitizeItemId - 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_GetUnknownValue - - thumb_func_start ItemId_GetPocket -ItemId_GetPocket: @ 80A9A50 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A70 @ =gItems - bl SanitizeItemId - 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_GetPocket - - thumb_func_start ItemId_GetType -ItemId_GetType: @ 80A9A74 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9A94 @ =gItems - bl SanitizeItemId - 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_GetType - - thumb_func_start ItemId_GetFieldFunc -ItemId_GetFieldFunc: @ 80A9A98 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9AB8 @ =gItems - bl SanitizeItemId - 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_GetFieldFunc - - thumb_func_start ItemId_GetBattleUsage -ItemId_GetBattleUsage: @ 80A9ABC - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9ADC @ =gItems - bl SanitizeItemId - 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_GetBattleUsage - - thumb_func_start ItemId_GetBattleFunc -ItemId_GetBattleFunc: @ 80A9AE0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9B00 @ =gItems - bl SanitizeItemId - 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_GetBattleFunc - - thumb_func_start ItemId_GetSecondaryId -ItemId_GetSecondaryId: @ 80A9B04 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080A9B24 @ =gItems - bl SanitizeItemId - 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_GetSecondaryId - - 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 @ =gUnknown_083C91F0 - 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 @ =gCallback_03004AE8 - ldr r0, _080A9B74 @ =sub_80A9B78 - 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 @ =gCallback_03004AE8 - ldr r0, _080A9BAC @ =gUnknown_083C91F0 - 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 @ =sub_80A9BE4 - 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 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A9C10 - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080A9C18 @ =gUnknown_0203869A - 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 @ =gUnknown_0203869A - 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 @ =sub_80A9E3C - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080A9C8C @ =sub_80A9C98 - adds r0, r4, 0 - adds r1, r5, 0 - bl SetTaskFuncWithFollowupFunc - ldr r0, _080A9C90 @ =sub_80A9E04 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9C94 @ =gTasks - 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 @ =sub_80C8734 - ldr r2, _080A9CBC @ =sub_80A9CC0 - 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 @ =sub_80C88AC - ldr r2, _080A9CD8 @ =sub_80A9CDC - 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 @ =sub_80C8E1C - ldr r2, _080A9CF4 @ =sub_80A9D58 - 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 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080A9D20 - ldr r0, _080A9D2C @ =gTasks - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A9D54 @ =sub_80A9CF8 - 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 @ =gTasks - 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 @ =gUnknown_0203869B - strb r0, [r1] - ldr r0, _080A9DB0 @ =gUnknown_0203869C - ldrb r0, [r0] - bl sub_80AE82C - movs r0, 0 - bl sub_80B0F28 - ldr r1, _080A9DB4 @ =sub_80C8EBC - ldr r2, _080A9DB8 @ =sub_80A9DBC - 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 @ =sub_80C8F34 - ldr r2, _080A9DD4 @ =sub_80A9DD8 - 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 @ =gTasks - 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 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x2 - bne _080A9E2A - ldr r2, _080A9E34 @ =gTasks - 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 @ =sub_80A9D30 - 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 @ =gBlockRecvBuffer - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080A9E7C @ =sub_80A9E80 - 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 @ =gTasks - 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 @ =sub_80A9ED8 - b _080A9ECA - .align 2, 0 -_080A9EC4: .4byte sub_80A9ED8 -_080A9EC8: - ldr r0, _080A9ED4 @ =sub_80A9F10 -_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 @ =gTasks - 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 @ =sub_80A9F10 - 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 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080A9F3E - bl GetMultiplayerId - ldr r1, _080A9F48 @ =gUnknown_02038695 - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080A9F3E - ldr r1, _080A9F4C @ =gUnknown_0203869A - 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 @ =gWindowConfig_81E6C3C - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080A9FBC @ =gMenuWindow - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r0, _080A9FC0 @ =REG_MOSAIC - 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 @ =gUnknown_030042A4 - strh r1, [r0] - ldr r0, _080A9FC8 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r0, _080A9FCC @ =gUnknown_030042C0 - strh r1, [r0] - ldr r0, _080A9FD0 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080A9FD4 @ =gUnknown_03004288 - strh r1, [r0] - ldr r0, _080A9FD8 @ =gUnknown_03004280 - strh r1, [r0] - ldr r0, _080A9FDC @ =gUnknown_030041B0 - strh r1, [r0] - ldr r0, _080A9FE0 @ =gUnknown_030041B8 - 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 @ =gUnknown_083C9228 - 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 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _080AA05C @ =0x85000400 - 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 @ =gWindowConfig_81E6C3C - 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 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x4 - bne _080AA084 - ldr r0, _080AA08C @ =sub_805469C - 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 @ =REG_BG0HOFS - ldr r0, _080AA0EC @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F0 @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F4 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F8 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0FC @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA100 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA104 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA108 @ =gUnknown_030041B8 - 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 @ =gPaletteFade - 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 @ =sub_80AA090 - bl SetVBlankCallback - ldr r0, _080AA240 @ =sub_80AA064 - bl SetMainCallback2 - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - ldr r4, _080AA244 @ =gUnknown_02038694 - movs r0, 0 - strb r0, [r4] - ldr r0, _080AA248 @ =gUnknown_02038570 - 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 @ =gUnknown_083C9276 - adds r0, r6, 0x1 - mov r8, r0 - ldr r7, _080AA250 @ =gUnknown_083C9364 -_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 @ =gMenuWindow - bl sub_8003460 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080AA17A - ldr r1, _080AA258 @ =gUnknown_0203869C - ldr r4, _080AA25C @ =gUnknown_0203869E - 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 @ =gMenuWindow - ldr r1, _080AA260 @ =gUnknown_083C9337 - movs r0, 0x12 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xD6 - movs r3, 0x12 - bl sub_8003460 - ldr r1, _080AA264 @ =gUnknown_083C933B - movs r0, 0xC - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xDC - movs r3, 0 - bl sub_8003460 - ldr r0, _080AA268 @ =gUnknown_083C92B4 - bl LoadSpriteSheet - ldr r0, _080AA26C @ =gUnknown_083C92BC - 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 @ =gSpriteTemplate_83C92CC - ldr r1, _080AA274 @ =gUnknown_083C9296 - ldrb r1, [r1, 0x3] - ldr r2, _080AA278 @ =gUnknown_083C92A8 - ldrb r2, [r2, 0x1] - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AA27C @ =gSprites - 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 @ =gMenuWindow - 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 @ =0x02000000 - ldr r1, _080AA2F0 @ =gUnknown_083C932C - adds r0, r4, 0 - bl StringCopy - lsls r1, r7, 6 - ldr r0, _080AA2F4 @ =gUnknown_0203857D - adds r1, r0 - adds r0, r4, 0 - bl StringAppend - movs r5, 0 - ldr r6, _080AA2F8 @ =gUnknown_083C926E - 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 @ =gMenuWindow - ldr r1, _080AA2EC @ =0x02000000 - 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 @ =gUnknown_0203857D - 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 @ =gMenuWindow - 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 @ =0x02000000 - ldr r1, _080AA37C @ =gUnknown_02038570 - 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 @ =gMenuWindow - ldr r1, _080AA384 @ =gUnknown_083C9282 - 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 @ =0x02000000 - ldr r1, _080AA3C4 @ =gUnknown_02038570 - 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 @ =gMenuWindow - ldr r1, _080AA3CC @ =gUnknown_083C9282 - 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 @ =0x02000000 - ldr r1, _080AA40C @ =gUnknown_02038570 - 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 @ =gMenuWindow - ldr r1, _080AA414 @ =gUnknown_083C9282 - 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 @ =0x02000000 - ldr r1, _080AA454 @ =gUnknown_02038570 - 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 @ =gMenuWindow - ldr r1, _080AA45C @ =gUnknown_083C9282 - 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 @ =0x02000000 - ldr r1, _080AA49C @ =gUnknown_02038570 - 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 @ =gMenuWindow - ldr r1, _080AA4A4 @ =gUnknown_083C9282 - 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 @ =0x02000000 - ldr r1, _080AA4E4 @ =gUnknown_02038570 - 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 @ =gMenuWindow - ldr r1, _080AA4EC @ =gUnknown_083C9282 - 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 @ =gMenuWindow - ldr r0, _080AA5AC @ =gUnknown_083C928E - 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 @ =gUnknown_02038570 - 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 @ =gMoveNames - 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 @ =gStringVar1 - 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 @ =gMenuWindow - ldr r1, _080AA5E4 @ =gUnknown_083C93B4 - 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 @ =gMenuWindow - ldr r1, _080AA610 @ =gUnknown_083C93F0 - 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 @ =0x02000000 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA654 @ =gMenuWindow - 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 @ =gPlayerParty - ldr r5, _080AA74C @ =gUnknown_02038695 - ldrb r2, [r5] - lsls r2, 6 - ldr r4, _080AA750 @ =gUnknown_02038596 - 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 @ =gMain - 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 @ =gUnknown_083C92E4 - 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 @ =gUnknown_083C92E4 - 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 @ =gUnknown_083C92E4 - 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 @ =gUnknown_083C92E4 - 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 @ =gUnknown_083C9296 - 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 @ =gUnknown_083C92A8 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_0203869C - strh r4, [r0] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080AAC58 @ =gUnknown_0203869E - 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 @ =gUnknown_0203869E - 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 @ =gUnknown_0203869E - 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 @ =gUnknown_0203869C - 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 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080AACF4 - bl sub_80AA69C - ldr r0, _080AACFC @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AACEE - ldr r0, _080AAD00 @ =0x02000000 - ldrb r0, [r0] - bl sub_80AE82C -_080AACEE: - ldr r0, _080AAD04 @ =sub_80AB47C - 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 @ =0x02000000 - ldrh r0, [r0, 0x34] - movs r4, 0 - strb r0, [r1] - ldr r0, _080AAD40 @ =sub_80AACC4 - 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 @ =gUnknown_02038670 -_080AAD56: - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, _080AAD7C @ =gUnknown_0203869C - ldrb r1, [r1] - bl sub_80AE770 - strh r0, [r5] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080AAD56 - ldr r0, _080AAD80 @ =sub_805469C - 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 @ =0x06018000 - subs r1, r0, r1 - movs r0, 0 - str r0, [sp, 0x44] - ldr r4, _080AAEC8 @ =0x040000d4 - add r0, sp, 0x44 - str r0, [r4] - str r1, [r4, 0x4] - ldr r0, _080AAECC @ =0x85000040 - 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 @ =0x06018000 -_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 @ =0x84000008 - 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 @ =gMain - mov r9, r0 - lsls r3, r7, 3 - add r3, r9 - ldr r0, _080AAED8 @ =gUnknown_083C9400 - 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 @ =0x000003ff - mov r8, r0 - mov r1, r8 - ands r2, r1 - ldrh r5, [r6] - ldr r4, _080AAEE0 @ =0xfffffc00 - adds r0, r4, 0 - ands r0, r5 - orrs r0, r2 - strh r0, [r6] - ldrh r5, [r3, 0x3E] - ldr r2, _080AAEE4 @ =0xfffffe00 - 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 @ =gUnknown_0203856C - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080AAFC4 @ =gUnknown_02038695 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - bl sub_80AE098 - movs r4, 0x3 - movs r5, 0x1 - negs r5, r5 - ldr r3, _080AAFC8 @ =gUnknown_02038690 - 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 @ =gUnknown_02038670 - ldr r5, _080AAFD0 @ =gUnknown_02038570 - mov r9, r5 -_080AAF6C: - lsls r1, r4, 1 - strh r6, [r7] - ldr r0, _080AAFD4 @ =gUnknown_02038680 - mov r8, r0 - adds r0, r1, r0 - strh r6, [r0] - ldr r3, _080AAFD8 @ =gUnknown_02038678 - 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 @ =gUnknown_02038670 - 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 @ =gUnknown_0203856C - movs r0, 0 - strb r0, [r1] - movs r4, 0 - ldr r3, _080AB020 @ =gUnknown_02038678 - ldr r2, _080AB024 @ =gUnknown_02038680 - ldr r1, _080AB028 @ =gUnknown_02038670 - 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 @ =gUnknown_02038695 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - bl sub_80AE098 - movs r2, 0x3 - movs r5, 0x1 - negs r5, r5 - ldr r4, _080AB07C @ =gUnknown_02038690 - 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 @ =gUnknown_0203869C - 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 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 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 @ =0x04000208 - ldrh r2, [r3] - strh r1, [r3] - ldr r4, _080AB168 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r1, _080AB16C @ =REG_DISPSTAT - movs r0, 0x8 - strh r0, [r1] - bl ResetTasks - bl ResetSpriteData - ldr r0, _080AB170 @ =sub_80AB184 - bl SetMainCallback2 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _080AB174 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080AB178 @ =0x85000400 - 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 @ =gWindowConfig_81E6FD8 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r5, _080AB180 @ =gUnknown_03004210 - 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 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 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 @ =gUnknown_0203869A - 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 @ =0x04000208 - ldrh r3, [r4] - movs r2, 0 - strh r2, [r4] - ldr r5, _080AB264 @ =0x04000200 - ldrh r0, [r5] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r5] - strh r3, [r4] - ldr r1, _080AB268 @ =REG_DISPSTAT - 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 @ =0x00009e09 - 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 @ =0x00003a03 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080AB274 @ =REG_BLDCNT - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - subs r0, 0xC - ldr r3, _080AB278 @ =0x00003f3f - 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 @ =gUnknown_030042A4 - strh r2, [r0] - ldr r0, _080AB280 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r0, _080AB284 @ =gUnknown_030042C0 - strh r2, [r0] - ldr r0, _080AB288 @ =gUnknown_030041B4 - strh r2, [r0] - ldr r0, _080AB28C @ =gUnknown_03004288 - strh r2, [r0] - ldr r0, _080AB290 @ =gUnknown_03004280 - strh r2, [r0] - ldr r0, _080AB294 @ =gUnknown_030041B0 - strh r2, [r0] - ldr r0, _080AB298 @ =gUnknown_030041B8 - strh r2, [r0] - ldr r0, _080AB29C @ =gUnknown_030042C4 - strh r2, [r0] - ldr r0, _080AB2A0 @ =gUnknown_03004240 - strh r2, [r0] - ldr r0, _080AB2A4 @ =gUnknown_03004200 - strh r2, [r0] - ldr r0, _080AB2A8 @ =gUnknown_03004244 - 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 @ =gContestMiscGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _080AB304 @ =gContestAudienceGfx - ldr r1, _080AB308 @ =0x06002000 - bl LZDecompressVram - ldr r0, _080AB30C @ =gUnknown_08D1725C - ldr r1, _080AB310 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _080AB314 @ =gUnknown_08D17144 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - bl sub_80AB350 - movs r4, 0 - movs r5, 0xA0 -_080AB2DC: - ldr r0, _080AB318 @ =0x02018004 - adds r0, r5, r0 - ldr r1, _080AB31C @ =gUnknown_02038696 - 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 @ =gWindowConfig_81E6FD8 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080AB344 @ =gUnknown_03004210 - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r0, _080AB348 @ =gMenuWindow - ldr r1, _080AB34C @ =gWindowConfig_81E6FF4 - 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 @ =gWindowConfig_81E6FD8 - 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 @ =gPlttBufferUnfaded + 0x1E2 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xD - bls _080AB364 - ldr r0, _080AB394 @ =0x00007e3f - 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 @ =0x02019204 - 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 @ =0x02019260 - 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 @ =0x020192d0 - 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 @ =gUnknown_0203869A - 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 @ =gUnknown_02038696 -_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 @ =gMain - ldr r1, _080AB49C @ =0x0000043c - 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 @ =gPaletteFade - 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 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080AB540 @ =0x85000400 - 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 @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, _080AB548 @ =0x02000000 - movs r1, 0xC0 - lsls r1, 9 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bl sub_8040710 - bl sub_80AB398 - ldr r1, _080AB54C @ =gMain - ldr r0, _080AB550 @ =0x0000043c - 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 @ =0x0201925d - 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 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AB5BC @ =gUnknown_030041B4 - strh r1, [r0] - movs r0, 0x2 - bl BeginFastPaletteFade - ldr r2, _080AB5C0 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _080AB5C4 @ =sub_80ABAC4 - bl SetVBlankCallback - ldr r0, _080AB5C8 @ =sub_80AB5D4 - movs r1, 0xA - bl CreateTask - ldr r1, _080AB5CC @ =0x02019204 - strb r0, [r1, 0x8] - ldr r0, _080AB5D0 @ =sub_80ABAAC - 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 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080AB5F4 - ldr r0, _080AB5FC @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AB600 @ =sub_80AB604 - 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 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AB65C - ldr r2, _080AB64C @ =gPaletteFade - 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 @ =sub_80AB678 - movs r1, 0 - bl CreateTask - ldr r1, _080AB654 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080AB658 @ =nullsub_89 - 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 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AB674 @ =sub_80AB960 - 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 @ =sub_80C89DC - ldr r2, _080AB690 @ =sub_80AB694 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r3, [r1, 0x8] - ldr r0, _080AB6B0 @ =sub_80AB6B4 - 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 @ =gTasks - 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 @ =0x02019204 - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - ldr r1, _080AB700 @ =sub_80AB960 - str r1, [r0] - ldr r1, _080AB704 @ =gRngValue - ldr r0, _080AB708 @ =gUnknown_03005D28 - 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 @ =_080AB730 - 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 @ =gPaletteFade - 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 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r7, _080AB79C @ =0x85000400 - 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 @ =gContestMiscGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _080AB946 - .align 2, 0 -_080AB7AC: .4byte gContestMiscGfx -_080AB7B0: - ldr r0, _080AB7EC @ =gContestAudienceGfx - ldr r4, _080AB7F0 @ =0x06002000 - adds r1, r4, 0 - bl LZDecompressVram - ldr r3, _080AB7F4 @ =0x02015800 - movs r5, 0x80 - lsls r5, 6 - ldr r1, _080AB7F8 @ =0x040000d4 - ldr r6, _080AB7FC @ =0x84000400 - 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 @ =gUnknown_08D1725C - ldr r1, _080AB810 @ =0x0600d000 - bl LZDecompressVram - b _080AB946 - .align 2, 0 -_080AB80C: .4byte gUnknown_08D1725C -_080AB810: .4byte 0x0600d000 -_080AB814: - ldr r0, _080AB830 @ =gUnknown_08D17424 - ldr r4, _080AB834 @ =0x0600e000 - adds r1, r4, 0 - bl LZDecompressVram - ldr r1, _080AB838 @ =0x02018a04 - ldr r0, _080AB83C @ =0x040000d4 - str r4, [r0] - str r1, [r0, 0x4] - ldr r1, _080AB840 @ =0x84000200 - 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 @ =gUnknown_08D17144 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - ldr r5, _080AB8B0 @ =gPlttBufferUnfaded + 0x100 - ldr r6, _080AB8B4 @ =REG_BG0CNT - adds r0, r5, 0 - mov r1, sp - adds r2, r6, 0 - bl CpuSet - ldr r0, _080AB8B8 @ =gUnknown_02038695 - mov r9, r0 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 5 - ldr r1, _080AB8BC @ =0xffffff00 - 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 @ =0x02018004 - ldr r0, _080AB8C4 @ =0x040000d4 - mov r2, r8 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _080AB8C8 @ =0x84000080 - 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 @ =0x02019204 - 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 @ =gUnknown_02024A72 - 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 @ =gUnknown_020239F8 - strh r4, [r0] - ldr r4, _080AB930 @ =gUnknown_02024C07 - strb r2, [r4] - ldr r0, _080AB934 @ =gUnknown_02024C08 - strb r3, [r0] - bl sub_80AE858 - ldr r2, _080AB938 @ =gUnknown_02024BE0 - 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 @ =gPaletteFade - 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 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, _080AB99C @ =sub_80AB9A0 - 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 @ =gTasks - 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 @ =_080AB9CC - 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 @ =gUnknown_030041B4 - 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 @ =gTasks - 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 @ =REG_BG0CNT - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldr r2, _080ABA74 @ =REG_BG2CNT - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - bl sub_80B1B14 - ldr r1, _080ABA78 @ =gTasks - 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 @ =0x02019204 - 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 @ =sub_80ABB70 - 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 @ =REG_BG0HOFS - ldr r0, _080ABB40 @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB44 @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB48 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB4C @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB50 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB54 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB58 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080ABB5C @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x22 - ldr r0, _080ABB60 @ =gUnknown_030042C4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080ABB64 @ =gUnknown_03004240 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - ldr r0, _080ABB68 @ =gUnknown_03004200 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080ABB6C @ =gUnknown_03004244 - 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 @ =gUnknown_030042A0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080ABBB4 @ =gUnknown_03004280 - strh r1, [r0] - bl sub_80B0D7C - ldr r1, _080ABBB8 @ =gPlttBufferUnfaded - ldr r2, _080ABBBC @ =0x02018204 - ldr r0, _080ABBC0 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080ABBC4 @ =0x84000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080ABBC8 @ =gUnknown_02038695 - ldrb r0, [r0] - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080ABBD4 - ldr r0, _080ABBCC @ =gUnknown_020238CC - ldr r1, _080ABBD0 @ =gUnknown_083CAF84 - 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 @ =gUnknown_020238CC - ldr r1, _080ABC24 @ =gUnknown_083CAFAE - bl StringCopy -_080ABBDC: - ldr r5, _080ABC20 @ =gUnknown_020238CC - ldr r0, _080ABC28 @ =0x02019204 - ldrb r1, [r0, 0x1] - adds r1, 0x1 - adds r0, r5, 0 - bl sub_80AE020 - bl sub_80AF138 - ldr r4, _080ABC2C @ =gStringVar4 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringExpandPlaceholders - ldr r0, _080ABC30 @ =gMenuWindow - 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 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ABC38 @ =sub_80ABC3C - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080ABC5E - ldr r0, _080ABC68 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABC6C @ =sub_80ABC70 - 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 @ =gMain - 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 @ =gUnknown_02038695 - ldrb r0, [r0] - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080ABCC0 - movs r0, 0x1 - bl sub_80AFFE0 - ldr r0, _080ABCB8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABCBC @ =sub_80ABCDC - b _080ABCCC - .align 2, 0 -_080ABCB0: .4byte gMain -_080ABCB4: .4byte gUnknown_02038695 -_080ABCB8: .4byte gTasks -_080ABCBC: .4byte sub_80ABCDC -_080ABCC0: - ldr r0, _080ABCD4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABCD8 @ =sub_80AC0C8 -_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 @ =gUnknown_030042A0 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080ABD84 @ =gUnknown_03004280 - strh r1, [r0] - ldr r5, _080ABD88 @ =gUnknown_03004210 - ldr r4, _080ABD8C @ =gUnknown_083CA340 - 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 @ =gUnknown_02038695 - mov r8, r0 - ldr r7, _080ABD94 @ =0x02019260 - 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 @ =gUnknown_0203858E - 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 @ =gUnknownText_UnknownFormatting2 - 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 @ =gContestMoves - lsls r1, r4, 3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - beq _080ABDCC - add r0, sp, 0x8 - ldr r1, _080ABE78 @ =gUnknownText_UnknownFormatting3 -_080ABDC6: - bl StringCopy - adds r5, r0, 0 -_080ABDCC: - movs r0, 0xD - adds r1, r4, 0 - muls r1, r0 - ldr r0, _080ABE7C @ =gMoveNames - 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 @ =gUnknown_083CA340 + 0x1 - 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 @ =0x0000ffff - ldr r3, _080ABE88 @ =0x00002d9f - movs r0, 0x48 - str r0, [sp] - movs r0, 0 - movs r2, 0xC - bl sub_814A5C0 - ldr r4, _080ABE8C @ =0x02019204 - movs r0, 0 - ldrsb r0, [r4, r0] - bl sub_80AC0AC - ldr r2, _080ABE90 @ =gUnknown_02038570 - ldrb r1, [r4] - lsls r1, 1 - ldr r0, _080ABE94 @ =gUnknown_02038695 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl sub_80AEBEC - ldr r1, _080ABE98 @ =gTasks - ldr r2, [sp, 0x28] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ABE9C @ =sub_80ABEA0 - 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 @ =gMain - ldr r1, _080ABEF8 @ =gUnknown_02038570 - ldr r0, _080ABEFC @ =gUnknown_02038695 - 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 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ABF04 @ =sub_80AC0C8 - 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 @ =gUnknown_03004210 - ldr r1, _080ABF68 @ =gUnknown_083CA340 - 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 @ =gUnknown_02038695 - ldrb r0, [r0] - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080ABF78 - ldr r0, _080ABF70 @ =gUnknown_020238CC - ldr r1, _080ABF74 @ =gUnknown_083CAF84 - 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 @ =gUnknown_020238CC - ldr r1, _080ABFCC @ =gUnknown_083CAFAE - bl StringCopy -_080ABF80: - ldr r5, _080ABFC8 @ =gUnknown_020238CC - ldr r0, _080ABFD0 @ =0x02019204 - ldrb r1, [r0, 0x1] - adds r1, 0x1 - adds r0, r5, 0 - bl sub_80AE020 - bl sub_80AF138 - ldr r4, _080ABFD4 @ =gStringVar4 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringExpandPlaceholders - ldr r0, _080ABFD8 @ =gMenuWindow - 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 @ =gUnknown_030042A0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080ABFE0 @ =gUnknown_03004280 - strh r1, [r0] - ldr r1, _080ABFE4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ABFE8 @ =sub_80ABC70 - 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 @ =0x02019204 - 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 @ =0x02019204 - movs r0, 0 - ldrsb r0, [r4, r0] - bl sub_80AC0AC - bl sub_80AED58 - ldr r2, _080AC040 @ =gUnknown_02038570 - ldrb r1, [r4] - lsls r1, 1 - ldr r0, _080AC044 @ =gUnknown_02038695 - 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 @ =0x02019204 - 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 @ =0x02019204 - movs r0, 0 - ldrsb r0, [r4, r0] - bl sub_80AC0AC - bl sub_80AED58 - ldr r2, _080AC0A4 @ =gUnknown_02038570 - ldrb r1, [r4] - lsls r1, 1 - ldr r0, _080AC0A8 @ =gUnknown_02038695 - 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 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AC13C - ldr r4, _080AC124 @ =gUnknown_02038695 - ldrb r0, [r4] - bl sub_80AF15C - ldrb r2, [r4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r2, _080AC128 @ =0x02019260 - adds r1, r2 - strh r0, [r1, 0x6] - ldr r4, _080AC12C @ =sub_80C8A38 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AC130 @ =sub_80AC15C - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080AC134 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080AC138 @ =nullsub_89 - 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 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AC158 @ =sub_80AC188 - 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 @ =gTasks - ldr r0, _080AC180 @ =0x02019204 - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080AC184 @ =sub_80AC188 - 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 @ =gUnknown_030042A0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AC1E8 @ =gUnknown_03004280 - strh r1, [r0] - movs r0, 0 - bl sub_80AFFE0 - ldr r1, _080AC1EC @ =gPlttBufferFaded - ldr r0, _080AC1F0 @ =0x02018604 - movs r2, 0x80 - lsls r2, 3 - ldr r4, _080AC1F4 @ =0x040000d4 - 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 @ =0xfffffc00 - adds r0, r1 - movs r1, 0 - bl LoadPalette - ldr r1, _080AC1FC @ =gTasks - 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 @ =sub_80AC204 - 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 @ =gTasks - 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 @ =sub_80AC250 - 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 @ =0x02019204 - ldrh r1, [r0, 0x6] - movs r0, 0x90 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _080AC272 - ldr r0, _080AC27C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AC280 @ =sub_80AC284 - 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 @ =gTasks - 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 @ =0x02019204 - movs r0, 0 - strb r0, [r1, 0x10] - ldr r0, _080AC2C4 @ =gRngValue - ldr r0, [r0] - str r0, [r1, 0x18] - movs r0, 0 - strh r0, [r2, 0x8] - ldr r0, _080AC2C8 @ =sub_80AC2CC - 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 @ =0x02019204 - ldrb r7, [r2, 0x11] - ldr r1, _080AC30C @ =gTasks - 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 @ =_080AC314 - 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 @ =0x02019204 - 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 @ =0x02019204 - strb r6, [r4, 0x11] - ldrb r7, [r4, 0x11] - ldr r0, _080AC488 @ =gUnknown_0203869A - 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 @ =sub_80C8C80 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AC490 @ =sub_80AD8DC - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - bl sub_80AF860 - ldr r1, _080AC494 @ =gTasks - 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 @ =gTasks - 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 @ =0x02019260 - 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 @ =gTasks - 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 @ =0x02019348 - ldr r1, _080AC5C8 @ =gUnknown_02024E84 - 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 @ =0xfffffebc - adds r7, r4, r5 - ldrb r0, [r7, 0x11] - bl sub_80B28F0 - ldr r3, _080AC5D0 @ =gUnknown_02038570 - 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 @ =gSprites - 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 @ =sub_80AD8FC - str r1, [r0] - ldr r0, _080AC5DC @ =gTasks - mov r4, r9 - add r4, r8 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0xC] - ldr r1, _080AC5E0 @ =gUnknown_02024BE0 - ldr r0, _080AC5E4 @ =gUnknown_02024C07 - 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 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _080AC630 @ =SpriteCallbackDummy - cmp r1, r0 - beq _080AC60E - bl _080AD8CA -_080AC60E: - lsls r0, r7, 2 - ldr r1, _080AC634 @ =0x02019338 - 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 @ =0x02019260 - 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 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080AC694 @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldrh r1, [r5, 0x6] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bhi _080AC6A0 - ldr r0, _080AC698 @ =gStringVar2 - adds r2, r1, 0 - movs r1, 0xD - muls r1, r2 - ldr r2, _080AC69C @ =gMoveNames - 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 @ =gStringVar2 - ldr r2, _080AC6E4 @ =gUnknown_083CC330 - ldrb r1, [r5, 0xA] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy -_080AC6B0: - ldr r4, _080AC6E8 @ =gStringVar4 - ldr r1, _080AC6EC @ =gUnknown_083CAFD7 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AC6F0 @ =gMenuWindow - 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 @ =gTasks - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AC708 - bl _080AD8CA -_080AC708: - ldr r0, _080AC728 @ =0x02019204 - adds r0, 0x5A - movs r1, 0 - strb r1, [r0] - ldr r1, _080AC72C @ =gTasks - 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 @ =gTasks - 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 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080AC7BC @ =gUnknown_0202F7B1 - ldrb r4, [r0] - cmp r4, 0 - beq _080AC790 - bl _080AD8CA -_080AC790: - adds r0, r7, 0 - bl unref_sub_80B28CC - ldr r1, _080AC7C0 @ =0x02019204 - adds r0, r1, 0 - adds r0, 0x5A - ldrb r0, [r0] - cmp r0, 0 - beq _080AC7C8 - ldr r0, _080AC7C4 @ =gTasks - 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 @ =gTasks - 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 @ =0x02019260 - 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 @ =gTasks - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AC8DC - bl _080AD8CA -_080AC8DC: - ldr r0, _080AC8F4 @ =gTasks - 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 @ =0x02019260 - 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 @ =gTasks - 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 @ =gTasks - 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 @ =0x02019260 - adds r0, r1 - movs r3, 0x2 - ldrsh r1, [r0, r3] - movs r0, 0 - adds r2, r7, 0 - bl sub_80AFBA0 - ldr r1, _080AC9BC @ =gTasks - 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 @ =0x02019260 - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gUnknown_02038696 - ldr r1, _080ACB28 @ =0x02019260 -_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 @ =gUnknown_02038696 - 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 @ =0x02019260 - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080ACBC0 - bl _080AD8CA -_080ACBC0: - ldr r0, _080ACBD8 @ =gTasks - 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 @ =gUnknown_02038696 - mov r9, r0 - ldr r3, _080ACC3C @ =0x02019260 - 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 @ =gTasks - 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 @ =gUnknown_02038696 - mov r9, r0 - ldr r2, _080ACC94 @ =0x02019338 - 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 @ =gUnknown_02038696 - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gUnknown_02038696 - 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 @ =0x02019260 - 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 @ =gTasks - 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 @ =0x02019260 - 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 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080ACE50 @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r4, _080ACE54 @ =gStringVar4 - ldr r1, _080ACE58 @ =gUnknown_083CC103 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080ACE5C @ =gMenuWindow - 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 @ =gTasks - 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 @ =gMenuWindow - 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 @ =0x02019260 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080ACEA8 - ldr r0, _080ACEA4 @ =gTasks - 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 @ =gTasks - 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 @ =0x02019260 - 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 @ =gMenuWindow - ldr r1, _080ACEEC @ =gUnknown_083CBD79 - b _080ACEF8 - .align 2, 0 -_080ACEE4: .4byte 0x02019260 -_080ACEE8: .4byte gMenuWindow -_080ACEEC: .4byte gUnknown_083CBD79 -_080ACEF0: - cmp r0, 0x2 - bne _080ACF10 - ldr r0, _080ACF08 @ =gMenuWindow - ldr r1, _080ACF0C @ =gUnknown_083CBD9D -_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 @ =gMenuWindow - ldr r1, _080ACF40 @ =gUnknown_083CBDC6 - 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 @ =gTasks - 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 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080ACF94 @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r4, _080ACF98 @ =gStringVar4 - ldr r1, _080ACF9C @ =gUnknown_083CBD52 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080ACFA0 @ =gMenuWindow - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080ACFE4 - bl _080AD8CA -_080ACFE4: - ldr r1, _080AD038 @ =gTasks - 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 @ =0x02019260 - 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 @ =0x02019338 - 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 @ =0x02019260 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD0E8 - bl sub_80AF138 - ldr r0, _080AD0D0 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080AD0D4 @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r4, _080AD0D8 @ =gStringVar4 - ldr r1, _080AD0DC @ =gUnknown_083CC075 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD0E0 @ =gMenuWindow - 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 @ =gTasks - 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 @ =gMenuWindow - 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 @ =0x02019260 - 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 @ =gTasks - 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 @ =0x02019338 - 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 @ =gTasks - 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 @ =0x02019328 - 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 @ =gStringVar3 - ldrh r2, [r5, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AD200 @ =gMoveNames - adds r1, r2 - bl StringCopy - b _080AD21E - .align 2, 0 -_080AD1FC: .4byte gStringVar3 -_080AD200: .4byte gMoveNames -_080AD204: - ldr r0, _080AD270 @ =gStringVar3 - ldr r3, _080AD274 @ =gUnknown_083CC2D8 - ldr r2, _080AD278 @ =gContestMoves - 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 @ =0x02019260 - 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 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080AD284 @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r3, _080AD288 @ =0x02019204 - 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 @ =gTasks - 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 @ =gStringVar4 - ldr r1, _080AD2A4 @ =gUnknown_083CC0BC - 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 @ =gStringVar4 - ldr r1, _080AD2C4 @ =gUnknown_083CC0A0 - bl StringExpandPlaceholders - b _080AD2D0 - .align 2, 0 -_080AD2C0: .4byte gStringVar4 -_080AD2C4: .4byte gUnknown_083CC0A0 -_080AD2C8: - ldr r0, _080AD300 @ =gStringVar4 - ldr r1, _080AD304 @ =gUnknown_083CC0E3 - bl StringExpandPlaceholders -_080AD2D0: - ldr r0, _080AD308 @ =gMenuWindow - ldr r1, _080AD300 @ =gStringVar4 - movs r2, 0xC2 - lsls r2, 2 - movs r3, 0xF - str r3, [sp] - movs r3, 0x1 - bl sub_8002EB0 - ldr r1, _080AD30C @ =gTasks - 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 @ =0x00000187 - 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 @ =gMenuWindow - 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 @ =gPaletteFade - 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 @ =_080AD3F4 - 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 @ =gMenuWindow - 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 @ =0x02019338 - adds r0, r2 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AD4B2 - b _080AD8CA -_080AD4B2: - ldr r3, _080AD4E4 @ =0xfffffecc - 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 @ =gTasks - 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 @ =gPaletteFade - 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 @ =0x02019338 - 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 @ =gTasks - 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 @ =gStringVar3 - ldr r4, _080AD5AC @ =0x02019328 - ldr r1, [r4] - lsls r1, 20 - lsrs r1, 29 - lsls r1, 6 - ldr r5, _080AD5B0 @ =gUnknown_02038572 - adds r1, r5 - bl StringCopy - ldr r0, _080AD5B4 @ =gStringVar1 - lsls r1, r7, 6 - adds r1, r5 - bl StringCopy - ldr r0, _080AD5B8 @ =gStringVar2 - 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 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _080AD5C0 @ =gStringVar4 - ldr r1, _080AD5C4 @ =gUnknown_083CC14A - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD5C8 @ =gMenuWindow - 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 @ =gTasks - 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 @ =gMenuWindow - adds r0, r5, 0 - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD5E0 - b _080AD8CA -_080AD5E0: - bl sub_80AF138 - ldr r4, _080AD618 @ =gStringVar4 - ldr r1, _080AD61C @ =gUnknown_083CC16E - 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 @ =gTasks - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD632 - b _080AD8CA -_080AD632: - bl sub_80AF138 - ldr r0, _080AD644 @ =gTasks - 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 @ =0x02019260 - 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 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080AD6BC @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r0, _080AD6C0 @ =gStringVar2 - ldrh r2, [r4, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AD6C4 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _080AD6C8 @ =gStringVar4 - ldr r1, _080AD6CC @ =gUnknown_083CBF60 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD6D0 @ =gMenuWindow - 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 @ =gTasks - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - bne _080AD6E6 - b _080AD8CA -_080AD6E6: - ldr r0, _080AD6FC @ =gTasks - 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 @ =gTasks - 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 @ =gTasks - 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 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080AD778 @ =sub_80AD92C - 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 @ =gSprites - 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 @ =gTasks - 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 @ =gStringVar1 - lsls r1, r7, 6 - ldr r2, _080AD82C @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r4, _080AD830 @ =gStringVar4 - ldr r1, _080AD834 @ =gUnknown_083CB00D - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080AD838 @ =gMenuWindow - 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 @ =gTasks - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - cmp r0, 0 - beq _080AD8CA - ldr r0, _080AD864 @ =gTasks - 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 @ =sub_80AD960 - 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 @ =0x02019204 - 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 @ =SpriteCallbackDummy - 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 @ =SpriteCallbackDummy - 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 @ =gTasks - 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 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080AD9E8 - ldr r2, _080AD9DC @ =0x02019204 - 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 @ =sub_80C8C80 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AD9E4 @ =sub_80AD8DC - 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 @ =0x02019204 - 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 @ =sub_80ADA1C - 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 @ =gTasks - 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 @ =sub_80ADA4C - 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 @ =gTasks - 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 @ =0x02019204 - 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 @ =sub_80ADAD8 - 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 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADB00 @ =sub_80ADB04 - 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 @ =0x02018204 - ldr r3, _080ADB34 @ =gPlttBufferUnfaded - ldr r1, _080ADB38 @ =0x040000d4 - str r2, [r1] - str r3, [r1, 0x4] - ldr r2, _080ADB3C @ =0x84000100 - str r2, [r1, 0x8] - ldr r1, [r1, 0x8] - ldr r2, _080ADB40 @ =gTasks - 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 @ =sub_80ADB48 - 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 @ =gTasks - 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 @ =sub_80ADB88 - 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 @ =gUnknown_02038695 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080ADBF0 @ =0x02019260 - adds r0, r1 - ldrb r4, [r0, 0x1A] - bl sub_80AF138 - ldr r0, _080ADBF4 @ =gStringVar1 - ldrb r1, [r6] - lsls r1, 6 - ldr r2, _080ADBF8 @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r6, _080ADBFC @ =gStringVar4 - ldr r0, _080ADC00 @ =gUnknown_083CB2F0 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r6, 0 - bl StringExpandPlaceholders - ldr r0, _080ADC04 @ =gMenuWindow - 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 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADC0C @ =sub_80ADC10 - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080ADC3A - ldr r1, _080ADC44 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080ADC48 @ =sub_80ADC4C - 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 @ =gTasks - 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 @ =sub_80ADC84 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080ADCB0 @ =sub_80ADCB4 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADCD8 @ =sub_80B237C - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADD00 @ =sub_80ADD04 - 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 @ =REG_BG0CNT - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldr r2, _080ADD44 @ =REG_BG2CNT - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldr r1, _080ADD48 @ =0x02019204 - 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 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADD50 @ =sub_80ADDA4 - 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 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADD70 @ =sub_80ADD74 -_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 @ =0x02019204 - ldrb r1, [r0, 0x6] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080ADD94 - ldr r0, _080ADD9C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADDA0 @ =sub_80ABB70 - 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 @ =gUnknown_030042A0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080ADE28 @ =gUnknown_03004280 - strh r1, [r0] - ldr r3, _080ADE2C @ =0x02019260 - ldr r2, _080ADE30 @ =gUnknown_02038680 - 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 @ =gUnknown_02038695 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080ADE2C @ =0x02019260 - adds r0, r1 - ldrh r0, [r0, 0x8] - bl sub_80BE23C - ldr r1, _080ADE38 @ =gUnknown_03005D28 - ldr r0, _080ADE3C @ =gRngValue - ldr r0, [r0] - str r0, [r1] - ldr r4, _080ADE40 @ =gStringVar4 - ldr r1, _080ADE44 @ =gUnknown_083CB02C - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080ADE48 @ =gMenuWindow - 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 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xC] - ldr r1, _080ADE50 @ =sub_80ADE54 - 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 @ =gMenuWindow - bl sub_80037A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080ADE92 - bl sub_80B2184 - ldr r1, _080ADE9C @ =gUnknown_030042C0 - movs r0, 0 - strh r0, [r1] - ldr r1, _080ADEA0 @ =gUnknown_030041B4 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0x62 - movs r1, 0 - bl PlaySE12WithPanning - ldr r1, _080ADEA4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080ADEA8 @ =sub_80ADEAC - 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 @ =gUnknown_030041B4 - 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 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldr r0, _080ADEE8 @ =sub_80ADEEC - 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 @ =gTasks - 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 @ =gUnknown_0203869A - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080ADF2C - ldr r0, _080ADF28 @ =sub_80ADF4C - 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 @ =sub_80ADFD8 -_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 @ =sub_80C8AD0 - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080ADF8C @ =sub_80ADF98 - adds r1, r5, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080ADF90 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080ADF94 @ =nullsub_89 - 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 @ =gTasks - ldr r0, _080ADFD0 @ =0x02019204 - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080ADFD4 @ =sub_80ADFD8 - 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 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ADFFC - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080AE004 @ =gUnknown_0300485C - ldr r1, _080AE008 @ =sub_80AE010 - str r1, [r0] - ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch - 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 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AE068 - ldr r1, _080AE070 @ =gUnknown_02038695 - 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 @ =gUnknown_02038695 - ldr r1, _080AE08C @ =gUnknown_0203869B - 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 @ =gSaveBlock2 - mov r0, sp - adds r1, r6, 0 - bl StringCopy - mov r0, sp - bl StripExtCtrlCodes - ldr r0, _080AE0F4 @ =gUnknown_0203869A - 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 @ =gUnknown_02038695 - ldrb r0, [r5] - lsls r0, 6 - ldr r4, _080AE0FC @ =gUnknown_0203857D - 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 @ =gUnknown_02038570 - ldr r4, _080AE180 @ =gUnknown_02038695 - 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 @ =gPlayerParty - 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 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AE19A - mov r0, sp - bl StripExtCtrlCodes - 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 @ =gUnknown_02038695 - ldrb r0, [r5] - lsls r0, 6 - ldr r1, _080AE2C8 @ =gUnknown_02038572 - 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 @ =gPlayerParty - 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 @ =0x00000101 - 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 @ =gUnknown_02038570 - ldr r1, _080AE394 @ =gUnknown_02038695 - 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 @ =gUnknown_083C9408 -_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 @ =gUnknown_083C9408 -_080AE412: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080AE474 @ =gUnknown_02038570 - 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 @ =gUnknown_02038694 - 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 @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080AE4F2 - lsls r0, 2 - ldr r1, _080AE4B4 @ =_080AE4B8 - 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 @ =gUnknown_0203869E - 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 @ =gUnknown_083CA308 - adds r0, r7, 0x1 - mov r9, r0 - ldr r6, _080AE58C @ =gUnknown_083CA310 - adds r3, r6, 0x1 - mov r8, r3 -_080AE52C: - ldr r4, _080AE590 @ =gUnknown_02038696 - 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 @ =gUnknown_03004210 - 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 sub_80AE598 -sub_80AE598: @ 80AE598 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - ldr r1, _080AE5B8 @ =gUnknown_083CC59C - 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 sub_80AE598 - - 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 @ =gUnknown_020238CC - ldr r1, _080AE664 @ =gEmptyString_81E72B0 - adds r0, r3, 0 - bl sub_80AE598 - 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 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AE67C - ldr r1, _080AE66C @ =gLinkPlayers - 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 @ =gUnknown_03004210 - ldr r1, _080AE660 @ =gUnknown_020238CC - ldr r2, _080AE674 @ =gUnknown_02038696 - 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 @ =gUnknown_083CA310 - 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 @ =gUnknown_0203857D - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - ldr r0, _080AE6BC @ =gUnknown_03004210 - ldr r1, _080AE6C0 @ =gUnknown_020238CC - ldr r2, _080AE6C4 @ =gUnknown_02038696 - 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 @ =gUnknown_083CA310 - 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 @ =gUnknown_020238CC - 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 @ =gUnknown_02038572 - adds r1, r0 - adds r0, r3, 0 - bl sub_80AE598 - adds r3, r0, 0 - movs r0, 0xFF - strb r0, [r3] - ldr r0, _080AE764 @ =gUnknown_03004210 - ldr r1, _080AE75C @ =gUnknown_020238CC - ldr r2, _080AE768 @ =gUnknown_02038696 - 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 @ =gUnknown_083CA308 - 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 @ =_080AE78C - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038570 - 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 @ =gUnknown_02038670 -_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 @ =gUnknown_083CA4BC - bl LoadCompressedObjectPic - ldr r0, _080AE8A4 @ =gContest2Pal - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, _080AE8A8 @ =gSpriteTemplate_83CA4A4 - movs r1, 0x70 - movs r2, 0x24 - movs r3, 0x1E - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080AE8AC @ =gSprites - 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 @ =SpriteCallbackDummy - 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 @ =gUnknown_083CA4C4 - bl LoadCompressedObjectPic - ldr r0, _080AE8FC @ =gUnknown_083CA4CC - bl LoadCompressedObjectPalette - ldr r0, _080AE900 @ =gUnknown_083CA4D4 - movs r1, 0x60 - movs r2, 0xA - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AE904 @ =gSprites - 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 @ =gUnknown_02038570 - mov r9, r0 - ldr r1, _080AE9D8 @ =gUnknown_02038695 - mov r8, r1 - ldrb r0, [r1] - lsls r0, 6 - add r0, r9 - ldrh r5, [r0] - lsls r6, r5, 3 - ldr r0, _080AE9DC @ =gMonFrontPicTable - adds r0, r6, r0 - ldr r2, _080AE9E0 @ =gMonFrontPicCoords - 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 @ =gUnknown_081FAF4C - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - bl DecompressPicFromTable_2 - ldr r0, _080AE9E8 @ =gMonPaletteTable - 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 @ =gUnknown_02024E8C - 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 @ =gSprites - 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 @ =SpriteCallbackDummy - str r2, [r1] - adds r5, 0x10 - adds r3, r5 - ldr r1, _080AE9F8 @ =gSpriteAffineAnimTable_81E7C18 - 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 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _080AEAD0 @ =gMonBackPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080AEAD4 @ =gUnknown_081FAF4C - 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 @ =gUnknown_02024E8C - 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 @ =gSprites - 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 @ =SpriteCallbackDummy - 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 @ =gSpriteAffineAnimTable_81E7C18 - 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 @ =gSpriteAffineAnimTable_81E7BEC -_080AEAF0: - str r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _080AEB18 @ =gSprites - 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 @ =0x0600c000 - bl sub_80AEB4C - ldr r0, _080AEB48 @ =0x0600e000 - 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 @ =0x040000d4 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080AEB64 @ =0x80000140 - 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 @ =gContestEffects - ldr r1, _080AEB94 @ =gContestMoves - 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 @ =_080AEB9C - 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 @ =0x00009082 - b _080AEBD2 - .align 2, 0 -_080AEBC4: .4byte 0x00009082 -_080AEBC8: - ldr r0, _080AEBCC @ =0x00009088 - b _080AEBD2 - .align 2, 0 -_080AEBCC: .4byte 0x00009088 -_080AEBD0: - ldr r0, _080AEBE8 @ =0x00009086 -_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 @ =gUnknown_03004210 - 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 @ =gContestMoves - lsls r0, r4, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - ldr r1, _080AEC7C @ =0x00004040 - 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 @ =gUnknown_03004210 - mov r8, r0 - ldr r6, _080AEC78 @ =gContestMoves - lsls r5, r4, 3 - ldr r7, _080AEC80 @ =gContestEffects - ldr r0, _080AEC84 @ =gUnknown_083CADD4 - mov r9, r0 - ldr r4, _080AEC88 @ =0x0600c816 - ldr r3, _080AEC8C @ =0x0600c7d6 - 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 @ =0x00005012 - adds r4, r1, 0 - adds r1, 0x23 - adds r3, r1, 0 - ldr r1, _080AECBC @ =0x0600c7ea -_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 @ =0x00005014 - adds r4, r1, 0 - adds r1, 0x22 - adds r3, r1, 0 - ldr r1, _080AED08 @ =0x0600c82a -_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 @ =gUnknown_083CC5A2 - ldr r2, _080AED54 @ =0x00000362 - 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 @ =gUnknown_03004210 - 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 @ =gUnknown_02038696 - 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 @ =0x0600c028 - adds r1, r3, r1 - strh r0, [r1] - ldr r1, _080AEDE0 @ =0x0600c02a - adds r1, r3, r1 - adds r2, r0, 0x1 - strh r2, [r1] - ldr r1, _080AEDE4 @ =0x0600c068 - adds r2, r3, r1 - adds r1, r0, 0 - adds r1, 0x10 - strh r1, [r2] - ldr r1, _080AEDE8 @ =0x0600c06a - 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 @ =0x0600c028 - adds r0, r1, r0 - movs r2, 0 - strh r2, [r0] - ldr r0, _080AEE14 @ =0x0600c02a - adds r0, r1, r0 - strh r2, [r0] - ldr r3, _080AEE18 @ =0x0600c068 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080AEE1C @ =0x0600c06a - 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 @ =0x02019260 - 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 @ =0x00002034 - 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 @ =0x02019260 - 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 @ =gUnknown_02038696 - 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 @ =0x0600c026 - adds r0, r1 - mov r1, r8 - strh r1, [r0] - adds r4, 0x1 -_080AEEC4: - subs r0, r6, r7 - lsls r0, 2 - ldr r1, _080AEEEC @ =0x02019260 - 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 @ =0x0600bfe6 - 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 @ =gUnknown_02038696 - 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 @ =0x0600c026 - adds r0, r3 - strh r6, [r0] - adds r4, 0x1 -_080AEF92: - subs r0, r7, r5 - lsls r0, 2 - ldr r1, _080AEFE4 @ =0x02019260 - 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 @ =0x0600c026 - 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 @ =_080AF004 - 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 @ =gUnknown_02038696 - 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 @ =0x02019260 - adds r2, r0, r1 - ldr r0, [r2, 0x10] - ldr r1, _080AF07C @ =0x00ff0003 - 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 @ =0x0600c028 - adds r0, r2, r0 - strh r4, [r0] - ldr r0, _080AF0E0 @ =0x0600c02a - adds r0, r2, r0 - adds r1, r4, 0x1 - strh r1, [r0] - ldr r0, _080AF0E4 @ =0x0600c068 - adds r1, r2, r0 - adds r0, r4, 0 - adds r0, 0x10 - strh r0, [r1] - ldr r0, _080AF0E8 @ =0x0600c06a - 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 @ =0x0600c028 - adds r0, r1, r0 - strh r5, [r0] - ldr r0, _080AF114 @ =0x0600c02a - adds r0, r1, r0 - strh r5, [r0] - ldr r2, _080AF118 @ =0x0600c068 - adds r0, r1, r2 - strh r5, [r0] - ldr r0, _080AF11C @ =0x0600c06a - 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 @ =gUnknown_03004210 - 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 @ =gUnknown_02038695 - ldrb r0, [r0] - cmp r4, r0 - beq _080AF198 - adds r0, r4, 0 - bl sub_81288F4 - bl sub_8128944 - lsls r0, 24 - ldr r2, _080AF194 @ =gUnknown_02038570 - lsrs r0, 23 - lsls r1, r4, 6 - b _080AF1A2 - .align 2, 0 -_080AF190: .4byte gUnknown_02038695 -_080AF194: .4byte gUnknown_02038570 -_080AF198: - ldr r2, _080AF1B0 @ =gUnknown_02038570 - ldr r0, _080AF1B4 @ =0x02019204 - 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 @ =0x02019260 - 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 @ =0x02019260 - adds r1, r0, r1 - ldrh r0, [r1, 0x6] - cmp r0, 0 - bne _080AF228 - ldr r0, _080AF220 @ =gUnknown_020238CC - ldr r1, _080AF224 @ =gUnknownText_MissedTurn - adds r2, r3, 0 - bl sub_80AE598 - b _080AF23A - .align 2, 0 -_080AF21C: .4byte 0x02019260 -_080AF220: .4byte gUnknown_020238CC -_080AF224: .4byte gUnknownText_MissedTurn -_080AF228: - ldr r0, _080AF270 @ =gUnknown_020238CC - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AF274 @ =gMoveNames - adds r1, r2 - adds r2, r3, 0 - bl sub_80AE598 -_080AF23A: - adds r0, r5, 0 - bl sub_80AF2A0 - ldr r0, _080AF278 @ =gUnknown_03004210 - ldr r1, _080AF270 @ =gUnknown_020238CC - 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 @ =gUnknown_083CA318 - 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 @ =gUnknown_03004210 - ldr r1, _080AF2DC @ =gUnknown_083CA318 - 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 @ =0x02019260 -_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 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =0x02019328 - 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 @ =0x02019260 - 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 @ =gUnknown_02038695 - 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 @ =0x02019204 - 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 @ =gUnknown_02038688 - lsls r4, 1 - adds r1, r4, r1 - strh r0, [r1] - ldr r2, _080AF660 @ =gUnknown_02038678 - adds r2, r4, r2 - ldr r1, _080AF664 @ =gUnknown_02038670 - 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 @ =gUnknown_02038680 - 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 @ =gUnknown_02038678 - ldr r2, [sp, 0x64] - ldr r5, _080AF820 @ =gUnknown_02038670 - 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 @ =gUnknown_02038690 - 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 @ =gUnknown_030042A0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AF890 @ =gUnknown_03004280 - strh r1, [r0] - bl sub_80AF138 - ldr r0, _080AF894 @ =gMenuWindow - ldr r1, _080AF898 @ =gUnknownText_LinkStandbyAndWinner - 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 @ =0x02019338 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldr r0, _080AF944 @ =sub_80AF94C - 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 @ =gTasks - 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 @ =gTasks - 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 @ =0x02019338 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r2, r0, 3 - adds r0, r2, r3 - ldrh r1, [r0, 0xC] - ldr r0, _080AFA04 @ =0x0000ffff - 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 @ =0x0600c000 - 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 @ =0x0600c000 - 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 @ =0x0600c000 - mov r12, r0 - mov r4, sp - movs r6, 0 - ldr r2, _080AFAB0 @ =0x040000d4 - ldr r5, _080AFAB4 @ =0x81000008 -_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 @ =0x000050a2 - cmp r4, 0 - beq _080AFAE0 - ldr r2, _080AFAF8 @ =0x000060a2 - cmp r4, 0x1 - beq _080AFAE0 - ldr r2, _080AFAFC @ =0x000080a2 - cmp r4, 0x2 - bne _080AFAE0 - ldr r2, _080AFB00 @ =0x000070a2 -_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 @ =0x0600c128 - adds r0, r1 - ldr r1, _080AFB38 @ =0x040000d4 - mov r2, sp - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _080AFB3C @ =0x80000009 - 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 @ =0x00005011 - cmp r0, 0 - beq _080AFB5A - ldr r1, _080AFB68 @ =0x00006011 - cmp r0, 0x1 - beq _080AFB5A - ldr r1, _080AFB6C @ =0x00008011 - cmp r0, 0x2 - bne _080AFB5A - ldr r1, _080AFB70 @ =0x00007011 -_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 @ =0x02019338 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldr r0, _080AFC34 @ =sub_80AFC74 - 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 @ =gTasks - 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 @ =gTasks - lsls r3, r6, 2 - adds r0, r3, r6 - lsls r0, 3 - adds r0, r2 - ldr r1, _080AFC70 @ =0x0000ffff - 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 @ =gTasks - 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 @ =0x02019338 - 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 @ =gTasks - 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 @ =gUnknown_02038696 - 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 @ =0x0600c000 - adds r1, r0 - ldr r2, _080AFDF0 @ =0x01000001 - mov r0, sp - bl CpuSet - mov r2, r9 - cmp r2, 0 - ble _080AFDFC - movs r0, 0x60 - bl PlaySE - ldr r4, _080AFDF4 @ =gMPlay_SE1 - adds r0, r4, 0 - bl m4aMPlayImmInit - ldr r1, _080AFDF8 @ =0x0000ffff - 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 @ =gTasks - 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 @ =gUnknown_083CA350 - bl LoadSpriteSheet - movs r4, 0 - ldr r5, _080AFE68 @ =gUnknown_083CA338 -_080AFE3C: - ldr r0, _080AFE6C @ =gUnknown_02038696 - adds r0, r4, r0 - ldrb r0, [r0] - adds r0, r5 - ldrb r2, [r0] - ldr r0, _080AFE70 @ =gSpriteTemplate_83CA3AC - movs r1, 0xB4 - movs r3, 0x1 - bl CreateSprite - lsls r1, r4, 2 - ldr r2, _080AFE74 @ =0x02019338 - 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 @ =0x02019338 - 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 @ =gSprites - 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 @ =0x0000ffff -_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 @ =sub_80AFF60 - 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 @ =0x02019338 - 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 @ =0x02019338 - adds r1, r0 - ldrb r2, [r1, 0x2] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x2] - ldr r0, _080AFF90 @ =SpriteCallbackDummy - 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 @ =gSprites - ldr r5, _080AFFD4 @ =gUnknown_083CA338 - ldr r3, _080AFFD8 @ =0x02019338 - ldr r4, _080AFFDC @ =gUnknown_02038696 -_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 @ =gUnknown_02038696 - ldr r4, _080B000C @ =gSprites - ldr r2, _080B0010 @ =0x02019338 -_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 @ =gUnknown_083CA3E4 - bl LoadSpritePalette - movs r5, 0 - ldr r0, _080B00AC @ =gUnknown_083CA33C - mov r8, r0 - ldr r7, _080B00B0 @ =gSprites - movs r6, 0 -_080B004A: - lsls r0, r5, 3 - ldr r1, _080B00B4 @ =gUnknown_083CA3C4 - adds r0, r1 - bl LoadCompressedObjectPic - ldr r0, _080B00B8 @ =gSpriteTemplate_83CA3F4 - adds r0, r6, r0 - ldr r1, _080B00BC @ =gUnknown_02038696 - 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 @ =0x02019338 - 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 @ =gUnknown_083CA464 - 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 @ =gUnknown_083CA46C - bl LoadCompressedObjectPic - ldr r0, _080B0108 @ =gUnknown_083CA474 - bl LoadSpritePalette - ldr r0, _080B010C @ =gSpriteTemplate_83CA484 - movs r1, 0x1E - movs r2, 0x2C - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B0110 @ =gSprites - 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 @ =0x02019204 - 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 @ =gUnknown_083CC3AC - bl LoadCompressedObjectPic - movs r4, 0 - ldr r5, _080B019C @ =gUnknown_083CC3B4 -_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 @ =gUnknown_083CA330 - adds r0, r5, 0x1 - mov r8, r0 - ldr r7, _080B01A4 @ =gSprites - ldr r6, _080B01A8 @ =0x0201920d -_080B014A: - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 3 - ldr r1, _080B01AC @ =gSpriteTemplate_83CC454 - 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 @ =0x0201920d - ldr r4, _080B01D8 @ =gSprites + 0x1C - ldr r3, _080B01DC @ =ObjectCB_SwitchPocketRotatingBallInit -_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 sub_80B0238 - 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 @ =gSprites - ldr r4, _080B0228 @ =0x02019204 - 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 @ =SpriteCallbackDummy - 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 sub_80B0238 -sub_80B0238: @ 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 @ =sub_80B02A8 - b _080B0272 - .align 2, 0 -_080B0264: .4byte sub_80B02A8 -_080B0268: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080B027C @ =sub_80B0280 -_080B0272: - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B027C: .4byte sub_80B0280 - thumb_func_end sub_80B0238 - - 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 @ =sub_80B02A8 - 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 @ =0x02019260 - 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 @ =sub_80B02F4 - 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 @ =SpriteCallbackDummy - 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 @ =sub_80B0458 - movs r1, 0x1E - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B0360 @ =0x02019204 - strb r0, [r1, 0xD] - movs r2, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r4, _080B0364 @ =gTasks + 0x8 - 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 gTasks + 0x8 - 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 @ =gTasks - ldr r5, _080B03A4 @ =0x02019204 - 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 @ =sub_80B03D8 - movs r1, 0x1F - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B03D4 @ =gTasks - 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 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x8] - adds r4, r0, 0 - ldr r6, _080B0450 @ =0x02019204 - 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 @ =0x00004bff - 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 @ =gTasks + 0x8 - 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 gTasks + 0x8 -_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 @ =0x02019204 - 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 @ =0x00004bff - 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 @ =sub_80B05FC - movs r1, 0x1E - bl CreateTask - ldr r1, _080B0544 @ =0x02019204 - 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 @ =gTasks - ldr r4, _080B0584 @ =0x02019204 - 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 @ =gPlttBufferUnfaded + 0x14 - adds r6, r2, r3 - ldr r5, _080B05EC @ =gPlttBufferFaded + 0x14 - adds r2, r5 - ldr r1, _080B05F0 @ =0x040000d4 - str r6, [r1] - str r2, [r1, 0x4] - ldr r2, _080B05F4 @ =0x80000001 - 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 @ =gTasks + 0x8 - mov r8, r0 - ldr r1, _080B0668 @ =0x00004bff - 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 gTasks + 0x8 -_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 @ =gTasks - 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 @ =sub_80B0748 - 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 @ =gTasks + 0x8 - mov r8, r0 - ldr r1, _080B0744 @ =0x02019338 - 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 gTasks + 0x8 -_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 @ =gTasks - 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 @ =gUnknown_02038696 - 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 @ =0x00007fff - 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 @ =gUnknown_083CC5A4 - 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 @ =gPlttBufferFaded - lsls r1, r4, 1 - adds r0, r1, r0 - ldrh r2, [r0] - ldr r0, _080B0934 @ =gPlttBufferUnfaded - adds r1, r0 - ldrh r0, [r1] - ldr r1, _080B0938 @ =0x040000d4 - 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 @ =gTasks -_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 @ =0x02019338 - 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 @ =0x02019204 - 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 @ =0x02019260 - 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 @ =gUnknown_02038696 - 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 @ =gUnknown_083CC4B4 - adds r0, r4, r0 - bl LoadCompressedObjectPic - ldr r0, _080B0B34 @ =gUnknown_083CC4D4 - 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 @ =gSpriteTemplate_83CC53C - 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 @ =gSprites - 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 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B0B44 @ =0xfffffc00 - 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 @ =0x0600e026 - 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 @ =0x06010000 - 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 @ =0x0600e036 - 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 @ =0x040000d4 - add r3, sp, 0x8 - mov r12, r3 - str r3, [r1] - str r0, [r1, 0x4] - ldr r3, _080B0B58 @ =0x850000c0 - 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 @ =gSprites - 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 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080B0BB0 @ =0x00000907 - 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 @ =REG_BLDCNT - 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 @ =gSprites - 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 @ =0x02019338 - 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 @ =sub_80B0C5C - str r0, [r6] - add r4, r8 - ldr r0, _080B0C44 @ =SpriteCallbackDummy - 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 @ =gSprites - 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 @ =sub_80B0CB0 - 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 @ =0x02019338 - 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 @ =0x02019338 - 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 @ =0x02000000 - 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 @ =gUnknown_083CA308 - adds r3, r6, 0x1 - mov r8, r3 - ldr r5, _080B0D64 @ =gUnknown_083CA310 - 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 @ =gUnknown_03004210 - 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 @ =0x02000000 - 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 @ =gUnknown_083CA308 - adds r3, r7, 0x1 - mov r9, r3 - ldr r6, _080B0ED8 @ =gUnknown_083CA310 - 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 @ =gUnknown_03004210 - 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 @ =gUnknown_083CA310 - adds r7, r6, 0x1 -_080B0DE2: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _080B0EE0 @ =0x02019260 - 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 @ =gUnknown_02038696 - 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 @ =gUnknown_03004210 - 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 @ =gUnknown_083CA308 - adds r7, r6, 0x1 -_080B0E52: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _080B0EE0 @ =0x02019260 - 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 @ =gUnknown_02038696 - 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 @ =gUnknown_03004210 - 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 @ =gUnknown_02038696 - mov r8, r3 -_080B0F9C: - mov r6, r8 - strb r5, [r6] - movs r4, 0 - cmp r4, r5 - bge _080B1018 - ldr r7, _080B100C @ =gUnknown_02038670 - 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 @ =gUnknown_02038696 - 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 @ =gUnknown_02038696 - 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 @ =gUnknown_02038696 - movs r6, 0 -_080B1060: - ldr r0, _080B1074 @ =0x02019260 - 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 @ =gUnknown_02038696 - mov r8, r2 - add r3, sp, 0x4 - mov r12, r3 -_080B10AC: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r6, _080B1110 @ =0x02019244 - adds r1, r0, r6 - ldrb r2, [r1, 0xB] - ldr r7, _080B1114 @ =0x02019260 - 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 @ =0x02018004 - adds r0, r5, r0 - ldr r1, _080B1148 @ =gUnknown_02038696 - 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 @ =0x02019260 - 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 @ =gContestMoves - 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 @ =0x02019260 - 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 @ =gContestEffects - 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 @ =0x02019260 - 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 @ =gContestEffectFuncs - adds r0, r4, r0 - ldr r0, [r0] - bl _call_via_r0 - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B1264 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =gContestMoves - subs r0, r7, r6 - lsls r0, 2 - ldr r1, _080B1314 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =0x02019260 - 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 @ =gStringVar1 - lsls r1, r4, 6 - ldr r2, _080B14CC @ =gUnknown_02038572 - adds r1, r2 - bl StringCopy - ldr r0, _080B14D0 @ =gStringVar2 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r4, _080B14D4 @ =0x02019260 - adds r1, r4 - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080B14D8 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r2, _080B14DC @ =gContestMoves - 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 @ =gStringVar3 - ldr r1, _080B14E4 @ =gUnknown_083CC280 - 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 @ =gStringVar3 - ldr r1, _080B14FC @ =gUnknown_083CC288 - 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 @ =gStringVar3 - ldr r1, _080B1514 @ =gUnknown_083CC290 - 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 @ =gStringVar3 - ldr r1, _080B152C @ =gUnknown_083CC299 - bl StringCopy - b _080B1538 - .align 2, 0 -_080B1528: .4byte gStringVar3 -_080B152C: .4byte gUnknown_083CC299 -_080B1530: - ldr r0, _080B1568 @ =gStringVar3 - ldr r1, _080B156C @ =gUnknown_083CC2A3 - bl StringCopy -_080B1538: - ldr r4, _080B1570 @ =gStringVar4 - ldr r1, _080B1574 @ =gUnknown_083CC188 - lsls r0, r5, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80AF138 - ldr r0, _080B1578 @ =gMenuWindow - 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 @ =0x02019260 - 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 @ =gUnknown_02038696 - 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 @ =0x02019260 - 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 @ =gUnknown_02038696 - 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 @ =0x020192d0 - 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 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - ldr r2, _080B170C @ =0x02019204 - 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 @ =0x02019204 - ldrb r5, [r0, 0x12] - cmp r1, 0x8 - bls _080B1720 - b _080B18C0 -_080B1720: - lsls r0, r1, 2 - ldr r1, _080B1730 @ =_080B1734 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2E] - ldr r2, _080B1780 @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1784 @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x4 - ldr r3, _080B17B4 @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B17B8 @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x8 - ldr r3, _080B17E8 @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B17EC @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0xC - ldr r3, _080B181C @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1820 @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0xC - ldr r3, _080B1850 @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1854 @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x10 - ldr r3, _080B1884 @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B1888 @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x18 - ldr r3, _080B18B8 @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B18BC @ =0xfffffc00 - 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 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x2E] - adds r2, 0x14 - ldr r3, _080B1918 @ =0x000003ff - adds r0, r3, 0 - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _080B191C @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - movs r0, 0x2D - bl PlaySE -_080B18E4: - adds r2, r4, 0 - ldr r4, _080B1914 @ =gSprites - 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 @ =sub_80B16D0 - str r0, [r2] - ldr r2, _080B1924 @ =0x02019204 - 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 @ =0x02019204 - ldr r0, _080B19C0 @ =gSprites - mov r10, r0 - movs r1, 0x58 - adds r1, r6 - mov r9, r1 - ldr r0, _080B19C4 @ =0x06010000 - mov r8, r0 - ldr r7, _080B19C8 @ =REG_BG0CNT -_080B1946: - movs r0, 0x13 - ldrsb r0, [r6, r0] - ldr r4, _080B19CC @ =gContestApplauseMeterGfx - 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 @ =gUnknown_083CC2EC - add r0, sp, 0x4 - bl StringCopy - ldr r0, _080B19F8 @ =gUnknown_03004210 - 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 @ =gContestExcitementTable - ldr r1, _080B1A24 @ =gContestMoves - lsrs r0, 13 - adds r0, r1 - ldrb r1, [r0, 0x1] - lsls r1, 29 - lsrs r1, 29 - ldr r0, _080B1A28 @ =gUnknown_0203869C - 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 @ =c3_08130B10 - movs r1, 0xA - bl CreateTask - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080B1A64 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r0, 0x1 - strh r0, [r4, 0xA] - ldr r0, _080B1A68 @ =0x0000abe2 - 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 @ =gTasks - 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 @ =0x00007fff - 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 @ =0x02019204 - 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 @ =sub_80B1B68 - movs r1, 0xA - bl CreateTask - ldr r4, _080B1B5C @ =gSprites - ldr r3, _080B1B60 @ =0x02019204 - 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 @ =0x0000ffba - 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 @ =0x02019204 - adds r0, r4, 0 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B1BD4 @ =gSprites - adds r2, r0, r1 - ldr r0, _080B1BD8 @ =gTasks - 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 @ =gSprites - ldr r4, _080B1C08 @ =0x02019204 - 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 @ =sub_80B1C34 - 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 @ =0x02019204 - adds r0, r5, 0 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B1CB0 @ =gSprites - adds r3, r0, r1 - ldr r0, _080B1CB4 @ =gTasks - 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 @ =0x0000ffba - 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 @ =sub_80B1CFC - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B1CF4 @ =gTasks - 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 @ =0x02019204 - 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 @ =gTasks - 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 @ =0x02019204 - 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 @ =0x02019204 - 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 @ =gSprites - ldr r2, _080B1DB4 @ =0x02019204 - 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 @ =gSprites - ldr r0, _080B1DD8 @ =0x02019204 - 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 @ =sub_80B1DFC - movs r1, 0xF - bl CreateTask - ldr r2, _080B1DF8 @ =0x02019204 - 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 @ =gTasks - 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 @ =0x02016800 - ldr r2, _080B1E44 @ =0x06002000 - ldr r0, _080B1E48 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080B1E4C @ =0x84000400 - 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 @ =0x02015800 - ldr r2, _080B1E98 @ =0x06002000 - ldr r0, _080B1E9C @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080B1EA0 @ =0x84000400 - 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 @ =0x02019204 - 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 @ =sub_80B1F4C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - cmp r4, 0 - ble _080B1F08 - ldr r7, _080B1EE8 @ =0x0000237e - lsls r0, r5, 24 - adds r4, r0, 0 - cmp r4, 0 - ble _080B1EF0 - movs r5, 0 - ldr r2, _080B1EEC @ =0x02019204 - 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 @ =0x02019204 - 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 @ =0x02019204 -_080B1F1E: - ldr r1, _080B1F48 @ =gTasks - 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 @ =gTasks - 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 @ =0x02019204 - 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 @ =0x02019260 - ldr r6, _080B2050 @ =gSprites - 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 @ =0x060100a0 - adds r1, r2 - ldr r2, _080B2058 @ =REG_BG0HOFS - bl CpuSet - ldrb r0, [r4, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldr r2, _080B205C @ =gUnknown_083CA33C - ldr r0, _080B2060 @ =gUnknown_02038696 - 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 @ =0x02019260 - 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 @ =gContestNextTurnNumbersGfx - adds r0, r1 - b _080B20BA - .align 2, 0 -_080B20B0: .4byte 0x02019260 -_080B20B4: .4byte gContestNextTurnNumbersGfx -_080B20B8: - ldr r0, _080B20C0 @ =gContestNextTurnRandomGfx -_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 @ =0x020192dd -_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 @ =gUnknown_02038696 - 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 @ =0x0600c028 - adds r1, r4, r2 - strh r0, [r1] - ldr r1, _080B2140 @ =0x0600c02a - adds r2, r4, r1 - adds r1, r0, 0x1 - strh r1, [r2] - ldr r1, _080B2144 @ =0x0600c068 - adds r2, r4, r1 - adds r1, r0, 0 - adds r1, 0x10 - strh r1, [r2] - ldr r2, _080B2148 @ =0x0600c06a - 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 @ =0x02019260 - 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 @ =REG_BG1CNT - 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 @ =gUnknown_030042C0 - movs r2, 0xF0 - strh r2, [r0] - ldr r0, _080B2258 @ =gUnknown_030041B4 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080B225C @ =REG_BG1HOFS - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080B2260 @ =0x0600f000 - movs r0, 0 - str r0, [sp] - ldr r0, _080B2264 @ =0x040000d4 - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080B2268 @ =0x85000400 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080B226C @ =gUnknown_08D17C3C - 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 @ =gSprites - adds r7, r2, 0 - movs r5, 0x4 - ldr r3, _080B2274 @ =0x02019338 -_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 @ =REG_BG2CNT - 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 @ =REG_BG0CNT - 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 @ =0x06008000 - movs r3, 0x80 - lsls r3, 6 - ldr r0, _080B235C @ =gUnknown_030042C0 - mov r12, r0 - ldr r0, _080B2360 @ =gUnknown_030041B4 - mov r8, r0 - movs r5, 0 - ldr r1, _080B2364 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080B2368 @ =0x85000400 - 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 @ =0x0600f000 - movs r2, 0 - str r2, [sp] - ldr r0, _080B2364 @ =0x040000d4 - mov r3, sp - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _080B2368 @ =0x85000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - mov r0, r12 - strh r2, [r0] - mov r3, r8 - strh r2, [r3] - ldr r2, _080B2370 @ =REG_BG1CNT - 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 @ =gSprites - adds r6, r3, 0 - ldr r3, _080B2378 @ =0x02019338 -_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 @ =gUnknown_030042C0 - movs r0, 0 - strh r0, [r1] - ldr r1, _080B23B0 @ =gUnknown_030041B4 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0x62 - movs r1, 0 - bl PlaySE12WithPanning - ldr r1, _080B23B4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B23B8 @ =sub_80B23BC - 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 @ =gUnknown_030041B4 - 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 @ =gTasks - 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 @ =sub_80B2400 - 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 @ =gTasks - 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 @ =0x02019218 - ldr r3, _080B2474 @ =gUnknown_02038696 -_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 @ =gTasks - 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 @ =gUnknown_0203869A - ldrb r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080B24D0 - ldr r2, _080B24C4 @ =0x02019204 - 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 @ =sub_80C8C80 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B24CC @ =sub_80AD8DC - 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 @ =0x02019204 - 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 @ =sub_80B253C - 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 @ =gUnknown_030041B4 - ldrh r0, [r1] - adds r0, 0x7 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _080B252C - ldr r0, _080B2534 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080B2538 @ =sub_80ADCDC - 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 @ =gTasks - 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 @ =sub_80B25A4 - 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 @ =gTasks - 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 @ =sub_80B2508 - 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 @ =gSprites -_080B25F6: - bl AllocOamMatrix - lsls r1, r6, 2 - ldr r2, _080B26B8 @ =0x02019338 - 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 @ =sub_80B26C8 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B26C0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r7, r9 - strh r7, [r1, 0x8] - ldr r2, _080B26C4 @ =0xfffffecc - 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 @ =gSprites - ldr r4, _080B2754 @ =0x02019338 - 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 @ =gTasks - 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 @ =0x02019338 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B2750 @ =gSprites - adds r0, r1 - bl FreeSpriteOamMatrix - adds r4, 0x1 - cmp r4, 0x3 - ble _080B271A - ldr r0, _080B275C @ =0xfffffecc - 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 @ =0x0000019b - 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 @ =0x02019260 - adds r0, r4 - ldrh r0, [r0, 0x6] - bl sub_80B2760 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080B27F4 @ =gUnknown_02038570 - 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 @ =gUnknown_02024E84 - 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 @ =gBaseStats - 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 @ =gUnknown_0202F7C4 - 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 @ =0x02019260 - adds r0, r4 - ldrb r5, [r0, 0x1B] - ldr r6, _080B287C @ =gUnknown_02038570 - 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 @ =gUnknown_0202F7BE - movs r0, 0xFF - b _080B28BC - .align 2, 0 -_080B2888: .4byte gUnknown_0202F7BE -_080B288C: - ldr r1, _080B2894 @ =gUnknown_0202F7BE - movs r0, 0 - b _080B28BC - .align 2, 0 -_080B2894: .4byte gUnknown_0202F7BE -_080B2898: - ldr r0, _080B28B0 @ =0x02019204 - adds r2, r0, 0 - adds r2, 0x5A - ldrb r1, [r2] - cmp r1, 0 - bne _080B28B8 - movs r0, 0x2 - strb r0, [r2] - ldr r0, _080B28B4 @ =gUnknown_0202F7C4 - strb r1, [r0] - b _080B28BE - .align 2, 0 -_080B28B0: .4byte 0x02019204 -_080B28B4: .4byte gUnknown_0202F7C4 -_080B28B8: - ldr r1, _080B28C8 @ =gUnknown_0202F7C4 - 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 @ =0x02019348 - 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 @ =0x02019348 - strb r4, [r6, 0x5] - ldr r5, _080B2928 @ =gUnknown_02038570 - 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 @ =SpriteCallbackDummy - bl object_new_hidden_with_callback - ldr r1, _080B295C @ =gUnknown_02024BE0 - strb r0, [r1, 0x3] - ldr r0, _080B2960 @ =gUnknown_02024C08 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B2964 @ =gSprites - 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 @ =gUnknown_02024BE0 - ldrb r0, [r0, 0x3] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080B29B0 @ =gSprites - 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 @ =gBattleMoves - 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 @ =_080B29DC - 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 @ =gUnknown_02024C08 - movs r0, 0x2 - b _080B2A70 - .align 2, 0 -_080B2A68: .4byte gUnknown_02024C08 -_080B2A6C: - ldr r1, _080B2A78 @ =gUnknown_02024C08 - 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 @ =gUnknown_02038690 - 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 @ =gUnknown_02038695 - 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 @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080B2B16 - lsls r0, 2 - ldr r1, _080B2AE8 @ =_080B2AEC - 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 @ =gSaveBlock1 - lsrs r4, 19 - ldr r0, _080B2B9C @ =0x00002dfc - adds r1, r2, r0 - adds r1, r4, r1 - ldr r5, _080B2BA0 @ =gUnknown_02038570 - 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 @ =0x00002e04 - 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 @ =0x00002e07 - 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 @ =0x00002e12 - 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 @ =gUnknown_0203869C - ldrh r1, [r0] - ldr r0, _080B2BB4 @ =0x00002e06 - 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 @ =0x00002e06 - add r0, r8 - strb r7, [r0] - b _080B2C36 - .align 2, 0 -_080B2BC0: .4byte 0x00002e06 -_080B2BC4: - ldr r5, _080B2C14 @ =0x02015de0 - ldr r2, _080B2C18 @ =gUnknown_02038570 - 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 @ =gUnknown_0203869A - 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 @ =gLinkPlayers + 0x8 - 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 @ =0x02015de0 - 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 @ =gSaveBlock1 + 0x2DFC - 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 @ =gSaveBlock1 + 0x2DFC - 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 @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080B2D14 - lsls r0, 2 - ldr r1, _080B2CEC @ =_080B2CF0 - 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 @ =gSaveBlock1 - ldr r4, _080B2D4C @ =gUnknown_083CC5D0 - ldr r1, _080B2D50 @ =0x00002dfc - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_083CC6D0 - ldr r0, _080B2D98 @ =gUnknown_083CC6E8 - 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 @ =gUnknown_083CC6D0 - ldr r0, _080B2DF0 @ =gUnknown_083CC6EB - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x2 - bl PrintMenuItemsReordered -_080B2DBC: - ldr r0, _080B2DF4 @ =gUnknown_03000708 - 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 @ =sub_80B2E38 - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - 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 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080B2E68 - ldr r4, _080B2E64 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - ldrb r0, [r3, 0xC] - cmp r0, 0 - bne _080B2EBC - ldr r1, _080B2EB4 @ =gUnknown_083CC6D0 - ldr r2, _080B2EB8 @ =gUnknown_083CC6E8 - b _080B2EC0 - .align 2, 0 -_080B2EB0: .4byte gUnknown_03000708 -_080B2EB4: .4byte gUnknown_083CC6D0 -_080B2EB8: .4byte gUnknown_083CC6E8 -_080B2EBC: - ldr r1, _080B2ED8 @ =gUnknown_083CC6D0 - ldr r2, _080B2EDC @ =gUnknown_083CC6EB -_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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080B2F28 @ =BuyMenuDrawGraphics - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080B2F2C @ =sub_80B2FA0 - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080B2F5C @ =sub_80A6300 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080B2F60 @ =sub_80B2FA0 - 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 @ =gUnknown_03000708 - 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 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B2FCE - ldr r0, _080B2FD8 @ =gTasks - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - ldrb r0, [r0, 0xC] - cmp r0, 0x2 - bne _080B3034 - ldr r1, _080B302C @ =gOtherText_CanIHelpYou - ldr r2, _080B3030 @ =ReturnToShopMenuAfterExitingSellMenu - 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 @ =gOtherText_AnythingElse - ldr r2, _080B304C @ =ReturnToShopMenuAfterExitingSellMenu - 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 @ =Task_ExitSellMenu - 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 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080B3090 @ =Task_ExitSellMenu - 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 @ =gBG1TilemapBuffer - ldr r1, _080B30F4 @ =0x0600e800 - ldr r0, _080B30F8 @ =0x040000d4 - str r3, [r0] - str r1, [r0, 0x4] - ldr r4, _080B30FC @ =0x80000400 - str r4, [r0, 0x8] - ldr r1, [r0, 0x8] - movs r2, 0x80 - lsls r2, 4 - adds r1, r3, r2 - ldr r2, _080B3100 @ =0x0600e000 - 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 @ =0x0600f000 - 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 @ =REG_BG1HOFS - 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 @ =gPaletteFade - 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 @ =0x040000d4 - add r2, sp, 0x4 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _080B3210 @ =0x85000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080B3214 @ =gBuyMenuFrame_Gfx - ldr r1, _080B3218 @ =0x06007c00 - bl LZDecompressVram - ldr r0, _080B321C @ =gBuyMenuFrame_Tilemap - ldr r1, _080B3220 @ =0x02018000 - bl sub_800D238 - ldr r0, _080B3224 @ =gMenuMoneyPal - movs r1, 0xC0 - movs r2, 0x20 - bl LoadCompressedPalette - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - ldr r4, _080B3228 @ =gWindowConfig_81E6DFC - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - bl BuyMenuDrawMapGraphics - ldr r0, _080B322C @ =gUnknown_03000708 - 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 @ =gSaveBlock1 - 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 @ =sub_80B40E8 - 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 @ =sub_80B30AC - bl SetVBlankCallback - ldr r0, _080B323C @ =sub_80B3094 - 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 @ =gUnknown_083CC710 - 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 @ =gUnknown_03000708 - ldrb r0, [r0, 0x8] - cmp r0, 0x7 - bls _080B329A - movs r0, 0 - movs r1, 0xAC - movs r2, 0xC - bl CreateVerticalScrollIndicators - movs r0, 0x1 - movs r1, 0xAC - movs r2, 0x94 - bl CreateVerticalScrollIndicators - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - 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 @ =0x0000c3e1 - 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 @ =gBG2TilemapBuffer - b _080B3366 - .align 2, 0 -_080B3360: .4byte gBG2TilemapBuffer -_080B3364: - ldr r5, _080B3390 @ =gBG3TilemapBuffer -_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 @ =0xfffff800 - 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 @ =gBG3TilemapBuffer - 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 @ =0xfffff000 - 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 @ =gBG3TilemapBuffer - 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 @ =0xfffff800 - 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 @ =0x000001ff - mov r10, r0 - ldr r2, _080B34AC @ =gMapHeader - 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 @ =0xfffffe00 - 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 @ =0xfffffe00 - 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 @ =gBG1TilemapBuffer - 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 @ =gUnknown_020386A4 - 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 @ =gUnknown_020386AA - 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 @ =0x0000fffd - adds r0, r3, 0 - ldrh r1, [r1] - adds r0, r1 - adds r0, r4 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080B3680 @ =0x0000fffe - 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 @ =gUnknown_020386A8 - adds r0, r3, r1 - strh r5, [r0] - ldr r1, _080B3688 @ =gMapObjects - 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 @ =gUnknown_020386A4 - adds r0, r6, 0x6 - mov r8, r0 - ldr r7, _080B3714 @ =gMapObjects -_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 @ =SpriteCallbackDummy - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080B371C @ =gSprites - 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 @ =gBG1TilemapBuffer - ldr r5, _080B3758 @ =0x000003ff - ldr r4, _080B375C @ =0x02018000 - ldr r0, _080B3760 @ =0x0000c3e0 - 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 @ =gUnknown_03000708 - 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 @ =gBG1TilemapBuffer - mov r12, r0 - ldr r7, _080B37E4 @ =0x02018300 - ldr r0, _080B37E8 @ =0x0000c3e0 - 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 @ =gUnknown_03000708 - 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_GetPrice - 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 @ =gTasks - 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 @ =gStringVar1 - 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 @ =gOtherText_xString1 - movs r1, 0x1 - movs r2, 0xB - bl MenuPrint - ldr r0, _080B3894 @ =gBG1TilemapBuffer - movs r1, 0x2 - str r1, [sp] - ldr r1, _080B3898 @ =0x0000c3e1 - 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 @ =gStringVar1 - 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 CopyItemName - ldr r6, _080B392C @ =gStringVar1 - 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_GetPrice - 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 MenuPrint_PixelCoords - 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 @ =gStringVar1 - 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 @ =gDecorations + 0x1 - mov r8, r0 - adds r1, r6, r0 - adds r0, r2, 0 - bl StringCopy - ldr r5, _080B39A0 @ =gStringVar1 - 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 @ =0x00002710 - 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 MenuPrint_PixelCoords -_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 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - 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 @ =gOtherText_CancelNoTerminator - 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 @ =gUnknown_03000708 - 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_GetDescription - movs r1, 0x30 - str r1, [sp] - str r4, [sp, 0x4] - b _080B3ABA - .align 2, 0 -_080B3A9C: .4byte gUnknown_03000708 -_080B3AA0: - ldr r1, _080B3AC8 @ =gDecorations - 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 @ =gOtherText_QuitShopping - 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 @ =gMain - 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 @ =gUnknown_03000708 - 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 @ =gTasks - 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 AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3B74 - ldr r1, _080B3B68 @ =gOtherText_FreePremierBall - ldr r2, _080B3B6C @ =sub_80B4378 - ldr r3, _080B3B70 @ =0x0000c3e1 - 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 @ =gSaveBlock1 + 0x490 - ldr r0, _080B3BC4 @ =gUnknown_020386A0 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B3BCC @ =sub_80B3AEC - 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 @ =gUnknown_03000708 - 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 @ =gBG1TilemapBuffer - 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 @ =gSaveBlock1 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080B3C84 @ =gUnknown_020386A0 - ldr r1, [r1] - bl IsEnoughMoney - lsls r0, 24 - cmp r0, 0 - beq _080B3D18 - ldr r4, _080B3C88 @ =gUnknown_03000708 - 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 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - beq _080B3C9C - ldr r1, _080B3C90 @ =gOtherText_HereYouGo - ldr r2, _080B3C94 @ =sub_80B3B80 - ldr r3, _080B3C98 @ =0x0000c3e1 - 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 @ =gOtherText_NoRoomFor - ldr r2, _080B3CA8 @ =sub_80B3BD0 - 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 @ =gOtherText_HereYouGo2 - b _080B3CD6 - .align 2, 0 -_080B3CD0: .4byte gOtherText_HereYouGo2 -_080B3CD4: - ldr r1, _080B3CE4 @ =gOtherText_HereYouGo3 -_080B3CD6: - ldr r2, _080B3CE8 @ =sub_80B3B80 -_080B3CD8: - ldr r3, _080B3CEC @ =0x0000c3e1 - 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 @ =gStringVar4 - ldr r1, _080B3D0C @ =gOtherText_SpaceForIsFull - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080B3D10 @ =sub_80B3BD0 - ldr r3, _080B3D14 @ =0x0000c3e1 - 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 @ =gOtherText_NotEnoughMoney - ldr r2, _080B3D30 @ =sub_80B3BD0 - ldr r3, _080B3D34 @ =0x0000c3e1 - 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 @ =gBG1TilemapBuffer - movs r1, 0x4 - str r1, [sp] - ldr r1, _080B3D74 @ =0x0000c3e1 - str r1, [sp, 0x4] - movs r1, 0x8 - movs r2, 0x9 - movs r3, 0x4 - bl sub_80A3FA0 - ldr r1, _080B3D78 @ =gUnknown_083CC708 - 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 @ =gUnknown_03000708 - 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 @ =gBG1TilemapBuffer - 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 @ =gUnknown_03000708 - 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 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B3ED8 - ldr r0, _080B3EB0 @ =gUnknown_020386A0 - 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_GetPrice - 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 @ =gTasks - 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 @ =gBG1TilemapBuffer - 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 @ =gStringVar1 - bl CopyItemName - ldr r0, _080B3EC0 @ =gStringVar2 - movs r2, 0xA - ldrsh r1, [r5, r2] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080B3EC4 @ =gStringVar3 - mov r2, r8 - ldr r1, [r2] - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - ldr r4, _080B3EC8 @ =gStringVar4 - ldr r1, _080B3ECC @ =gOtherText_ThatWillBe - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080B3ED0 @ =sub_80B3D38 - ldr r3, _080B3ED4 @ =0x0000c3e1 - 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 @ =gTasks - 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 @ =gUnknown_03000708 - 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_GetPrice - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - ldr r1, _080B3F80 @ =gSaveBlock1 - 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 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080B3F84 @ =sub_80B3DC8 - 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 @ =gMenuWindow - mov r8, r0 - ldr r1, [r0, 0x28] - ldr r3, _080B4024 @ =0x000003de - adds r1, r3 - adds r2, r1, 0 - adds r2, 0x80 - ldr r7, [r0, 0x24] - mov r10, r7 - ldr r0, _080B4028 @ =0x000003ff - 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 @ =0x00003a20 - add r1, r10 - movs r0, 0xF0 - lsls r0, 3 - adds r2, r1, r0 - ldr r3, _080B4030 @ =0x040000d4 - ldr r5, _080B4034 @ =0x800000f0 - ldr r4, _080B4038 @ =0xfffffc40 - 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 @ =gMenuWindow - 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 @ =0x000003ff - 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 @ =0x040000d4 - ldr r5, _080B40E4 @ =0x800000f0 - 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 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080B4102 - b _080B436C -_080B4102: - ldr r2, _080B4138 @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080B414C - ldr r4, _080B413C @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_03000708 - 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 @ =gUnknown_020386A0 - 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_GetPrice - 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 @ =gSaveBlock1 - 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 @ =gStringVar1 - bl CopyItemName - ldr r4, _080B427C @ =gStringVar4 - ldr r1, _080B4280 @ =gOtherText_HowManyYouWant - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080B4284 @ =sub_80B3EFC - ldr r3, _080B4288 @ =0x0000c3e1 - 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 @ =gUnknown_020386A0 - ldr r4, _080B42CC @ =gDecorations - 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 @ =gSaveBlock1 - 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 @ =gOtherText_NotEnoughMoney - ldr r2, _080B42D8 @ =sub_80B3BD0 - ldr r3, _080B42DC @ =0x0000c3e1 - 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 @ =gStringVar1 - 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 @ =gStringVar2 - ldr r1, [r5] - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - ldrb r0, [r6, 0xC] - cmp r0, 0x1 - bne _080B4328 - ldr r0, _080B4320 @ =gStringVar4 - ldr r1, _080B4324 @ =gOtherText_ThatWillBe2 - bl StringExpandPlaceholders - b _080B4330 - .align 2, 0 -_080B4318: .4byte gStringVar1 -_080B431C: .4byte gStringVar2 -_080B4320: .4byte gStringVar4 -_080B4324: .4byte gOtherText_ThatWillBe2 -_080B4328: - ldr r0, _080B4340 @ =gStringVar4 - ldr r1, _080B4344 @ =gOtherText_ThatWillBe3 - bl StringExpandPlaceholders -_080B4330: - ldr r1, _080B4340 @ =gStringVar4 - ldr r2, _080B4348 @ =sub_80B3D38 - ldr r3, _080B434C @ =0x0000c3e1 - 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 @ =gBG1TilemapBuffer - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B43EC @ =sub_80B40E8 - 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 @ =gUnknown_0300485C - ldr r0, _080B442C @ =sub_80B3050 - 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 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B4434 @ =Task_ExitBuyMenu - 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 @ =gPaletteFade - 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 @ =c2_exit_to_overworld_2_switch - 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 @ =gUnknown_02038724 - mov r12, r0 - ldr r6, _080B44CC @ =gUnknown_03000708 - mov r8, r12 - adds r4, r6, 0 - ldr r1, _080B44D0 @ =gTasks - 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 @ =gUnknown_02038730 - 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 @ =gTasks - 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 @ =gUnknown_02038730 - movs r1, 0 - strb r1, [r0] - ldr r0, _080B454C @ =gUnknown_02038724 - movs r1, 0x3 - bl ClearItemSlots - 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 @ =EnableBothScriptContexts - 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 @ =EnableBothScriptContexts - 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 @ =EnableBothScriptContexts - 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 @ =gTasks - 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 @ =gTasks + 0x8 - 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 @ =_080B4740 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4738: .4byte gTasks + 0x8 -_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 @ =gUnknown_083CC714 - b _080B4792 - .align 2, 0 -_080B4760: .4byte gUnknown_083CC714 -_080B4764: - ldr r1, _080B4768 @ =gUnknown_083CC71A - b _080B4792 - .align 2, 0 -_080B4768: .4byte gUnknown_083CC71A -_080B476C: - ldr r1, _080B4770 @ =gUnknown_083CC720 - b _080B477E - .align 2, 0 -_080B4770: .4byte gUnknown_083CC720 -_080B4774: - ldr r1, _080B4778 @ =gUnknown_083CC726 - b _080B4792 - .align 2, 0 -_080B4778: .4byte gUnknown_083CC726 -_080B477C: - ldr r1, _080B478C @ =gUnknown_083CC72C -_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 @ =gUnknown_083CC732 -_080B4792: - adds r0, r3, 0 - movs r2, 0 - bl sub_80B45B4 - b _080B47AA - .align 2, 0 -_080B479C: .4byte gUnknown_083CC732 -_080B47A0: - ldr r1, _080B47D4 @ =gUnknown_083CC738 - 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 @ =sub_80B4710 - 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 @ =gTasks + 0x8 - 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 gTasks + 0x8 - 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 @ =gUnknown_02038731 - 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 @ =gUnknown_02038731 - 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 @ =gTasks - ldr r0, _080B4878 @ =gUnknown_02038731 - 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/shop.s b/asm/shop.s new file mode 100644 index 000000000..760586c18 --- /dev/null +++ b/asm/shop.s @@ -0,0 +1,3425 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_083CC6D0 + ldr r0, _080B2D98 @ =gUnknown_083CC6E8 + 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 @ =gUnknown_083CC6D0 + ldr r0, _080B2DF0 @ =gUnknown_083CC6EB + str r0, [sp] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x2 + bl PrintMenuItemsReordered +_080B2DBC: + ldr r0, _080B2DF4 @ =gUnknown_03000708 + 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 @ =sub_80B2E38 + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + 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 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080B2E68 + ldr r4, _080B2E64 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + ldrb r0, [r3, 0xC] + cmp r0, 0 + bne _080B2EBC + ldr r1, _080B2EB4 @ =gUnknown_083CC6D0 + ldr r2, _080B2EB8 @ =gUnknown_083CC6E8 + b _080B2EC0 + .align 2, 0 +_080B2EB0: .4byte gUnknown_03000708 +_080B2EB4: .4byte gUnknown_083CC6D0 +_080B2EB8: .4byte gUnknown_083CC6E8 +_080B2EBC: + ldr r1, _080B2ED8 @ =gUnknown_083CC6D0 + ldr r2, _080B2EDC @ =gUnknown_083CC6EB +_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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080B2F28 @ =BuyMenuDrawGraphics + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080B2F2C @ =sub_80B2FA0 + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080B2F5C @ =sub_80A6300 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080B2F60 @ =sub_80B2FA0 + 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 @ =gUnknown_03000708 + 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 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B2FCE + ldr r0, _080B2FD8 @ =gTasks + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + ldrb r0, [r0, 0xC] + cmp r0, 0x2 + bne _080B3034 + ldr r1, _080B302C @ =gOtherText_CanIHelpYou + ldr r2, _080B3030 @ =ReturnToShopMenuAfterExitingSellMenu + 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 @ =gOtherText_AnythingElse + ldr r2, _080B304C @ =ReturnToShopMenuAfterExitingSellMenu + 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 @ =Task_ExitSellMenu + 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 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080B3090 @ =Task_ExitSellMenu + 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 @ =gBG1TilemapBuffer + ldr r1, _080B30F4 @ =0x0600e800 + ldr r0, _080B30F8 @ =0x040000d4 + str r3, [r0] + str r1, [r0, 0x4] + ldr r4, _080B30FC @ =0x80000400 + str r4, [r0, 0x8] + ldr r1, [r0, 0x8] + movs r2, 0x80 + lsls r2, 4 + adds r1, r3, r2 + ldr r2, _080B3100 @ =0x0600e000 + 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 @ =0x0600f000 + 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 @ =REG_BG1HOFS + 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 @ =gPaletteFade + 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 @ =0x040000d4 + add r2, sp, 0x4 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080B3210 @ =0x85000100 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080B3214 @ =gBuyMenuFrame_Gfx + ldr r1, _080B3218 @ =0x06007c00 + bl LZDecompressVram + ldr r0, _080B321C @ =gBuyMenuFrame_Tilemap + ldr r1, _080B3220 @ =0x02018000 + bl sub_800D238 + ldr r0, _080B3224 @ =gMenuMoneyPal + movs r1, 0xC0 + movs r2, 0x20 + bl LoadCompressedPalette + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + ldr r4, _080B3228 @ =gWindowConfig_81E6DFC + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + bl BuyMenuDrawMapGraphics + ldr r0, _080B322C @ =gUnknown_03000708 + 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 @ =gSaveBlock1 + 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 @ =sub_80B40E8 + 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 @ =sub_80B30AC + bl SetVBlankCallback + ldr r0, _080B323C @ =sub_80B3094 + 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 @ =gUnknown_083CC710 + 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 @ =gUnknown_03000708 + ldrb r0, [r0, 0x8] + cmp r0, 0x7 + bls _080B329A + movs r0, 0 + movs r1, 0xAC + movs r2, 0xC + bl CreateVerticalScrollIndicators + movs r0, 0x1 + movs r1, 0xAC + movs r2, 0x94 + bl CreateVerticalScrollIndicators + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + 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 @ =0x0000c3e1 + 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 @ =gBG2TilemapBuffer + b _080B3366 + .align 2, 0 +_080B3360: .4byte gBG2TilemapBuffer +_080B3364: + ldr r5, _080B3390 @ =gBG3TilemapBuffer +_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 @ =0xfffff800 + 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 @ =gBG3TilemapBuffer + 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 @ =0xfffff000 + 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 @ =gBG3TilemapBuffer + 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 @ =0xfffff800 + 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 @ =0x000001ff + mov r10, r0 + ldr r2, _080B34AC @ =gMapHeader + 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 @ =0xfffffe00 + 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 @ =0xfffffe00 + 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 @ =gBG1TilemapBuffer + 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 @ =gUnknown_020386A4 + 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 @ =gUnknown_020386AA + 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 @ =0x0000fffd + adds r0, r3, 0 + ldrh r1, [r1] + adds r0, r1 + adds r0, r4 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080B3680 @ =0x0000fffe + 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 @ =gUnknown_020386A8 + adds r0, r3, r1 + strh r5, [r0] + ldr r1, _080B3688 @ =gMapObjects + 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 @ =gUnknown_020386A4 + adds r0, r6, 0x6 + mov r8, r0 + ldr r7, _080B3714 @ =gMapObjects +_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 @ =SpriteCallbackDummy + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, _080B371C @ =gSprites + 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 @ =gBG1TilemapBuffer + ldr r5, _080B3758 @ =0x000003ff + ldr r4, _080B375C @ =0x02018000 + ldr r0, _080B3760 @ =0x0000c3e0 + 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 @ =gUnknown_03000708 + 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 @ =gBG1TilemapBuffer + mov r12, r0 + ldr r7, _080B37E4 @ =0x02018300 + ldr r0, _080B37E8 @ =0x0000c3e0 + 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 @ =gUnknown_03000708 + 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_GetPrice + 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 @ =gTasks + 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 @ =gStringVar1 + 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 @ =gOtherText_xString1 + movs r1, 0x1 + movs r2, 0xB + bl MenuPrint + ldr r0, _080B3894 @ =gBG1TilemapBuffer + movs r1, 0x2 + str r1, [sp] + ldr r1, _080B3898 @ =0x0000c3e1 + 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 @ =gStringVar1 + 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 CopyItemName + ldr r6, _080B392C @ =gStringVar1 + 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_GetPrice + 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 MenuPrint_PixelCoords + 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 @ =gStringVar1 + 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 @ =gDecorations + 0x1 + mov r8, r0 + adds r1, r6, r0 + adds r0, r2, 0 + bl StringCopy + ldr r5, _080B39A0 @ =gStringVar1 + 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 @ =0x00002710 + 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 MenuPrint_PixelCoords +_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 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + 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 @ =gOtherText_CancelNoTerminator + 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 @ =gUnknown_03000708 + 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_GetDescription + movs r1, 0x30 + str r1, [sp] + str r4, [sp, 0x4] + b _080B3ABA + .align 2, 0 +_080B3A9C: .4byte gUnknown_03000708 +_080B3AA0: + ldr r1, _080B3AC8 @ =gDecorations + 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 @ =gOtherText_QuitShopping + 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 @ =gMain + 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 @ =gUnknown_03000708 + 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 @ =gTasks + 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 AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B3B74 + ldr r1, _080B3B68 @ =gOtherText_FreePremierBall + ldr r2, _080B3B6C @ =sub_80B4378 + ldr r3, _080B3B70 @ =0x0000c3e1 + 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 @ =gSaveBlock1 + 0x490 + ldr r0, _080B3BC4 @ =gUnknown_020386A0 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B3BCC @ =sub_80B3AEC + 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 @ =gUnknown_03000708 + 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 @ =gBG1TilemapBuffer + 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 @ =gSaveBlock1 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080B3C84 @ =gUnknown_020386A0 + ldr r1, [r1] + bl IsEnoughMoney + lsls r0, 24 + cmp r0, 0 + beq _080B3D18 + ldr r4, _080B3C88 @ =gUnknown_03000708 + 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 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + ldrh r1, [r1, 0xA] + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + beq _080B3C9C + ldr r1, _080B3C90 @ =gOtherText_HereYouGo + ldr r2, _080B3C94 @ =sub_80B3B80 + ldr r3, _080B3C98 @ =0x0000c3e1 + 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 @ =gOtherText_NoRoomFor + ldr r2, _080B3CA8 @ =sub_80B3BD0 + 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 @ =gOtherText_HereYouGo2 + b _080B3CD6 + .align 2, 0 +_080B3CD0: .4byte gOtherText_HereYouGo2 +_080B3CD4: + ldr r1, _080B3CE4 @ =gOtherText_HereYouGo3 +_080B3CD6: + ldr r2, _080B3CE8 @ =sub_80B3B80 +_080B3CD8: + ldr r3, _080B3CEC @ =0x0000c3e1 + 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 @ =gStringVar4 + ldr r1, _080B3D0C @ =gOtherText_SpaceForIsFull + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080B3D10 @ =sub_80B3BD0 + ldr r3, _080B3D14 @ =0x0000c3e1 + 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 @ =gOtherText_NotEnoughMoney + ldr r2, _080B3D30 @ =sub_80B3BD0 + ldr r3, _080B3D34 @ =0x0000c3e1 + 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 @ =gBG1TilemapBuffer + movs r1, 0x4 + str r1, [sp] + ldr r1, _080B3D74 @ =0x0000c3e1 + str r1, [sp, 0x4] + movs r1, 0x8 + movs r2, 0x9 + movs r3, 0x4 + bl sub_80A3FA0 + ldr r1, _080B3D78 @ =gUnknown_083CC708 + 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 @ =gUnknown_03000708 + 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 @ =gBG1TilemapBuffer + 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 @ =gUnknown_03000708 + 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 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B3ED8 + ldr r0, _080B3EB0 @ =gUnknown_020386A0 + 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_GetPrice + 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 @ =gTasks + 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 @ =gBG1TilemapBuffer + 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 @ =gStringVar1 + bl CopyItemName + ldr r0, _080B3EC0 @ =gStringVar2 + movs r2, 0xA + ldrsh r1, [r5, r2] + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080B3EC4 @ =gStringVar3 + mov r2, r8 + ldr r1, [r2] + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + ldr r4, _080B3EC8 @ =gStringVar4 + ldr r1, _080B3ECC @ =gOtherText_ThatWillBe + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080B3ED0 @ =sub_80B3D38 + ldr r3, _080B3ED4 @ =0x0000c3e1 + 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 @ =gTasks + 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 @ =gUnknown_03000708 + 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_GetPrice + adds r4, r0, 0 + movs r0, 0x1 + bl GetPriceReduction + ldr r1, _080B3F80 @ =gSaveBlock1 + 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 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B3F84 @ =sub_80B3DC8 + 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 @ =gMenuWindow + mov r8, r0 + ldr r1, [r0, 0x28] + ldr r3, _080B4024 @ =0x000003de + adds r1, r3 + adds r2, r1, 0 + adds r2, 0x80 + ldr r7, [r0, 0x24] + mov r10, r7 + ldr r0, _080B4028 @ =0x000003ff + 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 @ =0x00003a20 + add r1, r10 + movs r0, 0xF0 + lsls r0, 3 + adds r2, r1, r0 + ldr r3, _080B4030 @ =0x040000d4 + ldr r5, _080B4034 @ =0x800000f0 + ldr r4, _080B4038 @ =0xfffffc40 + 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 @ =gMenuWindow + 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 @ =0x000003ff + 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 @ =0x040000d4 + ldr r5, _080B40E4 @ =0x800000f0 + 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 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080B4102 + b _080B436C +_080B4102: + ldr r2, _080B4138 @ =gMain + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _080B414C + ldr r4, _080B413C @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_03000708 + 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 @ =gUnknown_020386A0 + 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_GetPrice + 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 @ =gSaveBlock1 + 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 @ =gStringVar1 + bl CopyItemName + ldr r4, _080B427C @ =gStringVar4 + ldr r1, _080B4280 @ =gOtherText_HowManyYouWant + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080B4284 @ =sub_80B3EFC + ldr r3, _080B4288 @ =0x0000c3e1 + 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 @ =gUnknown_020386A0 + ldr r4, _080B42CC @ =gDecorations + 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 @ =gSaveBlock1 + 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 @ =gOtherText_NotEnoughMoney + ldr r2, _080B42D8 @ =sub_80B3BD0 + ldr r3, _080B42DC @ =0x0000c3e1 + 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 @ =gStringVar1 + 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 @ =gStringVar2 + ldr r1, [r5] + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + ldrb r0, [r6, 0xC] + cmp r0, 0x1 + bne _080B4328 + ldr r0, _080B4320 @ =gStringVar4 + ldr r1, _080B4324 @ =gOtherText_ThatWillBe2 + bl StringExpandPlaceholders + b _080B4330 + .align 2, 0 +_080B4318: .4byte gStringVar1 +_080B431C: .4byte gStringVar2 +_080B4320: .4byte gStringVar4 +_080B4324: .4byte gOtherText_ThatWillBe2 +_080B4328: + ldr r0, _080B4340 @ =gStringVar4 + ldr r1, _080B4344 @ =gOtherText_ThatWillBe3 + bl StringExpandPlaceholders +_080B4330: + ldr r1, _080B4340 @ =gStringVar4 + ldr r2, _080B4348 @ =sub_80B3D38 + ldr r3, _080B434C @ =0x0000c3e1 + 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 @ =gBG1TilemapBuffer + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B43EC @ =sub_80B40E8 + 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 @ =gUnknown_0300485C + ldr r0, _080B442C @ =sub_80B3050 + 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 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B4434 @ =Task_ExitBuyMenu + 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 @ =gPaletteFade + 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 @ =c2_exit_to_overworld_2_switch + 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 @ =gUnknown_02038724 + mov r12, r0 + ldr r6, _080B44CC @ =gUnknown_03000708 + mov r8, r12 + adds r4, r6, 0 + ldr r1, _080B44D0 @ =gTasks + 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 @ =gUnknown_02038730 + 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 @ =gTasks + 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 @ =gUnknown_02038730 + movs r1, 0 + strb r1, [r0] + ldr r0, _080B454C @ =gUnknown_02038724 + movs r1, 0x3 + bl ClearItemSlots + 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 @ =EnableBothScriptContexts + 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 @ =EnableBothScriptContexts + 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 @ =EnableBothScriptContexts + 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 @ =gTasks + 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 @ =gTasks + 0x8 + 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 @ =_080B4740 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4738: .4byte gTasks + 0x8 +_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 @ =gUnknown_083CC714 + b _080B4792 + .align 2, 0 +_080B4760: .4byte gUnknown_083CC714 +_080B4764: + ldr r1, _080B4768 @ =gUnknown_083CC71A + b _080B4792 + .align 2, 0 +_080B4768: .4byte gUnknown_083CC71A +_080B476C: + ldr r1, _080B4770 @ =gUnknown_083CC720 + b _080B477E + .align 2, 0 +_080B4770: .4byte gUnknown_083CC720 +_080B4774: + ldr r1, _080B4778 @ =gUnknown_083CC726 + b _080B4792 + .align 2, 0 +_080B4778: .4byte gUnknown_083CC726 +_080B477C: + ldr r1, _080B478C @ =gUnknown_083CC72C +_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 @ =gUnknown_083CC732 +_080B4792: + adds r0, r3, 0 + movs r2, 0 + bl sub_80B45B4 + b _080B47AA + .align 2, 0 +_080B479C: .4byte gUnknown_083CC732 +_080B47A0: + ldr r1, _080B47D4 @ =gUnknown_083CC738 + 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 @ =sub_80B4710 + 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 @ =gTasks + 0x8 + 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 gTasks + 0x8 + 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 @ =gUnknown_02038731 + 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 @ =gUnknown_02038731 + 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 @ =gTasks + ldr r0, _080B4878 @ =gUnknown_02038731 + 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/ld_script.txt b/ld_script.txt index 214cd3964..0ce9fe21d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -102,6 +102,12 @@ SECTIONS { asm/trainer_card.o(.text); asm/save_menu_util.o(.text); asm/rom_8094928.o(.text); + asm/item_menu.o(.text); + asm/battle_anim_80A7E7C.o(.text); + asm/item.o(.text); + asm/matuda_debug_menu.o(.text); + asm/contest.o(.text); + asm/shop.o(.text); asm/berry.o(.text); asm/script_menu.o(.text); asm/naming_screen.o(.text); |