.include "asm/macros.inc" .include "constants/constants.inc" .text .syntax unified thumb_func_start ScriptMenu_Multichoice ScriptMenu_Multichoice: @ 0x080E12C8 push {r4, r5, r6, r7, lr} sub sp, #4 lsls r0, r0, #0x18 lsrs r7, r0, #0x18 lsls r1, r1, #0x18 lsrs r6, r1, #0x18 lsls r2, r2, #0x18 lsrs r5, r2, #0x18 lsls r3, r3, #0x18 lsrs r4, r3, #0x18 ldr r0, _080E1304 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E130C ldr r0, _080E1308 movs r1, #0xff strh r1, [r0] movs r0, #0 str r0, [sp] adds r0, r7, #0 adds r1, r6, #0 adds r2, r5, #0 adds r3, r4, #0 bl DrawMultichoiceMenu movs r0, #1 b _080E130E .align 2, 0 _080E1304: .4byte 0x080E1569 _080E1308: .4byte 0x02037290 _080E130C: movs r0, #0 _080E130E: add sp, #4 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 thumb_func_end ScriptMenu_Multichoice thumb_func_start ScriptMenu_MultichoiceWithDefault ScriptMenu_MultichoiceWithDefault: @ 0x080E1318 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 ldr r4, [sp, #0x1c] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 mov r8, r0 lsls r1, r1, #0x18 lsrs r7, r1, #0x18 lsls r2, r2, #0x18 lsrs r6, r2, #0x18 lsls r3, r3, #0x18 lsrs r5, r3, #0x18 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 ldr r0, _080E1360 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E1368 ldr r1, _080E1364 movs r0, #0xff strh r0, [r1] str r4, [sp] mov r0, r8 adds r1, r7, #0 adds r2, r6, #0 adds r3, r5, #0 bl DrawMultichoiceMenu movs r0, #1 b _080E136A .align 2, 0 _080E1360: .4byte 0x080E1569 _080E1364: .4byte 0x02037290 _080E1368: movs r0, #0 _080E136A: add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 thumb_func_end ScriptMenu_MultichoiceWithDefault thumb_func_start sub_080E1378 sub_080E1378: @ 0x080E1378 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 b _080E13AC _080E1380: cmp r1, #0xfd bne _080E13A4 adds r4, #1 ldrb r0, [r4] cmp r0, #1 bne _080E13AC ldr r0, _080E13A0 ldr r0, [r0] bl StringLength adds r0, r5, r0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r4, #1 b _080E13AC .align 2, 0 _080E13A0: .4byte 0x03005AF0 _080E13A4: adds r4, #1 adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 _080E13AC: ldrb r1, [r4] adds r0, r1, #0 cmp r0, #0xff bne _080E1380 adds r0, r5, #0 pop {r4, r5} pop {r1} bx r1 thumb_func_end sub_080E1378 thumb_func_start ScrSpecial_CreatePCMenu ScrSpecial_CreatePCMenu: @ 0x080E13BC push {r4, r5, r6, r7, lr} adds r7, r0, #0 lsls r4, r1, #0x18 lsrs r4, r4, #0x18 ldr r0, [r7] bl sub_080E1378 lsls r0, r0, #0x18 lsrs r6, r0, #0x18 movs r5, #1 cmp r5, r4 bhs _080E13F2 _080E13D4: lsls r0, r5, #3 adds r0, r0, r7 ldr r0, [r0] bl sub_080E1378 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r6, r0 bhs _080E13E8 adds r6, r0, #0 _080E13E8: adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r5, r4 blo _080E13D4 _080E13F2: adds r0, r6, #0 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 thumb_func_end ScrSpecial_CreatePCMenu thumb_func_start DrawMultichoiceMenu DrawMultichoiceMenu: @ 0x080E13FC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 adds r4, r0, #0 adds r5, r1, #0 mov sb, r2 mov sl, r3 ldr r0, [sp, #0x34] mov r8, r0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 lsls r5, r5, #0x18 lsrs r5, r5, #0x18 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 mov sb, r2 mov r0, sl lsls r0, r0, #0x18 lsrs r0, r0, #0x18 mov sl, r0 mov r2, r8 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 mov r8, r2 ldr r1, _080E14C8 mov r2, sb lsls r0, r2, #3 adds r0, r0, r1 ldrb r6, [r0, #4] ldr r7, [r0] adds r0, r7, #0 adds r1, r6, #0 bl ScrSpecial_CreatePCMenu adds r2, r0, #0 lsls r2, r2, #0x18 movs r0, #0x80 lsls r0, r0, #0x11 adds r2, r2, r0 lsrs r2, r2, #0x18 lsls r3, r6, #0x19 lsrs r3, r3, #0x18 adds r0, r4, #0 adds r1, r5, #0 bl CreateWindowFromRect adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 adds r0, r4, #0 movs r1, #0 bl SetStandardWindowBorderStyle movs r0, #1 movs r1, #0 bl GetFontAttribute adds r2, r0, #0 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 movs r5, #0x10 str r5, [sp] str r6, [sp, #4] str r7, [sp, #8] movs r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] adds r0, r4, #0 movs r1, #1 movs r3, #2 bl sub_081988CC str r5, [sp] str r6, [sp, #4] mov r2, r8 str r2, [sp, #8] adds r0, r4, #0 movs r1, #1 movs r2, #0 movs r3, #2 bl sub_081984B0 movs r0, #0 bl schedule_bg_copy_tilemap_to_vram mov r0, sl adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_080E14CC add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080E14C8: .4byte 0x08564218 thumb_func_end DrawMultichoiceMenu thumb_func_start sub_080E14CC sub_080E14CC: @ 0x080E14CC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} lsls r0, r0, #0x18 lsrs r0, r0, #0x18 mov r8, r0 lsls r1, r1, #0x18 lsrs r7, r1, #0x18 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 mov sb, r2 lsls r3, r3, #0x18 lsrs r4, r3, #0x18 ldr r1, _080E152C movs r0, #2 strb r0, [r1] movs r2, #0 ldr r6, _080E1530 ldr r5, _080E1534 movs r3, #0xc _080E14F6: adds r0, r2, r5 ldrb r0, [r0] cmp r0, r4 bne _080E1500 strb r3, [r1] _080E1500: adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #5 bls _080E14F6 adds r0, r6, #0 movs r1, #0x50 bl CreateTask lsls r0, r0, #0x18 lsrs r2, r0, #0x18 ldr r1, _080E1538 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r0, r1 mov r0, r8 strh r0, [r1, #0x10] cmp r7, #3 bls _080E153C movs r0, #1 b _080E153E .align 2, 0 _080E152C: .4byte 0x02039C30 _080E1530: .4byte 0x080E1569 _080E1534: .4byte 0x08564618 _080E1538: .4byte 0x03005B60 _080E153C: movs r0, #0 _080E153E: strh r0, [r1, #0x12] ldr r1, _080E1564 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #3 adds r0, r0, r1 mov r1, sb strh r1, [r0, #0x14] strh r4, [r0, #0x16] adds r0, r4, #0 bl sub_080E1F88 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080E1564: .4byte 0x03005B60 thumb_func_end sub_080E14CC thumb_func_start Task_HandleMultichoiceInput Task_HandleMultichoiceInput: @ 0x080E1568 push {r4, r5, r6, lr} lsls r0, r0, #0x18 lsrs r6, r0, #0x18 lsls r0, r6, #2 adds r0, r0, r6 lsls r0, r0, #3 ldr r1, _080E1594 adds r5, r0, r1 ldr r0, _080E1598 ldrb r1, [r0, #7] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080E160C ldr r1, _080E159C ldrb r0, [r1] cmp r0, #0 beq _080E15A0 subs r0, #1 strb r0, [r1] b _080E160C .align 2, 0 _080E1594: .4byte 0x03005B68 _080E1598: .4byte 0x02037C74 _080E159C: .4byte 0x02039C30 _080E15A0: movs r1, #0xa ldrsh r0, [r5, r1] cmp r0, #0 bne _080E15AE bl Menu_ProcessInputNoWrap b _080E15B2 _080E15AE: bl Menu_ProcessInput _080E15B2: lsls r0, r0, #0x18 lsrs r4, r0, #0x18 ldr r0, _080E15F0 ldrh r1, [r0, #0x2e] movs r0, #0xc0 ands r0, r1 cmp r0, #0 beq _080E15C8 ldrb r0, [r5, #0xe] bl sub_080E1F88 _080E15C8: lsls r0, r4, #0x18 asrs r1, r0, #0x18 movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 beq _080E160C adds r0, #1 cmp r1, r0 bne _080E15F8 movs r1, #8 ldrsh r0, [r5, r1] cmp r0, #0 bne _080E160C movs r0, #5 bl PlaySE ldr r1, _080E15F4 movs r0, #0x7f strh r0, [r1] b _080E15FC .align 2, 0 _080E15F0: .4byte 0x03002360 _080E15F4: .4byte 0x02037290 _080E15F8: ldr r0, _080E1614 strh r1, [r0] _080E15FC: ldrb r0, [r5, #0xc] bl ClearToTransparentAndRemoveWindow adds r0, r6, #0 bl DestroyTask bl EnableBothScriptContexts _080E160C: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080E1614: .4byte 0x02037290 thumb_func_end Task_HandleMultichoiceInput thumb_func_start ScriptMenu_YesNo ScriptMenu_YesNo: @ 0x080E1618 push {r4, lr} ldr r4, _080E1640 adds r0, r4, #0 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E1648 ldr r1, _080E1644 movs r0, #0xff strh r0, [r1] bl DisplayYesNoMenuDefaultYes adds r0, r4, #0 movs r1, #0x50 bl CreateTask movs r0, #1 b _080E164A .align 2, 0 _080E1640: .4byte 0x080E166D _080E1644: .4byte 0x02037290 _080E1648: movs r0, #0 _080E164A: pop {r4} pop {r1} bx r1 thumb_func_end ScriptMenu_YesNo thumb_func_start IsScriptActive IsScriptActive: @ 0x080E1650 push {lr} ldr r0, _080E1660 ldrh r0, [r0] cmp r0, #0xff beq _080E1664 movs r0, #1 b _080E1666 .align 2, 0 _080E1660: .4byte 0x02037290 _080E1664: movs r0, #0 _080E1666: pop {r1} bx r1 .align 2, 0 thumb_func_end IsScriptActive thumb_func_start Task_HandleYesNoInput Task_HandleYesNoInput: @ 0x080E166C push {r4, lr} lsls r0, r0, #0x18 lsrs r4, r0, #0x18 ldr r1, _080E168C lsls r0, r4, #2 adds r0, r0, r4 lsls r0, r0, #3 adds r1, r0, r1 ldrh r2, [r1, #0xc] movs r3, #0xc ldrsh r0, [r1, r3] cmp r0, #4 bgt _080E1690 adds r0, r2, #1 strh r0, [r1, #0xc] b _080E16D4 .align 2, 0 _080E168C: .4byte 0x03005B60 _080E1690: bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, r0, #0x18 asrs r1, r0, #0x18 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080E16B4 cmp r1, r0 bgt _080E16AC subs r0, #1 cmp r1, r0 beq _080E16D4 b _080E16CA _080E16AC: cmp r1, #0 beq _080E16C4 cmp r1, #1 bne _080E16CA _080E16B4: movs r0, #5 bl PlaySE ldr r1, _080E16C0 movs r0, #0 b _080E16C8 .align 2, 0 _080E16C0: .4byte 0x02037290 _080E16C4: ldr r1, _080E16DC movs r0, #1 _080E16C8: strh r0, [r1] _080E16CA: adds r0, r4, #0 bl DestroyTask bl EnableBothScriptContexts _080E16D4: pop {r4} pop {r0} bx r0 .align 2, 0 _080E16DC: .4byte 0x02037290 thumb_func_end Task_HandleYesNoInput thumb_func_start sp106_CreateStartMenu sp106_CreateStartMenu: @ 0x080E16E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x1c ldr r4, [sp, #0x3c] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 str r0, [sp, #0x14] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 str r1, [sp, #0x18] lsls r2, r2, #0x18 lsrs r5, r2, #0x18 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 mov sl, r3 lsls r4, r4, #0x18 lsrs r7, r4, #0x18 ldr r0, _080E17C8 mov sb, r0 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E17D8 ldr r1, _080E17CC movs r0, #0xff strh r0, [r1] ldr r1, _080E17D0 lsls r0, r5, #3 adds r0, r0, r1 ldr r1, [r0] mov r8, r1 ldrb r5, [r0, #4] mov r0, r8 adds r1, r5, #0 bl ScrSpecial_CreatePCMenu adds r4, r0, #0 adds r4, #2 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 adds r0, r5, #0 adds r1, r7, #0 bl __udivsi3 adds r6, r0, #0 lsls r6, r6, #0x18 lsrs r6, r6, #0x18 mov r0, sb movs r1, #0x50 bl CreateTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldr r1, _080E17D4 lsls r5, r0, #2 adds r5, r5, r0 lsls r5, r5, #3 adds r5, r5, r1 movs r0, #0 mov sb, r0 mov r1, sl strh r1, [r5, #0x10] adds r2, r4, #0 muls r2, r7, r2 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 lsls r3, r6, #0x19 lsrs r3, r3, #0x18 ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] bl CreateWindowFromRect lsls r0, r0, #0x18 lsrs r0, r0, #0x18 strh r0, [r5, #0x14] movs r1, #0 bl SetStandardWindowBorderStyle ldrb r0, [r5, #0x14] lsls r4, r4, #0x1b lsrs r4, r4, #0x18 str r4, [sp] movs r1, #0x10 str r1, [sp, #4] str r7, [sp, #8] str r6, [sp, #0xc] mov r1, r8 str r1, [sp, #0x10] movs r1, #1 movs r2, #8 movs r3, #2 bl sub_08198DA4 ldrb r0, [r5, #0x14] str r4, [sp] str r7, [sp, #4] str r6, [sp, #8] mov r1, sb str r1, [sp, #0xc] movs r1, #1 movs r2, #0 movs r3, #2 bl sub_081990E4 ldrb r0, [r5, #0x14] movs r1, #3 bl CopyWindowToVram movs r0, #1 b _080E17DA .align 2, 0 _080E17C8: .4byte 0x080E17ED _080E17CC: .4byte 0x02037290 _080E17D0: .4byte 0x08564218 _080E17D4: .4byte 0x03005B60 _080E17D8: movs r0, #0 _080E17DA: add sp, #0x1c pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 thumb_func_end sp106_CreateStartMenu thumb_func_start Task_HandleMultichoiceGridInput Task_HandleMultichoiceGridInput: @ 0x080E17EC push {r4, r5, lr} lsls r0, r0, #0x18 lsrs r4, r0, #0x18 lsls r0, r4, #2 adds r0, r0, r4 lsls r0, r0, #3 ldr r1, _080E1828 adds r5, r0, r1 bl Menu_ProcessInputGridLayout lsls r0, r0, #0x18 asrs r1, r0, #0x18 movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 beq _080E1844 adds r0, #1 cmp r1, r0 bne _080E1830 movs r1, #8 ldrsh r0, [r5, r1] cmp r0, #0 bne _080E1844 movs r0, #5 bl PlaySE ldr r1, _080E182C movs r0, #0x7f strh r0, [r1] b _080E1834 .align 2, 0 _080E1828: .4byte 0x03005B68 _080E182C: .4byte 0x02037290 _080E1830: ldr r0, _080E184C strh r1, [r0] _080E1834: ldrb r0, [r5, #0xc] bl ClearToTransparentAndRemoveWindow adds r0, r4, #0 bl DestroyTask bl EnableBothScriptContexts _080E1844: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080E184C: .4byte 0x02037290 thumb_func_end Task_HandleMultichoiceGridInput thumb_func_start sub_080E1850 sub_080E1850: @ 0x080E1850 push {lr} ldr r0, _080E1870 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E1878 ldr r1, _080E1874 movs r0, #0xff strh r0, [r1] bl CreatePCMenu movs r0, #1 b _080E187A .align 2, 0 _080E1870: .4byte 0x080E1569 _080E1874: .4byte 0x02037290 _080E1878: movs r0, #0 _080E187A: pop {r1} bx r1 .align 2, 0 thumb_func_end sub_080E1850 thumb_func_start CreatePCMenu CreatePCMenu: @ 0x080E1880 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0xc movs r0, #1 movs r1, #0 bl GetFontAttribute adds r0, #1 lsls r0, r0, #0x18 lsrs r7, r0, #0x18 movs r0, #1 movs r1, #1 bl GetFontAttribute ldr r0, _080E18BC bl sub_080E1378 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r0, _080E18C0 bl sub_080E1378 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r4, r0 bls _080E18C4 lsls r0, r4, #0x18 lsrs r4, r0, #0x18 b _080E18C6 .align 2, 0 _080E18BC: .4byte 0x085CACFE _080E18C0: .4byte 0x085CACEC _080E18C4: movs r4, #8 _080E18C6: ldr r0, _080E1924 bl FlagGet lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 beq _080E1930 movs r0, #4 mov r8, r0 adds r2, r4, #4 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 movs r0, #0 movs r1, #0 movs r3, #8 bl CreateWindowFromRect lsls r0, r0, #0x18 lsrs r6, r0, #0x18 adds r0, r6, #0 movs r1, #0 bl SetStandardWindowBorderStyle ldr r2, _080E1928 movs r0, #0x22 str r0, [sp] movs r5, #0xff str r5, [sp, #4] movs r4, #0 str r4, [sp, #8] adds r0, r6, #0 movs r1, #1 adds r3, r7, #0 bl AddTextPrinterParameterized ldr r2, _080E192C movs r0, #0x32 str r0, [sp] str r5, [sp, #4] str r4, [sp, #8] adds r0, r6, #0 movs r1, #1 adds r3, r7, #0 bl AddTextPrinterParameterized b _080E1966 .align 2, 0 _080E1924: .4byte 0x00000864 _080E1928: .4byte 0x085CAD06 _080E192C: .4byte 0x085CAD0D _080E1930: movs r0, #3 mov r8, r0 adds r2, r4, #4 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 movs r0, #0 movs r1, #0 movs r3, #6 bl CreateWindowFromRect lsls r0, r0, #0x18 lsrs r6, r0, #0x18 adds r0, r6, #0 movs r1, #0 bl SetStandardWindowBorderStyle ldr r2, _080E1990 movs r0, #0x22 str r0, [sp] movs r0, #0xff str r0, [sp, #4] str r5, [sp, #8] adds r0, r6, #0 movs r1, #1 adds r3, r7, #0 bl AddTextPrinterParameterized _080E1966: ldr r0, _080E1994 bl FlagGet lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _080E199C ldr r2, _080E1998 movs r0, #2 str r0, [sp] movs r0, #0xff str r0, [sp, #4] movs r0, #0 str r0, [sp, #8] adds r0, r6, #0 movs r1, #1 adds r3, r7, #0 bl AddTextPrinterParameterized b _080E19B2 .align 2, 0 _080E1990: .4byte 0x085CAD0D _080E1994: .4byte 0x000008AB _080E1998: .4byte 0x085CACF5 _080E199C: ldr r2, _080E1A00 movs r0, #2 str r0, [sp] movs r0, #0xff str r0, [sp, #4] str r1, [sp, #8] adds r0, r6, #0 movs r1, #1 adds r3, r7, #0 bl AddTextPrinterParameterized _080E19B2: ldr r4, _080E1A04 ldr r1, _080E1A08 adds r0, r4, #0 bl StringExpandPlaceholders adds r0, r6, #0 adds r1, r4, #0 adds r2, r7, #0 movs r3, #0x12 bl PrintPlayerNameOnWindow movs r0, #0x10 str r0, [sp] mov r0, r8 str r0, [sp, #4] movs r0, #0 str r0, [sp, #8] adds r0, r6, #0 movs r1, #1 movs r2, #0 movs r3, #2 bl sub_081984B0 adds r0, r6, #0 movs r1, #3 bl CopyWindowToVram movs r0, #0 mov r1, r8 adds r2, r6, #0 movs r3, #1 bl sub_080E14CC add sp, #0xc pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080E1A00: .4byte 0x085CACEC _080E1A04: .4byte 0x02021C7C _080E1A08: .4byte 0x085CACFE thumb_func_end CreatePCMenu thumb_func_start ScriptMenu_DisplayPCStartupPrompt ScriptMenu_DisplayPCStartupPrompt: @ 0x080E1A0C push {lr} sub sp, #0x10 movs r0, #0 movs r1, #1 bl sub_08197650 ldr r2, _080E1A3C movs r0, #0 str r0, [sp] movs r0, #2 str r0, [sp, #4] movs r0, #1 str r0, [sp, #8] movs r0, #3 str r0, [sp, #0xc] movs r0, #0 movs r1, #1 movs r3, #0 bl AddTextPrinterParameterized2 add sp, #0x10 pop {r0} bx r0 .align 2, 0 _080E1A3C: .4byte 0x082436CD thumb_func_end ScriptMenu_DisplayPCStartupPrompt thumb_func_start display_text_and_get_width_internal display_text_and_get_width_internal: @ 0x080E1A40 push {lr} ldr r0, _080E1A60 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E1A68 ldr r1, _080E1A64 movs r0, #0xff strh r0, [r1] bl sub_080E1A70 movs r0, #1 b _080E1A6A .align 2, 0 _080E1A60: .4byte 0x080E1569 _080E1A64: .4byte 0x02037290 _080E1A68: movs r0, #0 _080E1A6A: pop {r1} bx r1 .align 2, 0 thumb_func_end display_text_and_get_width_internal thumb_func_start sub_080E1A70 sub_080E1A70: @ 0x080E1A70 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0xc movs r6, #0 movs r5, #0 movs r4, #0 ldr r3, _080E1C94 movs r2, #0xff _080E1A84: adds r0, r4, r3 ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, #1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #6 bls _080E1A84 movs r0, #1 movs r1, #0 bl GetFontAttribute ldr r0, _080E1C98 ldrh r1, [r0] cmp r1, #0 bne _080E1ACE movs r6, #6 ldr r4, _080E1C94 adds r0, r5, r4 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 movs r0, #0xe8 lsls r0, r0, #1 bl FlagGet lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #1 bne _080E1ACE adds r0, r5, r4 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 _080E1ACE: ldr r0, _080E1C9C movs r1, #1 bl CheckBagHasItem lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1B30 ldr r0, _080E1CA0 bl FlagGet lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1B30 ldr r2, _080E1C98 ldrh r0, [r2] cmp r0, #0 bne _080E1B04 movs r6, #7 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #2 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 _080E1B04: ldrh r0, [r2] cmp r0, #1 bne _080E1B30 movs r4, #0xd7 lsls r4, r4, #1 adds r0, r4, #0 bl FlagGet lsls r0, r0, #0x18 cmp r0, #0 bne _080E1B30 movs r6, #7 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #2 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 adds r0, r4, #0 bl FlagSet _080E1B30: movs r0, #0xb9 lsls r0, r0, #1 movs r1, #1 bl CheckBagHasItem lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1B90 movs r0, #0x8e lsls r0, r0, #4 bl FlagGet lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1B90 ldr r2, _080E1C98 ldrh r0, [r2] cmp r0, #0 bne _080E1B68 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #3 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 _080E1B68: ldrh r0, [r2] cmp r0, #1 bne _080E1B90 ldr r4, _080E1CA4 adds r0, r4, #0 bl FlagGet lsls r0, r0, #0x18 cmp r0, #0 bne _080E1B90 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #3 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 adds r0, r4, #0 bl FlagSet _080E1B90: ldr r0, _080E1CA8 movs r1, #1 bl CheckBagHasItem lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1BF0 ldr r0, _080E1CAC bl FlagGet lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1BF0 ldr r2, _080E1C98 ldrh r0, [r2] cmp r0, #0 bne _080E1BC6 movs r6, #8 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #4 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 _080E1BC6: ldrh r0, [r2] cmp r0, #1 bne _080E1BF0 ldr r4, _080E1CB0 adds r0, r4, #0 bl FlagGet lsls r0, r0, #0x18 cmp r0, #0 bne _080E1BF0 movs r6, #8 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #4 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 adds r0, r4, #0 bl FlagSet _080E1BF0: movs r0, #0xbc lsls r0, r0, #1 movs r1, #1 bl CheckBagHasItem lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1C54 ldr r0, _080E1CB4 bl FlagGet lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1C54 ldr r2, _080E1C98 ldrh r0, [r2] cmp r0, #0 bne _080E1C28 movs r6, #8 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #5 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 _080E1C28: ldrh r0, [r2] cmp r0, #1 bne _080E1C54 movs r4, #0xd8 lsls r4, r4, #1 adds r0, r4, #0 bl FlagGet lsls r0, r0, #0x18 cmp r0, #0 bne _080E1C54 movs r6, #8 ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #5 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 adds r0, r4, #0 bl FlagSet _080E1C54: ldr r0, _080E1C94 adds r0, r5, r0 movs r1, #6 strb r1, [r0] adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 ldr r0, _080E1C98 ldrh r0, [r0] cmp r0, #0 bne _080E1C7C movs r0, #0xe8 lsls r0, r0, #1 bl FlagGet lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080E1C7C movs r6, #9 _080E1C7C: adds r0, r6, #1 lsls r0, r0, #0x18 lsrs r6, r0, #0x18 adds r7, r5, #0 cmp r7, #7 bne _080E1CB8 ldr r1, _080E1C98 movs r0, #0xb strh r0, [r1] bl sub_0813A164 b _080E1D54 .align 2, 0 _080E1C94: .4byte 0x03001124 _080E1C98: .4byte 0x02037280 _080E1C9C: .4byte 0x00000113 _080E1CA0: .4byte 0x000008B3 _080E1CA4: .4byte 0x000001DB _080E1CA8: .4byte 0x00000173 _080E1CAC: .4byte 0x000008D5 _080E1CB0: .4byte 0x000001AF _080E1CB4: .4byte 0x000008D6 _080E1CB8: movs r0, #0x1c subs r0, r0, r6 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #6 subs r1, r1, r7 lsls r1, r1, #0x19 lsrs r1, r1, #0x18 lsls r3, r7, #0x19 lsrs r3, r3, #0x18 adds r2, r6, #0 bl CreateWindowFromRect lsls r0, r0, #0x18 lsrs r6, r0, #0x18 adds r0, r6, #0 movs r1, #0 bl SetStandardWindowBorderStyle movs r5, #0 movs r4, #0 subs r0, r7, #1 mov r8, r0 ldr r1, _080E1D64 mov sb, r1 _080E1CEA: ldr r0, _080E1D68 adds r1, r4, r0 ldrb r0, [r1] cmp r0, #0xff beq _080E1D1C lsls r0, r0, #2 add r0, sb ldr r2, [r0] lsls r0, r5, #4 adds r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 str r0, [sp] movs r0, #0xff str r0, [sp, #4] movs r0, #0 str r0, [sp, #8] adds r0, r6, #0 movs r1, #1 movs r3, #8 bl AddTextPrinterParameterized adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 _080E1D1C: adds r0, r4, #1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #6 bls _080E1CEA movs r0, #0x10 str r0, [sp] str r7, [sp, #4] mov r1, r8 lsls r0, r1, #0x18 lsrs r0, r0, #0x18 str r0, [sp, #8] adds r0, r6, #0 movs r1, #1 movs r2, #0 movs r3, #2 bl sub_081984B0 adds r0, r6, #0 movs r1, #3 bl CopyWindowToVram movs r0, #0 adds r1, r7, #0 adds r2, r6, #0 movs r3, #8 bl sub_080E14CC _080E1D54: add sp, #0xc pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080E1D64: .4byte 0x08564620 _080E1D68: .4byte 0x03001124 thumb_func_end sub_080E1A70 thumb_func_start sub_080E1D6C sub_080E1D6C: @ 0x080E1D6C push {lr} ldr r2, _080E1D84 ldrh r0, [r2] cmp r0, #0x7f beq _080E1D80 ldr r0, _080E1D88 ldrh r1, [r2] adds r1, r1, r0 ldrb r0, [r1] strh r0, [r2] _080E1D80: pop {r0} bx r0 .align 2, 0 _080E1D84: .4byte 0x02037290 _080E1D88: .4byte 0x03001124 thumb_func_end sub_080E1D6C thumb_func_start Task_PokemonPicWindow Task_PokemonPicWindow: @ 0x080E1D8C push {r4, r5, lr} lsls r0, r0, #0x18 lsrs r5, r0, #0x18 lsls r0, r5, #2 adds r0, r0, r5 lsls r0, r0, #3 ldr r1, _080E1DB0 adds r4, r0, r1 movs r1, #8 ldrsh r0, [r4, r1] cmp r0, #1 beq _080E1DEC cmp r0, #1 bgt _080E1DB4 cmp r0, #0 beq _080E1DD2 b _080E1DEC .align 2, 0 _080E1DB0: .4byte 0x03005B60 _080E1DB4: cmp r0, #2 beq _080E1DBE cmp r0, #3 beq _080E1DE0 b _080E1DEC _080E1DBE: movs r0, #0xc ldrsh r1, [r4, r0] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080E1DDC adds r0, r0, r1 ldrb r1, [r4, #0xc] bl FreeResourcesAndDestroySprite _080E1DD2: ldrh r0, [r4, #8] adds r0, #1 strh r0, [r4, #8] b _080E1DEC .align 2, 0 _080E1DDC: .4byte 0x020205AC _080E1DE0: ldrb r0, [r4, #0x12] bl ClearToTransparentAndRemoveWindow adds r0, r5, #0 bl DestroyTask _080E1DEC: pop {r4, r5} pop {r0} bx r0 .align 2, 0 thumb_func_end Task_PokemonPicWindow thumb_func_start ScriptMenu_ShowPokemonPic ScriptMenu_ShowPokemonPic: @ 0x080E1DF4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 lsls r1, r1, #0x18 lsrs r7, r1, #0x18 lsls r2, r2, #0x18 lsrs r6, r2, #0x18 ldr r4, _080E1E9C adds r0, r4, #0 bl FindTaskIdByFunc lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080E1EAC lsls r1, r7, #0x13 movs r0, #0xa0 lsls r0, r0, #0xe adds r1, r1, r0 asrs r1, r1, #0x10 lsls r2, r6, #0x13 adds r2, r2, r0 asrs r2, r2, #0x10 mov r0, r8 movs r3, #0 bl CreateMonSprite_PicBox adds r5, r0, #0 lsls r5, r5, #0x18 lsrs r5, r5, #0x18 adds r0, r4, #0 movs r1, #0x50 bl CreateTask adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 adds r0, r7, #0 adds r1, r6, #0 movs r2, #8 movs r3, #8 bl CreateWindowFromRect ldr r1, _080E1EA0 lsls r3, r4, #2 adds r3, r3, r4 lsls r3, r3, #3 adds r3, r3, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0 strh r0, [r3, #0x12] strh r1, [r3, #8] mov r0, r8 strh r0, [r3, #0xa] strh r5, [r3, #0xc] ldr r4, _080E1EA4 lsls r1, r5, #4 adds r1, r1, r5 lsls r1, r1, #2 adds r0, r4, #0 adds r0, #0x1c adds r0, r1, r0 ldr r2, _080E1EA8 str r2, [r0] adds r1, r1, r4 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] ldrb r0, [r3, #0x12] movs r1, #1 bl SetStandardWindowBorderStyle movs r0, #0 bl schedule_bg_copy_tilemap_to_vram movs r0, #1 b _080E1EAE .align 2, 0 _080E1E9C: .4byte 0x080E1D8D _080E1EA0: .4byte 0x03005B60 _080E1EA4: .4byte 0x020205AC _080E1EA8: .4byte 0x08007141 _080E1EAC: movs r0, #0 _080E1EAE: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_end ScriptMenu_ShowPokemonPic thumb_func_start ScriptMenu_GetPicboxWaitFunc ScriptMenu_GetPicboxWaitFunc: @ 0x080E1EB8 push {lr} ldr r0, _080E1EDC bl FindTaskIdByFunc lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0xff beq _080E1EE8 ldr r0, _080E1EE0 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #3 adds r1, r1, r0 ldrh r0, [r1, #8] adds r0, #1 strh r0, [r1, #8] ldr r0, _080E1EE4 b _080E1EEA .align 2, 0 _080E1EDC: .4byte 0x080E1D8D _080E1EE0: .4byte 0x03005B60 _080E1EE4: .4byte 0x080E1EF1 _080E1EE8: movs r0, #0 _080E1EEA: pop {r1} bx r1 .align 2, 0 thumb_func_end ScriptMenu_GetPicboxWaitFunc thumb_func_start IsPicboxClosed IsPicboxClosed: @ 0x080E1EF0 push {lr} ldr r0, _080E1F04 bl FindTaskIdByFunc lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _080E1F08 movs r0, #0 b _080E1F0A .align 2, 0 _080E1F04: .4byte 0x080E1D8D _080E1F08: movs r0, #1 _080E1F0A: pop {r1} bx r1 .align 2, 0 thumb_func_end IsPicboxClosed thumb_func_start CreateWindowFromRect CreateWindowFromRect: @ 0x080E1F10 push {r4, r5, lr} sub sp, #0x20 adds r4, r0, #0 adds r5, r1, #0 lsls r4, r4, #0x18 lsls r5, r5, #0x18 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 movs r0, #0x80 lsls r0, r0, #0x11 adds r4, r4, r0 lsrs r4, r4, #0x18 adds r5, r5, r0 lsrs r5, r5, #0x18 str r2, [sp] str r3, [sp, #4] movs r0, #0xf str r0, [sp, #8] movs r0, #0x5c str r0, [sp, #0xc] add r0, sp, #0x10 movs r1, #0 adds r2, r4, #0 adds r3, r5, #0 bl CreateWindowTemplate ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] str r0, [sp, #0x18] str r1, [sp, #0x1c] add r0, sp, #0x18 bl AddWindow adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 adds r0, r4, #0 bl PutWindowTilemap adds r0, r4, #0 add sp, #0x20 pop {r4, r5} pop {r1} bx r1 thumb_func_end CreateWindowFromRect thumb_func_start ClearToTransparentAndRemoveWindow ClearToTransparentAndRemoveWindow: @ 0x080E1F6C push {r4, lr} adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 adds r0, r4, #0 movs r1, #1 bl ClearStdWindowAndFrameToTransparent adds r0, r4, #0 bl RemoveWindow pop {r4} pop {r0} bx r0 thumb_func_end ClearToTransparentAndRemoveWindow thumb_func_start sub_080E1F88 sub_080E1F88: @ 0x080E1F88 push {r4, lr} sub sp, #0x10 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #0x4a cmp r0, #5 bhi _080E2064 lsls r0, r0, #2 ldr r1, _080E1FA0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E1FA0: .4byte 0x080E1FA4 _080E1FA4: @ jump table .4byte _080E2034 @ case 0 .4byte _080E1FFC @ case 1 .4byte _080E1FCC @ case 2 .4byte _080E1FBC @ case 3 .4byte _080E1FDC @ case 4 .4byte _080E1FEC @ case 5 _080E1FBC: movs r0, #0 movs r1, #0x11 bl FillWindowPixelBuffer ldr r4, _080E1FC8 b _080E2006 .align 2, 0 _080E1FC8: .4byte 0x0856464C _080E1FCC: movs r0, #0 movs r1, #0x11 bl FillWindowPixelBuffer ldr r4, _080E1FD8 b _080E2006 .align 2, 0 _080E1FD8: .4byte 0x0856463C _080E1FDC: movs r0, #0 movs r1, #0x11 bl FillWindowPixelBuffer ldr r4, _080E1FE8 b _080E2006 .align 2, 0 _080E1FE8: .4byte 0x0856465C _080E1FEC: movs r0, #0 movs r1, #0x11 bl FillWindowPixelBuffer ldr r4, _080E1FF8 b _080E2006 .align 2, 0 _080E1FF8: .4byte 0x0856466C _080E1FFC: movs r0, #0 movs r1, #0x11 bl FillWindowPixelBuffer ldr r4, _080E2030 _080E2006: bl Menu_GetCursorPos lsls r0, r0, #0x18 lsrs r0, r0, #0x16 adds r0, r0, r4 ldr r2, [r0] movs r0, #0 str r0, [sp] movs r0, #2 str r0, [sp, #4] movs r0, #1 str r0, [sp, #8] movs r0, #3 str r0, [sp, #0xc] movs r0, #0 movs r1, #1 movs r3, #0 bl AddTextPrinterParameterized2 b _080E2064 .align 2, 0 _080E2030: .4byte 0x0856468C _080E2034: movs r0, #0 movs r1, #0x11 bl FillWindowPixelBuffer ldr r4, _080E206C bl Menu_GetCursorPos lsls r0, r0, #0x18 lsrs r0, r0, #0x16 adds r0, r0, r4 ldr r2, [r0] movs r0, #0 str r0, [sp] movs r0, #2 str r0, [sp, #4] movs r0, #1 str r0, [sp, #8] movs r0, #3 str r0, [sp, #0xc] movs r0, #0 movs r1, #1 movs r3, #0 bl AddTextPrinterParameterized2 _080E2064: add sp, #0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _080E206C: .4byte 0x08564680 thumb_func_end sub_080E1F88 thumb_func_start convert_pixel_width_to_tile_width convert_pixel_width_to_tile_width: @ 0x080E2070 push {lr} ldr r0, _080E2090 bl FuncIsActiveTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _080E2098 ldr r1, _080E2094 movs r0, #0xff strh r0, [r1] bl CreateStartMenu movs r0, #1 b _080E209A .align 2, 0 _080E2090: .4byte 0x080E1569 _080E2094: .4byte 0x02037290 _080E2098: movs r0, #0 _080E209A: pop {r1} bx r1 .align 2, 0 thumb_func_end convert_pixel_width_to_tile_width thumb_func_start CreateStartMenu CreateStartMenu: @ 0x080E20A0 push {r4, r5, r6, lr} mov r6, sl mov r5, sb mov r4, r8 push {r4, r5, r6} sub sp, #0xc movs r0, #1 movs r1, #0 bl GetFontAttribute adds r5, r0, #0 adds r5, #1 lsls r5, r5, #0x18 lsrs r5, r5, #0x18 movs r0, #1 movs r1, #1 bl GetFontAttribute movs r0, #8 mov sl, r0 movs r0, #0x10 mov sb, r0 movs r0, #0x16 movs r1, #0 movs r2, #6 movs r3, #0x10 bl CreateWindowFromRect adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 adds r0, r4, #0 movs r1, #0 bl SetStandardWindowBorderStyle ldr r2, _080E21D8 movs r0, #2 str r0, [sp] movs r0, #0xff mov r8, r0 str r0, [sp, #4] movs r6, #0 str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r2, _080E21DC movs r0, #0x12 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r2, _080E21E0 movs r0, #0x22 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r2, _080E21E4 movs r0, #0x32 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r0, _080E21E8 ldr r2, [r0] movs r0, #0x42 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r2, _080E21EC movs r0, #0x52 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r2, _080E21F0 movs r0, #0x62 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized ldr r2, _080E21F4 movs r0, #0x72 str r0, [sp] mov r0, r8 str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 adds r3, r5, #0 bl AddTextPrinterParameterized mov r0, sb str r0, [sp] mov r0, sl str r0, [sp, #4] str r6, [sp, #8] adds r0, r4, #0 movs r1, #1 movs r2, #0 movs r3, #2 bl sub_081984B0 movs r0, #0 movs r1, #8 adds r2, r4, #0 movs r3, #0x56 bl sub_080E21F8 adds r0, r4, #0 movs r1, #3 bl CopyWindowToVram add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080E21D8: .4byte 0x085CADAE _080E21DC: .4byte 0x085CADB2 _080E21E0: .4byte 0x085CADB7 _080E21E4: .4byte 0x085CADBB _080E21E8: .4byte 0x03005AF0 _080E21EC: .4byte 0x085CADC6 _080E21F0: .4byte 0x085CADCB _080E21F4: .4byte 0x085CADD0 thumb_func_end CreateStartMenu thumb_func_start sub_080E21F8 sub_080E21F8: @ 0x080E21F8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r2, #0 adds r6, r3, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 lsls r5, r5, #0x18 lsrs r5, r5, #0x18 lsls r6, r6, #0x18 lsrs r6, r6, #0x18 ldr r1, _080E2238 movs r0, #2 strb r0, [r1] ldr r0, _080E223C movs r1, #0x50 bl CreateTask lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldr r2, _080E2240 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #3 adds r1, r1, r2 movs r0, #0 strh r4, [r1, #0x10] strh r0, [r1, #0x12] strh r5, [r1, #0x14] strh r6, [r1, #0x16] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080E2238: .4byte 0x02039C30 _080E223C: .4byte 0x080E1569 _080E2240: .4byte 0x03005B60 thumb_func_end sub_080E21F8