.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_8129568 sub_8129568: @ 8129568 push {r4,lr} adds r4, r0, 0 movs r0, 0x2 strb r0, [r4] adds r0, r4, 0x1 ldr r1, _08129588 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, _0812958C @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] pop {r4} pop {r0} bx r0 .align 2, 0 _08129588: .4byte gSaveBlock2Ptr _0812958C: .4byte gUnknown_203B0E0 thumb_func_end sub_8129568 thumb_func_start sub_8129590 sub_8129590: @ 8129590 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strb r0, [r4] adds r0, r4, 0x1 ldr r1, _081295B8 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy adds r4, 0x9 ldr r0, _081295BC @ =gUnknown_203B0E0 ldr r1, [r0] adds r1, 0x1A adds r0, r4, 0 bl StringCopy pop {r4} pop {r0} bx r0 .align 2, 0 _081295B8: .4byte gSaveBlock2Ptr _081295BC: .4byte gUnknown_203B0E0 thumb_func_end sub_8129590 thumb_func_start sub_81295C0 sub_81295C0: @ 81295C0 push {r4,lr} adds r4, r0, 0 movs r0, 0x3 strb r0, [r4] adds r0, r4, 0x1 ldr r1, _081295E4 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, _081295E8 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] bl sub_80FB9D0 pop {r4} pop {r0} bx r0 .align 2, 0 _081295E4: .4byte gSaveBlock2Ptr _081295E8: .4byte gUnknown_203B0E0 thumb_func_end sub_81295C0 thumb_func_start sub_81295EC sub_81295EC: @ 81295EC push {r4,lr} adds r4, r0, 0 movs r0, 0x4 strb r0, [r4] adds r0, r4, 0x1 ldr r1, _0812960C @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, _08129610 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] pop {r4} pop {r0} bx r0 .align 2, 0 _0812960C: .4byte gSaveBlock2Ptr _08129610: .4byte gUnknown_203B0E0 thumb_func_end sub_81295EC thumb_func_start sub_8129614 sub_8129614: @ 8129614 push {r4,lr} adds r4, r0, 0 movs r0, 0x5 strb r0, [r4] adds r0, r4, 0x1 ldr r1, _08129634 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, _08129638 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] pop {r4} pop {r0} bx r0 .align 2, 0 _08129634: .4byte gSaveBlock2Ptr _08129638: .4byte gUnknown_203B0E0 thumb_func_end sub_8129614 thumb_func_start sub_812963C sub_812963C: @ 812963C push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 ldrb r0, [r5] adds r1, r0, 0 adds r4, r5, 0x1 adds r5, r4, 0 adds r5, 0x8 cmp r0, 0x2 beq _08129664 cmp r0, 0x2 bgt _0812965A cmp r0, 0x1 beq _08129688 b _081296EC _0812965A: cmp r1, 0x3 beq _081296BE cmp r1, 0x5 beq _081296B2 b _081296EC _08129664: ldr r0, _08129680 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x13] ldrb r1, [r4, 0x8] cmp r0, r1 beq _081296EC bl DynamicPlaceholderTextUtil_Reset movs r0, 0 adds r1, r4, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r1, _08129684 @ =gUnknown_841B3AA b _081296D8 .align 2, 0 _08129680: .4byte gUnknown_203B0E0 _08129684: .4byte gUnknown_841B3AA _08129688: adds r0, r6, 0 adds r1, r4, 0 bl StringCopy movs r1, 0xFC strb r1, [r0] adds r0, 0x1 movs r1, 0x13 strb r1, [r0] adds r0, 0x1 movs r1, 0x2A strb r1, [r0] adds r0, 0x1 movs r1, 0xF0 strb r1, [r0] adds r0, 0x1 adds r1, r5, 0 bl StringCopy movs r0, 0x1 b _081296EE _081296B2: ldr r0, _081296E4 @ =gUnknown_203B0E0 ldr r0, [r0] adds r0, 0x79 adds r1, r4, 0 bl StringCopy _081296BE: ldr r0, _081296E4 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x13] ldrb r5, [r5] cmp r0, r5 beq _081296EC bl DynamicPlaceholderTextUtil_Reset movs r0, 0 adds r1, r4, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r1, _081296E8 @ =gUnknown_841B3BE _081296D8: adds r0, r6, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x1 b _081296EE .align 2, 0 _081296E4: .4byte gUnknown_203B0E0 _081296E8: .4byte gUnknown_841B3BE _081296EC: movs r0, 0 _081296EE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_812963C thumb_func_start sub_81296F4 sub_81296F4: @ 81296F4 ldr r0, _081296FC @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x10] bx lr .align 2, 0 _081296FC: .4byte gUnknown_203B0E0 thumb_func_end sub_81296F4 thumb_func_start sub_8129700 sub_8129700: @ 8129700 ldr r2, _08129710 @ =gUnknown_203B0E0 ldr r3, [r2] ldrb r2, [r3, 0x11] strb r2, [r0] ldrb r0, [r3, 0x12] strb r0, [r1] bx lr .align 2, 0 _08129710: .4byte gUnknown_203B0E0 thumb_func_end sub_8129700 thumb_func_start sub_8129714 sub_8129714: @ 8129714 ldr r0, _0812971C @ =gUnknown_203B0E0 ldr r0, [r0] adds r0, 0x1A bx lr .align 2, 0 _0812971C: .4byte gUnknown_203B0E0 thumb_func_end sub_8129714 thumb_func_start sub_8129720 sub_8129720: @ 8129720 push {lr} bl sub_8129714 bl StringLength_Multibyte pop {r1} bx r1 thumb_func_end sub_8129720 thumb_func_start sub_8129730 sub_8129730: @ 8129730 push {r4,lr} adds r4, r0, 0 ldr r0, _08129748 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r3, [r0, 0x15] ldrb r2, [r0, 0x14] subs r0, r3, r2 cmp r0, 0 bge _0812974C negs r0, r0 str r3, [r4] b _0812974E .align 2, 0 _08129748: .4byte gUnknown_203B0E0 _0812974C: str r2, [r4] _0812974E: str r0, [r1] pop {r4} pop {r0} bx r0 thumb_func_end sub_8129730 thumb_func_start sub_8129758 sub_8129758: @ 8129758 push {lr} bl sub_812951C lsls r0, 16 lsrs r2, r0, 16 ldr r0, _08129784 @ =gUnknown_203B0E0 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x1A cmp r2, 0 beq _0812977E _0812976E: ldrb r0, [r1] cmp r0, 0xF9 bne _08129776 adds r1, 0x1 _08129776: adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bne _0812976E _0812977E: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _08129784: .4byte gUnknown_203B0E0 thumb_func_end sub_8129758 thumb_func_start sub_8129788 sub_8129788: @ 8129788 push {r4,lr} bl sub_812951C lsls r0, 16 lsrs r4, r0, 16 ldr r0, _081297C0 @ =gUnknown_203B0E0 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x1A movs r2, 0 movs r3, 0 cmp r2, r4 bcs _081297B8 _081297A2: ldrb r0, [r1] cmp r0, 0xF9 bne _081297AA adds r1, 0x1 _081297AA: adds r1, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 adds r3, 0x1 cmp r3, r4 bcc _081297A2 _081297B8: adds r0, r2, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081297C0: .4byte gUnknown_203B0E0 thumb_func_end sub_8129788 thumb_func_start sub_81297C4 sub_81297C4: @ 81297C4 ldr r0, _081297CC @ =gUnknown_203B0E0 ldr r0, [r0] adds r0, 0x39 bx lr .align 2, 0 _081297CC: .4byte gUnknown_203B0E0 thumb_func_end sub_81297C4 thumb_func_start sub_81297D0 sub_81297D0: @ 81297D0 ldr r0, _081297D8 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x16] bx lr .align 2, 0 _081297D8: .4byte gUnknown_203B0E0 thumb_func_end sub_81297D0 thumb_func_start sub_81297DC sub_81297DC: @ 81297DC ldr r0, _081297E4 @ =gUnknown_203B0E0 ldr r0, [r0] ldrb r0, [r0, 0x15] bx lr .align 2, 0 _081297E4: .4byte gUnknown_203B0E0 thumb_func_end sub_81297DC thumb_func_start sub_81297E8 sub_81297E8: @ 81297E8 push {lr} bl sub_81294EC ldrb r1, [r0] cmp r1, 0xFF bhi _08129802 ldr r0, _08129808 @ =gUnknown_845A8AC adds r0, r1, r0 ldrb r0, [r0] cmp r0, r1 beq _08129802 cmp r0, 0 bne _0812980C _08129802: movs r0, 0x3 b _0812980E .align 2, 0 _08129808: .4byte gUnknown_845A8AC _0812980C: movs r0, 0 _0812980E: pop {r1} bx r1 thumb_func_end sub_81297E8 thumb_func_start sub_8129814 sub_8129814: @ 8129814 ldr r0, _0812981C @ =gUnknown_203B0E0 ldr r0, [r0] adds r0, 0x79 bx lr .align 2, 0 _0812981C: .4byte gUnknown_203B0E0 thumb_func_end sub_8129814 thumb_func_start copy_strings_to_sav1 copy_strings_to_sav1: @ 8129820 push {r4,lr} ldr r4, _081298A4 @ =gSaveBlock1Ptr ldr r0, [r4] ldr r1, _081298A8 @ =0x00003ad4 adds r0, r1 ldr r1, _081298AC @ =gUnknown_841B510 bl StringCopy ldr r0, [r4] ldr r1, _081298B0 @ =0x00003ae9 adds r0, r1 ldr r1, _081298B4 @ =gUnknown_841B516 bl StringCopy ldr r0, [r4] ldr r1, _081298B8 @ =0x00003afe adds r0, r1 ldr r1, _081298BC @ =gUnknown_841B51E bl StringCopy ldr r0, [r4] ldr r1, _081298C0 @ =0x00003b13 adds r0, r1 ldr r1, _081298C4 @ =gUnknown_841B524 bl StringCopy ldr r0, [r4] ldr r1, _081298C8 @ =0x00003b28 adds r0, r1 ldr r1, _081298CC @ =gUnknown_841B52B bl StringCopy ldr r0, [r4] ldr r1, _081298D0 @ =0x00003b3d adds r0, r1 ldr r1, _081298D4 @ =gUnknown_841B531 bl StringCopy ldr r0, [r4] ldr r1, _081298D8 @ =0x00003b52 adds r0, r1 ldr r1, _081298DC @ =gUnknown_841B535 bl StringCopy ldr r0, [r4] ldr r1, _081298E0 @ =0x00003b67 adds r0, r1 ldr r1, _081298E4 @ =gUnknown_841B53B bl StringCopy ldr r0, [r4] ldr r1, _081298E8 @ =0x00003b7c adds r0, r1 ldr r1, _081298EC @ =gUnknown_841B541 bl StringCopy ldr r0, [r4] ldr r1, _081298F0 @ =0x00003b91 adds r0, r1 ldr r1, _081298F4 @ =gUnknown_841B54B bl StringCopy pop {r4} pop {r0} bx r0 .align 2, 0 _081298A4: .4byte gSaveBlock1Ptr _081298A8: .4byte 0x00003ad4 _081298AC: .4byte gUnknown_841B510 _081298B0: .4byte 0x00003ae9 _081298B4: .4byte gUnknown_841B516 _081298B8: .4byte 0x00003afe _081298BC: .4byte gUnknown_841B51E _081298C0: .4byte 0x00003b13 _081298C4: .4byte gUnknown_841B524 _081298C8: .4byte 0x00003b28 _081298CC: .4byte gUnknown_841B52B _081298D0: .4byte 0x00003b3d _081298D4: .4byte gUnknown_841B531 _081298D8: .4byte 0x00003b52 _081298DC: .4byte gUnknown_841B535 _081298E0: .4byte 0x00003b67 _081298E4: .4byte gUnknown_841B53B _081298E8: .4byte 0x00003b7c _081298EC: .4byte gUnknown_841B541 _081298F0: .4byte 0x00003b91 _081298F4: .4byte gUnknown_841B54B thumb_func_end copy_strings_to_sav1 thumb_func_start sub_81298F8 sub_81298F8: @ 81298F8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812991C @ =gTasks+0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x7 bls _08129912 b _08129B08 _08129912: lsls r0, 2 ldr r1, _08129920 @ =_08129924 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812991C: .4byte gTasks+0x8 _08129920: .4byte _08129924 .align 2, 0 _08129924: .4byte _08129944 .4byte _08129952 .4byte _08129AEC .4byte _081299A0 .4byte _08129A8C .4byte _08129AC4 .4byte _08129AD8 .4byte _08129A7C _08129944: ldr r0, _08129978 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0812994E b _08129AE0 _0812994E: movs r0, 0x1 strh r0, [r4] _08129952: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 strh r0, [r4, 0x8] ldr r3, _0812997C @ =gUnknown_203B0E0 ldr r0, [r3] ldrb r1, [r0, 0xD] movs r5, 0x8 ldrsh r0, [r4, r5] cmp r1, r0 beq _08129980 movs r0, 0x2 strh r0, [r4] ldr r0, [r3] strb r2, [r0, 0xD] b _08129B08 .align 2, 0 _08129978: .4byte gReceivedRemoteLinkPlayers _0812997C: .4byte gUnknown_203B0E0 _08129980: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x6] cmp r0, 0 bne _08129998 bl sub_80FBA1C cmp r0, 0 beq _08129998 b _08129B08 _08129998: movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x3 strh r0, [r4] _081299A0: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _081299DA movs r2, 0x6 ldrsh r0, [r4, r2] movs r3, 0x2 ldrsh r1, [r4, r3] asrs r0, r1 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _081299DA movs r2, 0x1 _081299BC: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _081299DA movs r5, 0x6 ldrsh r0, [r4, r5] movs r3, 0x2 ldrsh r1, [r4, r3] asrs r0, r1 ands r0, r2 cmp r0, 0 beq _081299BC _081299DA: ldrh r1, [r4, 0x2] movs r5, 0x2 ldrsh r0, [r4, r5] cmp r0, 0x5 bne _081299E6 b _08129B04 _081299E6: strh r1, [r4, 0x4] lsls r0, r1, 24 lsrs r0, 24 bl ResetBlockReceivedFlag movs r1, 0x2 ldrsh r0, [r4, r1] lsls r0, 8 ldr r1, _08129A0C @ =gBlockRecvBuffer adds r0, r1 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x4 bhi _08129A28 lsls r0, 2 ldr r1, _08129A10 @ =_08129A14 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08129A0C: .4byte gBlockRecvBuffer _08129A10: .4byte _08129A14 .align 2, 0 _08129A14: .4byte _08129A28 .4byte _08129A2C .4byte _08129A30 .4byte _08129A34 .4byte _08129A38 _08129A28: movs r0, 0x3 b _08129A3A _08129A2C: movs r0, 0x3 b _08129A3A _08129A30: movs r0, 0x4 b _08129A3A _08129A34: movs r0, 0x5 b _08129A3A _08129A38: movs r0, 0x6 _08129A3A: strh r0, [r4, 0xA] ldr r5, _08129A68 @ =gUnknown_203B0E0 ldr r0, [r5] adds r0, 0x39 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 8 ldr r2, _08129A6C @ =gBlockRecvBuffer adds r1, r2 bl sub_812963C cmp r0, 0 beq _08129A70 ldr r0, [r5] ldrh r1, [r4, 0x2] strb r1, [r0, 0x16] movs r0, 0xC movs r1, 0x2 bl sub_8129C34 movs r0, 0x7 b _08129A72 .align 2, 0 _08129A68: .4byte gUnknown_203B0E0 _08129A6C: .4byte gBlockRecvBuffer _08129A70: ldrh r0, [r4, 0xA] _08129A72: strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] b _08129B08 _08129A7C: movs r0, 0x2 bl sub_8129C8C lsls r0, 24 cmp r0, 0 bne _08129B08 ldrh r0, [r4, 0xA] b _08129B06 _08129A8C: ldr r6, _08129AB4 @ =gUnknown_203B0E0 ldr r0, [r6] ldrb r0, [r0, 0x13] cmp r0, 0 bne _08129AC0 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 beq _08129AC0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08129AB8 bl sub_80FA4A8 ldr r1, [r6] movs r0, 0x1 b _08129ADE .align 2, 0 _08129AB4: .4byte gUnknown_203B0E0 _08129AB8: movs r5, 0x4 ldrsh r0, [r4, r5] bl sub_80FBD6C _08129AC0: movs r0, 0x3 b _08129B06 _08129AC4: ldr r0, _08129AD4 @ =gUnknown_203B0E0 ldr r1, [r0] ldrb r0, [r1, 0x13] cmp r0, 0 beq _08129AE0 movs r0, 0x2 b _08129ADE .align 2, 0 _08129AD4: .4byte gUnknown_203B0E0 _08129AD8: ldr r0, _08129AE8 @ =gUnknown_203B0E0 ldr r1, [r0] movs r0, 0x3 _08129ADE: strb r0, [r1, 0x17] _08129AE0: adds r0, r5, 0 bl DestroyTask b _08129B08 .align 2, 0 _08129AE8: .4byte gUnknown_203B0E0 _08129AEC: bl sub_80FBA1C cmp r0, 0 bne _08129B08 ldr r0, _08129B10 @ =gUnknown_203B0E0 ldr r1, [r0] ldrb r0, [r1, 0x13] cmp r0, 0 bne _08129B04 ldrb r0, [r1, 0xD] bl sub_80FB030 _08129B04: movs r0, 0x1 _08129B06: strh r0, [r4] _08129B08: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08129B10: .4byte gUnknown_203B0E0 thumb_func_end sub_81298F8 thumb_func_start sub_8129B14 sub_8129B14: @ 8129B14 push {r4,lr} ldr r4, _08129B60 @ =gUnknown_203B0E4 ldr r0, _08129B64 @ =0x00002168 bl Alloc str r0, [r4] cmp r0, 0 beq _08129B70 bl sub_812AE70 cmp r0, 0 beq _08129B70 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _08129B68 @ =gUnknown_845AA84 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, _08129B6C @ =gUnknown_845AA94 bl InitWindows bl ResetTempTileDataBuffers bl sub_812AD50 ldr r0, [r4] bl sub_8129BB8 bl sub_8129BC4 movs r0, 0 movs r1, 0 bl sub_8129C34 movs r0, 0x1 b _08129B72 .align 2, 0 _08129B60: .4byte gUnknown_203B0E4 _08129B64: .4byte 0x00002168 _08129B68: .4byte gUnknown_845AA84 _08129B6C: .4byte gUnknown_845AA94 _08129B70: movs r0, 0 _08129B72: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129B14 thumb_func_start sub_8129B78 sub_8129B78: @ 8129B78 push {lr} movs r0, 0 bl sub_8129C8C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8129B78 thumb_func_start sub_8129B88 sub_8129B88: @ 8129B88 push {r4,lr} bl sub_812AEB0 ldr r4, _08129BB0 @ =gUnknown_203B0E4 ldr r0, [r4] cmp r0, 0 beq _08129B9E bl Free movs r0, 0 str r0, [r4] _08129B9E: bl FreeAllWindowBuffers ldr r1, _08129BB4 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] pop {r4} pop {r0} bx r0 .align 2, 0 _08129BB0: .4byte gUnknown_203B0E4 _08129BB4: .4byte gScanlineEffect thumb_func_end sub_8129B88 thumb_func_start sub_8129BB8 sub_8129BB8: @ 8129BB8 movs r2, 0 movs r1, 0xFF strh r1, [r0, 0x18] strh r1, [r0, 0x1E] strh r2, [r0, 0x1A] bx lr thumb_func_end sub_8129BB8 thumb_func_start sub_8129BC4 sub_8129BC4: @ 8129BC4 push {r4,r5,lr} ldr r1, _08129BF4 @ =gUnknown_203B0E4 ldr r0, [r1] cmp r0, 0 beq _08129BEC movs r2, 0 adds r4, r1, 0 ldr r5, _08129BF8 @ =sub_812A420 movs r3, 0 _08129BD6: ldr r0, [r4] lsls r1, r2, 3 adds r0, r1 str r5, [r0] strb r3, [r0, 0x4] ldr r0, [r4] adds r0, r1 strb r3, [r0, 0x5] adds r2, 0x1 cmp r2, 0x2 ble _08129BD6 _08129BEC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08129BF4: .4byte gUnknown_203B0E4 _08129BF8: .4byte sub_812A420 thumb_func_end sub_8129BC4 thumb_func_start sub_8129BFC sub_8129BFC: @ 8129BFC push {r4-r6,lr} ldr r1, _08129C30 @ =gUnknown_203B0E4 ldr r0, [r1] cmp r0, 0 beq _08129C2A movs r5, 0 adds r6, r1, 0 _08129C0A: ldr r0, [r6] lsls r4, r5, 3 adds r1, r0, r4 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08129C24 adds r0, r1, 0x5 ldr r1, [r1] bl _call_via_r1 ldr r1, [r6] adds r1, r4 strb r0, [r1, 0x4] _08129C24: adds r5, 0x1 cmp r5, 0x2 ble _08129C0A _08129C2A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08129C30: .4byte gUnknown_203B0E4 thumb_func_end sub_8129BFC thumb_func_start sub_8129C34 sub_8129C34: @ 8129C34 push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 ldr r3, _08129C70 @ =gUnknown_203B0E4 ldr r0, [r3] lsrs r1, 21 adds r0, r1 ldr r2, _08129C74 @ =sub_812A420 str r2, [r0] movs r4, 0 adds r5, r3, 0 adds r3, r1, 0 mov r12, r4 ldr r1, _08129C78 @ =gUnknown_845AABC movs r7, 0x1 adds r2, r1, 0x4 _08129C56: ldrh r0, [r1] cmp r0, r6 bne _08129C7C ldr r1, [r5] adds r1, r3 ldr r0, [r2] str r0, [r1] strb r7, [r1, 0x4] ldr r0, [r5] adds r0, r3 mov r1, r12 strb r1, [r0, 0x5] b _08129C86 .align 2, 0 _08129C70: .4byte gUnknown_203B0E4 _08129C74: .4byte sub_812A420 _08129C78: .4byte gUnknown_845AABC _08129C7C: adds r1, 0x8 adds r2, 0x8 adds r4, 0x1 cmp r4, 0x14 bls _08129C56 _08129C86: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8129C34 thumb_func_start sub_8129C8C sub_8129C8C: @ 8129C8C lsls r0, 24 ldr r1, _08129C9C @ =gUnknown_203B0E4 ldr r1, [r1] lsrs r0, 21 adds r1, r0 ldrb r0, [r1, 0x4] bx lr .align 2, 0 _08129C9C: .4byte gUnknown_203B0E4 thumb_func_end sub_8129C8C thumb_func_start sub_8129CA0 sub_8129CA0: @ 8129CA0 push {r4,lr} adds r4, r0, 0 bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08129D36 ldrb r0, [r4] cmp r0, 0x6 bhi _08129D2C lsls r0, 2 ldr r1, _08129CC0 @ =_08129CC4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08129CC0: .4byte _08129CC4 .align 2, 0 _08129CC4: .4byte _08129CE0 .4byte _08129CEA .4byte _08129CF0 .4byte _08129CF6 .4byte _08129CFC .4byte _08129D02 .4byte _08129D14 _08129CE0: bl sub_812AAD4 bl sub_812AB8C b _08129D30 _08129CEA: bl sub_812ABD8 b _08129D30 _08129CF0: bl sub_812AC08 b _08129D30 _08129CF6: bl sub_812AC58 b _08129D30 _08129CFC: bl sub_812AC9C b _08129D30 _08129D02: bl sub_812ACC0 bl sub_812ACEC bl sub_812AD20 bl sub_812AD04 b _08129D30 _08129D14: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08129D30 bl sub_812AEC8 bl sub_812B048 bl sub_812B100 b _08129D30 _08129D2C: movs r0, 0 b _08129D38 _08129D30: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08129D36: movs r0, 0x1 _08129D38: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129CA0 thumb_func_start sub_8129D40 sub_8129D40: @ 8129D40 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _08129D50 cmp r0, 0x1 beq _08129D5E b _08129D68 _08129D50: bl sub_812AA10 movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram b _08129D68 _08129D5E: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _08129D70 _08129D68: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 _08129D70: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129D40 thumb_func_start sub_8129D78 sub_8129D78: @ 8129D78 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _08129D88 cmp r0, 0x1 beq _08129D96 b _08129DA0 _08129D88: bl sub_812AA64 movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram b _08129DA0 _08129D96: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _08129DA8 _08129DA0: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 _08129DA8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129D78 thumb_func_start sub_8129DB0 sub_8129DB0: @ 8129DB0 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x1 beq _08129DE6 cmp r0, 0x1 bgt _08129DC4 cmp r0, 0 beq _08129DCA b _08129E0C _08129DC4: cmp r0, 0x2 beq _08129DF2 b _08129E0C _08129DCA: movs r0, 0x1 bl sub_812AEFC bl sub_812A980 cmp r0, 0 bne _08129E12 bl sub_812A804 movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram b _08129E0C _08129DE6: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _08129E0C b _08129E12 _08129DF2: bl sub_812A9C8 cmp r0, 0 bne _08129E12 bl sub_812AF1C movs r0, 0 bl sub_812AEFC bl sub_812B160 movs r0, 0 b _08129E14 _08129E0C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08129E12: movs r0, 0x1 _08129E14: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129DB0 thumb_func_start sub_8129E1C sub_8129E1C: @ 8129E1C push {lr} bl sub_812AF1C movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8129E1C thumb_func_start sub_8129E28 sub_8129E28: @ 8129E28 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _08129E38 cmp r0, 0x1 beq _08129E5C b _08129E66 _08129E38: movs r0, 0 movs r1, 0 bl sub_812A578 movs r0, 0x17 movs r1, 0xB movs r2, 0x1 bl sub_812A424 ldr r0, _08129E58 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram b _08129E66 .align 2, 0 _08129E58: .4byte gUnknown_203B0E4 _08129E5C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _08129E6E _08129E66: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 _08129E6E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129E28 thumb_func_start sub_8129E74 sub_8129E74: @ 8129E74 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _08129E84 cmp r0, 0x1 beq _08129E94 b _08129EAA _08129E84: bl sub_812A6F4 bl sub_812A51C movs r0, 0 bl CopyBgTilemapBufferToVram b _08129EAA _08129E94: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08129EB0 bl sub_812A728 bl sub_812A544 movs r0, 0 b _08129EB2 _08129EAA: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08129EB0: movs r0, 0x1 _08129EB2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8129E74 thumb_func_start sub_8129EB8 sub_8129EB8: @ 8129EB8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _08129ECA cmp r0, 0x1 beq _08129F02 b _08129F14 _08129ECA: add r1, sp, 0x8 add r0, sp, 0x4 bl sub_8129730 ldr r0, [sp, 0x4] lsls r0, 16 lsrs r0, 16 ldr r1, [sp, 0x8] lsls r1, 16 lsrs r1, 16 movs r2, 0 bl sub_812A74C bl sub_8129714 adds r1, r0, 0 movs r0, 0x2 str r0, [sp] movs r0, 0 movs r2, 0x3 movs r3, 0x1 bl sub_812A778 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _08129F14 _08129F02: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08129F1A bl sub_812B160 movs r0, 0 b _08129F1C _08129F14: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08129F1A: movs r0, 0x1 _08129F1C: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_8129EB8 thumb_func_start sub_8129F24 sub_8129F24: @ 8129F24 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldrb r0, [r6] cmp r0, 0x1 beq _08129F80 cmp r0, 0x1 bgt _08129F3A cmp r0, 0 beq _08129F44 b _08129FBA _08129F3A: cmp r0, 0x2 beq _08129FA4 cmp r0, 0x3 beq _08129FB6 b _08129FBA _08129F44: bl sub_8129788 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_8129758 adds r5, r0, 0 bl StringLength_Multibyte adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x66 bl sub_812A74C movs r0, 0x5 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0x4 bl sub_812A778 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _08129FBA _08129F80: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08129FC0 movs r0, 0x1 movs r1, 0x10 bl sub_812A578 ldr r0, _08129FA0 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram b _08129FBA .align 2, 0 _08129FA0: .4byte gUnknown_203B0E4 _08129FA4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08129FC0 movs r0, 0x1 bl sub_812AF8C b _08129FBA _08129FB6: movs r0, 0 b _08129FC2 _08129FBA: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _08129FC0: movs r0, 0x1 _08129FC2: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8129F24 thumb_func_start sub_8129FCC sub_8129FCC: @ 8129FCC push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldrb r0, [r6] cmp r0, 0x1 beq _0812A028 cmp r0, 0x1 bgt _08129FE2 cmp r0, 0 beq _08129FEC b _0812A062 _08129FE2: cmp r0, 0x2 beq _0812A048 cmp r0, 0x3 beq _0812A05E b _0812A062 _08129FEC: bl sub_8129788 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_8129758 adds r5, r0, 0 bl StringLength_Multibyte adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_812A74C movs r0, 0x2 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 movs r3, 0x1 bl sub_812A778 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _0812A062 _0812A028: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0812A068 bl sub_812A6F4 ldr r0, _0812A044 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram b _0812A062 .align 2, 0 _0812A044: .4byte gUnknown_203B0E4 _0812A048: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0812A068 movs r0, 0 bl sub_812AF8C bl sub_812A728 b _0812A062 _0812A05E: movs r0, 0 b _0812A06A _0812A062: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0812A068: movs r0, 0x1 _0812A06A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8129FCC thumb_func_start sub_812A074 sub_812A074: @ 812A074 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A084 cmp r0, 0x1 beq _0812A098 b _0812A0A6 _0812A084: bl sub_812A804 movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A0A6 _0812A098: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0812A0A6 movs r0, 0 b _0812A0A8 _0812A0A6: movs r0, 0x1 _0812A0A8: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A074 thumb_func_start sub_812A0B0 sub_812A0B0: @ 812A0B0 push {r4-r6,lr} adds r6, r0, 0 ldrb r0, [r6] cmp r0, 0x4 bhi _0812A182 lsls r0, 2 ldr r1, _0812A0C4 @ =_0812A0C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812A0C4: .4byte _0812A0C8 .align 2, 0 _0812A0C8: .4byte _0812A0DC .4byte _0812A108 .4byte _0812A138 .4byte _0812A15C .4byte _0812A126 _0812A0DC: ldr r0, _0812A104 @ =gUnknown_203B0E4 ldr r0, [r0] ldrh r5, [r0, 0x1A] bl sub_81297C4 adds r4, r0, 0 bl sub_81297D0 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_812AA78 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram b _0812A17C .align 2, 0 _0812A104: .4byte gUnknown_203B0E4 _0812A108: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0812A182 ldr r0, _0812A12C @ =gUnknown_203B0E4 ldr r1, [r0] ldrh r0, [r1, 0x1A] cmp r0, 0x8 bhi _0812A130 adds r0, 0x1 strh r0, [r1, 0x1A] movs r0, 0x4 strb r0, [r6] _0812A126: movs r0, 0 b _0812A184 .align 2, 0 _0812A12C: .4byte gUnknown_203B0E4 _0812A130: strh r2, [r1, 0x1C] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0812A138: movs r0, 0 movs r1, 0 movs r2, 0x5 movs r3, 0x11 bl ScrollWindow movs r0, 0 movs r1, 0x2 bl CopyWindowToVram ldr r0, _0812A178 @ =gUnknown_203B0E4 ldr r1, [r0] ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0812A15C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0812A182 ldr r0, _0812A178 @ =gUnknown_203B0E4 ldr r0, [r0] ldrh r0, [r0, 0x1C] cmp r0, 0x2 bhi _0812A17C ldrb r0, [r6] subs r0, 0x1 b _0812A180 .align 2, 0 _0812A178: .4byte gUnknown_203B0E4 _0812A17C: ldrb r0, [r6] adds r0, 0x1 _0812A180: strb r0, [r6] _0812A182: movs r0, 0x1 _0812A184: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_812A0B0 thumb_func_start sub_812A18C sub_812A18C: @ 812A18C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A19C cmp r0, 0x1 beq _0812A1A8 b _0812A1AE _0812A19C: bl sub_812AFC0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A1AE _0812A1A8: bl sub_812AFFC b _0812A1B0 _0812A1AE: movs r0, 0x1 _0812A1B0: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A18C thumb_func_start sub_812A1B8 sub_812A1B8: @ 812A1B8 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A1C8 cmp r0, 0x1 beq _0812A1E8 b _0812A1F2 _0812A1C8: movs r0, 0x3 movs r1, 0x10 bl sub_812A578 ldr r0, _0812A1E4 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A1F2 .align 2, 0 _0812A1E4: .4byte gUnknown_203B0E4 _0812A1E8: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A1F4 _0812A1F2: movs r0, 0x1 _0812A1F4: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A1B8 thumb_func_start sub_812A1FC sub_812A1FC: @ 812A1FC push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A20C cmp r0, 0x1 beq _0812A22C b _0812A236 _0812A20C: movs r0, 0x4 movs r1, 0 bl sub_812A578 ldr r0, _0812A228 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A236 .align 2, 0 _0812A228: .4byte gUnknown_203B0E4 _0812A22C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A238 _0812A236: movs r0, 0x1 _0812A238: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A1FC thumb_func_start sub_812A240 sub_812A240: @ 812A240 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A250 cmp r0, 0x1 beq _0812A280 b _0812A28A _0812A250: bl DynamicPlaceholderTextUtil_Reset bl sub_8129814 adds r1, r0, 0 movs r0, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r0, 0x5 movs r1, 0 bl sub_812A578 ldr r0, _0812A27C @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A28A .align 2, 0 _0812A27C: .4byte gUnknown_203B0E4 _0812A280: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A28C _0812A28A: movs r0, 0x1 _0812A28C: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A240 thumb_func_start sub_812A294 sub_812A294: @ 812A294 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A2A4 cmp r0, 0x1 beq _0812A2D0 b _0812A2DA _0812A2A4: movs r0, 0x6 movs r1, 0 bl sub_812A578 movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_812A424 ldr r0, _0812A2CC @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A2DA .align 2, 0 _0812A2CC: .4byte gUnknown_203B0E4 _0812A2D0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A2DC _0812A2DA: movs r0, 0x1 _0812A2DC: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A294 thumb_func_start sub_812A2E4 sub_812A2E4: @ 812A2E4 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A2F4 cmp r0, 0x1 beq _0812A320 b _0812A32A _0812A2F4: movs r0, 0x7 movs r1, 0 bl sub_812A578 movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_812A424 ldr r0, _0812A31C @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A32A .align 2, 0 _0812A31C: .4byte gUnknown_203B0E4 _0812A320: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A32C _0812A32A: movs r0, 0x1 _0812A32C: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A2E4 thumb_func_start sub_812A334 sub_812A334: @ 812A334 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A344 cmp r0, 0x1 beq _0812A364 b _0812A36E _0812A344: movs r0, 0x8 movs r1, 0 bl sub_812A578 ldr r0, _0812A360 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A36E .align 2, 0 _0812A360: .4byte gUnknown_203B0E4 _0812A364: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A370 _0812A36E: movs r0, 0x1 _0812A370: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A334 thumb_func_start sub_812A378 sub_812A378: @ 812A378 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A388 cmp r0, 0x1 beq _0812A3BC b _0812A3C6 _0812A388: bl DynamicPlaceholderTextUtil_Reset ldr r0, _0812A3B4 @ =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r0, 0x9 movs r1, 0 bl sub_812A578 ldr r0, _0812A3B8 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A3C6 .align 2, 0 _0812A3B4: .4byte gSaveBlock2Ptr _0812A3B8: .4byte gUnknown_203B0E4 _0812A3BC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A3C8 _0812A3C6: movs r0, 0x1 _0812A3C8: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A378 thumb_func_start sub_812A3D0 sub_812A3D0: @ 812A3D0 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0812A3E0 cmp r0, 0x1 beq _0812A40C b _0812A416 _0812A3E0: movs r0, 0xA movs r1, 0 bl sub_812A578 movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_812A424 ldr r0, _0812A408 @ =gUnknown_203B0E4 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0812A416 .align 2, 0 _0812A408: .4byte gUnknown_203B0E4 _0812A40C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0812A418 _0812A416: movs r0, 0x1 _0812A418: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A3D0 thumb_func_start sub_812A420 sub_812A420: @ 812A420 movs r0, 0 bx lr thumb_func_end sub_812A420 thumb_func_start sub_812A424 sub_812A424: @ 812A424 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsls r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r4, _0812A4FC @ =0xffffff00 ldr r2, [sp, 0xC] ands r2, r4 lsrs r0, 16 ldr r3, _0812A500 @ =0xffff00ff ands r2, r3 orrs r2, r0 lsrs r1, 8 ldr r0, _0812A504 @ =0xff00ffff ands r2, r0 orrs r2, r1 ldr r0, _0812A508 @ =0x00ffffff ands r2, r0 movs r0, 0xC0 lsls r0, 19 orrs r2, r0 str r2, [sp, 0xC] ldr r0, [sp, 0x10] ands r0, r4 movs r1, 0x4 orrs r0, r1 ands r0, r3 movs r1, 0xE0 lsls r1, 4 orrs r0, r1 ldr r1, _0812A50C @ =0x0000ffff ands r0, r1 movs r1, 0xA4 lsls r1, 15 orrs r0, r1 str r0, [sp, 0x10] add r0, sp, 0xC bl AddWindow adds r1, r0, 0 ldr r6, _0812A510 @ =gUnknown_203B0E4 ldr r0, [r6] movs r7, 0 strh r1, [r0, 0x18] lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF beq _0812A4F0 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r6] ldrb r0, [r0, 0x18] bl PutWindowTilemap ldr r0, [r6] ldrb r0, [r0, 0x18] ldr r2, _0812A514 @ =gText_Yes movs r5, 0x2 str r5, [sp] movs r4, 0xFF str r4, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x2 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r6] ldrb r0, [r0, 0x18] ldr r2, _0812A518 @ =gText_No movs r1, 0x10 str r1, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x2 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r6] ldrb r0, [r0, 0x18] movs r1, 0x1 movs r2, 0xD bl DrawTextBorderOuter ldr r0, [r6] ldrb r0, [r0, 0x18] movs r1, 0xE str r1, [sp] str r5, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl Menu_InitCursor _0812A4F0: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812A4FC: .4byte 0xffffff00 _0812A500: .4byte 0xffff00ff _0812A504: .4byte 0xff00ffff _0812A508: .4byte 0x00ffffff _0812A50C: .4byte 0x0000ffff _0812A510: .4byte gUnknown_203B0E4 _0812A514: .4byte gText_Yes _0812A518: .4byte gText_No thumb_func_end sub_812A424 thumb_func_start sub_812A51C sub_812A51C: @ 812A51C push {r4,lr} ldr r4, _0812A540 @ =gUnknown_203B0E4 ldr r0, [r4] ldrh r0, [r0, 0x18] cmp r0, 0xFF beq _0812A53A lsls r0, 24 lsrs r0, 24 movs r1, 0 bl ClearStdWindowAndFrameToTransparent ldr r0, [r4] ldrb r0, [r0, 0x18] bl ClearWindowTilemap _0812A53A: pop {r4} pop {r0} bx r0 .align 2, 0 _0812A540: .4byte gUnknown_203B0E4 thumb_func_end sub_812A51C thumb_func_start sub_812A544 sub_812A544: @ 812A544 push {r4,lr} ldr r4, _0812A564 @ =gUnknown_203B0E4 ldr r0, [r4] ldrh r0, [r0, 0x18] cmp r0, 0xFF beq _0812A55E lsls r0, 24 lsrs r0, 24 bl RemoveWindow ldr r1, [r4] movs r0, 0xFF strh r0, [r1, 0x18] _0812A55E: pop {r4} pop {r0} bx r0 .align 2, 0 _0812A564: .4byte gUnknown_203B0E4 thumb_func_end sub_812A544 thumb_func_start sub_812A568 sub_812A568: @ 812A568 push {lr} bl Menu_ProcessInput lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end sub_812A568 thumb_func_start sub_812A578 sub_812A578: @ 812A578 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C adds r7, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r1, _0812A624 @ =0xffffff00 ldr r3, [sp, 0x14] ands r3, r1 ldr r2, _0812A628 @ =0xffff00ff ands r3, r2 movs r0, 0x80 lsls r0, 4 orrs r3, r0 ldr r0, _0812A62C @ =0xff00ffff ands r3, r0 movs r0, 0x80 lsls r0, 13 orrs r3, r0 ldr r5, _0812A630 @ =0x00ffffff ands r3, r5 movs r0, 0xA8 lsls r0, 21 orrs r3, r0 str r3, [sp, 0x14] ldr r0, [sp, 0x18] ands r0, r1 movs r1, 0x4 orrs r0, r1 ands r0, r2 movs r1, 0xE0 lsls r1, 4 orrs r0, r1 ldr r1, _0812A634 @ =0x0000ffff ands r0, r1 movs r1, 0xD4 lsls r1, 15 orrs r0, r1 str r0, [sp, 0x18] ldr r1, _0812A638 @ =gUnknown_845AB64 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r4, r0, r1 ldrb r0, [r4, 0xA] cmp r0, 0 beq _0812A5F8 lsls r0, r3, 16 movs r1, 0xF9 lsls r1, 24 adds r0, r1 lsrs r0, 16 ands r2, r3 orrs r2, r0 lsrs r1, r2, 24 adds r1, 0x7 lsls r1, 24 adds r0, r5, 0 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] _0812A5F8: add r0, sp, 0x14 bl AddWindow ldr r5, _0812A63C @ =gUnknown_203B0E4 ldr r1, [r5] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x1E] mov r8, r0 cmp r0, 0xFF beq _0812A6E2 ldrb r0, [r4, 0x9] cmp r0, 0 beq _0812A640 adds r0, r1, 0 adds r0, 0x22 ldr r1, [r4] bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r0, [r5] adds r6, r0, 0 adds r6, 0x22 b _0812A642 .align 2, 0 _0812A624: .4byte 0xffffff00 _0812A628: .4byte 0xffff00ff _0812A62C: .4byte 0xff00ffff _0812A630: .4byte 0x00ffffff _0812A634: .4byte 0x0000ffff _0812A638: .4byte gUnknown_845AB64 _0812A63C: .4byte gUnknown_203B0E4 _0812A640: ldr r6, [r4] _0812A642: mov r0, r9 lsls r1, r0, 8 movs r0, 0 movs r2, 0 bl ChangeBgY mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl PutWindowTilemap ldr r1, _0812A6AC @ =gUnknown_845AB64 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r4, r0, r1 ldrb r0, [r4, 0x4] cmp r0, 0x1 bne _0812A6B0 adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 bl DrawTextBorderInner ldrb r3, [r4, 0x5] adds r3, 0x8 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x6] adds r0, 0x8 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] ldrb r0, [r4, 0x7] str r0, [sp, 0xC] ldrb r0, [r4, 0x8] str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x2 adds r2, r6, 0 bl AddTextPrinterParameterized5 b _0812A6DA .align 2, 0 _0812A6AC: .4byte gUnknown_845AB64 _0812A6B0: adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 bl DrawTextBorderOuter ldrb r3, [r4, 0x5] ldrb r0, [r4, 0x6] str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] ldrb r0, [r4, 0x7] str r0, [sp, 0xC] ldrb r0, [r4, 0x8] str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x2 adds r2, r6, 0 bl AddTextPrinterParameterized5 _0812A6DA: ldr r0, _0812A6F0 @ =gUnknown_203B0E4 ldr r0, [r0] mov r1, r8 strh r1, [r0, 0x1E] _0812A6E2: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812A6F0: .4byte gUnknown_203B0E4 thumb_func_end sub_812A578 thumb_func_start sub_812A6F4 sub_812A6F4: @ 812A6F4 push {r4,lr} ldr r4, _0812A724 @ =gUnknown_203B0E4 ldr r0, [r4] ldrh r0, [r0, 0x1E] cmp r0, 0xFF beq _0812A712 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl ClearStdWindowAndFrameToTransparent ldr r0, [r4] ldrb r0, [r0, 0x1E] bl ClearWindowTilemap _0812A712: movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY pop {r4} pop {r0} bx r0 .align 2, 0 _0812A724: .4byte gUnknown_203B0E4 thumb_func_end sub_812A6F4 thumb_func_start sub_812A728 sub_812A728: @ 812A728 push {r4,lr} ldr r4, _0812A748 @ =gUnknown_203B0E4 ldr r0, [r4] ldrh r0, [r0, 0x1E] cmp r0, 0xFF beq _0812A742 lsls r0, 24 lsrs r0, 24 bl RemoveWindow ldr r1, [r4] movs r0, 0xFF strh r0, [r1, 0x1E] _0812A742: pop {r4} pop {r0} bx r0 .align 2, 0 _0812A748: .4byte gUnknown_203B0E4 thumb_func_end sub_812A728 thumb_func_start sub_812A74C sub_812A74C: @ 812A74C push {lr} sub sp, 0x8 adds r3, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 19 lsrs r3, 16 lsls r1, 19 lsrs r1, 16 str r1, [sp] movs r0, 0xE str r0, [sp, 0x4] movs r0, 0x1 adds r1, r2, 0 adds r2, r3, 0 movs r3, 0x1 bl FillWindowPixelRect add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_812A74C thumb_func_start sub_812A778 sub_812A778: @ 812A778 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 mov r10, r1 ldr r1, [sp, 0x54] lsls r0, 16 lsrs r5, r0, 16 mov r9, r5 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 lsls r3, 24 lsrs r7, r3, 24 lsls r1, 24 lsrs r6, r1, 24 cmp r4, 0 beq _0812A7B4 bl sub_81297DC adds r1, r0, 0 subs r1, r5 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 adds r2, r4, 0 bl sub_812A74C _0812A7B4: add r0, sp, 0xC mov r1, r8 strb r1, [r0] strb r7, [r0, 0x1] strb r6, [r0, 0x2] add r4, sp, 0x10 movs r0, 0xFC strb r0, [r4] movs r0, 0x14 strb r0, [r4, 0x1] movs r0, 0x8 strb r0, [r4, 0x2] mov r0, sp adds r0, 0x13 mov r1, r10 bl StringCopy mov r0, r9 lsls r2, r0, 27 lsrs r2, 24 add r1, sp, 0xC str r1, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParameterized3 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812A778 thumb_func_start sub_812A804 sub_812A804: @ 812A804 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4C movs r0, 0x2 movs r1, 0xFF bl FillWindowPixelBuffer bl sub_81296F4 lsls r0, 24 lsrs r2, r0, 24 add r1, sp, 0xC movs r0, 0 strb r0, [r1] movs r0, 0xE strb r0, [r1, 0x1] movs r0, 0xD strb r0, [r1, 0x2] cmp r2, 0x3 beq _0812A8A0 add r1, sp, 0x10 movs r0, 0xFC strb r0, [r1] movs r0, 0x14 strb r0, [r1, 0x1] movs r0, 0x8 strb r0, [r1, 0x2] str r0, [sp, 0x40] str r1, [sp, 0x44] cmp r2, 0x2 bne _0812A84C movs r1, 0x6 str r1, [sp, 0x40] _0812A84C: movs r7, 0 movs r6, 0 lsls r0, r2, 2 ldr r1, _0812A89C @ =sUnionRoomKeyboardText adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldr r0, [sp, 0x40] lsls r5, r0, 24 _0812A85E: ldr r1, [r4] cmp r1, 0 bne _0812A866 b _0812A96C _0812A866: mov r0, sp adds r0, 0x13 bl StringCopy lsls r3, r6, 24 lsrs r3, 24 add r1, sp, 0xC str r1, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r0, [sp, 0x44] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 lsrs r2, r5, 24 bl AddTextPrinterParameterized3 adds r4, 0x4 adds r7, 0x1 adds r0, r6, 0 adds r0, 0xC lsls r0, 16 lsrs r6, r0, 16 cmp r7, 0x9 ble _0812A85E b _0812A96C .align 2, 0 _0812A89C: .4byte sUnionRoomKeyboardText _0812A8A0: movs r1, 0x4 str r1, [sp, 0x40] movs r7, 0 movs r6, 0 _0812A8A8: adds r0, r7, 0 bl sub_81294B0 adds r5, r0, 0 movs r0, 0 adds r1, r5, 0 movs r2, 0 bl GetStringWidth cmp r0, 0x28 bgt _0812A8E6 lsls r3, r6, 24 lsrs r3, 24 add r4, sp, 0xC str r4, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r4, 0x80 lsls r4, 19 lsrs r2, r4, 24 bl AddTextPrinterParameterized3 adds r0, r7, 0x1 str r0, [sp, 0x48] adds r6, 0xC mov r10, r6 b _0812A960 _0812A8E6: adds r0, r5, 0 bl StringLength_Multibyte adds r4, r0, 0 mov r1, sp adds r1, 0x10 str r1, [sp, 0x44] ldr r0, [sp, 0x40] lsls r0, 24 mov r8, r0 lsls r1, r6, 24 mov r9, r1 adds r0, r7, 0x1 str r0, [sp, 0x48] adds r6, 0xC mov r10, r6 ldr r7, [sp, 0x40] adds r7, 0x23 ldr r6, [sp, 0x44] _0812A90C: subs r4, 0x1 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl StringCopyN_Multibyte movs r0, 0 adds r1, r6, 0 movs r2, 0 bl GetStringWidth cmp r0, 0x23 bgt _0812A90C mov r1, r8 lsrs r2, r1, 24 mov r0, r9 lsrs r4, r0, 24 add r1, sp, 0xC str r1, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r1, [sp, 0x44] str r1, [sp, 0x8] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl AddTextPrinterParameterized3 adds r2, r7, 0 add r0, sp, 0xC str r0, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] ldr r0, _0812A97C @ =gUnknown_845ABE8 str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl AddTextPrinterParameterized3 _0812A960: ldr r7, [sp, 0x48] mov r4, r10 lsls r0, r4, 16 lsrs r6, r0, 16 cmp r7, 0x9 ble _0812A8A8 _0812A96C: add sp, 0x4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812A97C: .4byte gUnknown_845ABE8 thumb_func_end sub_812A804 thumb_func_start sub_812A980 sub_812A980: @ 812A980 push {r4,lr} ldr r1, _0812A9A4 @ =gUnknown_203B0E4 ldr r2, [r1] ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0x37 bgt _0812A9B4 adds r0, r3, 0 adds r0, 0xC strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x37 ble _0812A9A8 movs r0, 0x38 strh r0, [r2, 0x20] b _0812A9B4 .align 2, 0 _0812A9A4: .4byte gUnknown_203B0E4 _0812A9A8: movs r1, 0x20 ldrsh r0, [r2, r1] bl sub_812ADA0 movs r0, 0x1 b _0812A9C0 _0812A9B4: ldr r0, [r1] movs r4, 0x20 ldrsh r0, [r0, r4] bl sub_812ADF8 movs r0, 0 _0812A9C0: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A980 thumb_func_start sub_812A9C8 sub_812A9C8: @ 812A9C8 push {r4,lr} ldr r1, _0812A9EC @ =gUnknown_203B0E4 ldr r2, [r1] ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0 ble _0812A9FC adds r0, r3, 0 subs r0, 0xC strh r0, [r2, 0x20] lsls r0, 16 cmp r0, 0 bgt _0812A9F0 movs r0, 0 strh r0, [r2, 0x20] b _0812A9FC .align 2, 0 _0812A9EC: .4byte gUnknown_203B0E4 _0812A9F0: movs r1, 0x20 ldrsh r0, [r2, r1] bl sub_812ADA0 movs r0, 0x1 b _0812AA08 _0812A9FC: ldr r0, [r1] movs r4, 0x20 ldrsh r0, [r0, r4] bl sub_812ADF8 movs r0, 0 _0812AA08: pop {r4} pop {r1} bx r1 thumb_func_end sub_812A9C8 thumb_func_start sub_812AA10 sub_812AA10: @ 812AA10 push {lr} sub sp, 0xC movs r0, 0x3 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0x1 movs r2, 0xD bl DrawTextBorderOuter ldr r0, _0812AA60 @ =gUnknown_845ABEC str r0, [sp] movs r0, 0x3 movs r1, 0x2 movs r2, 0xE movs r3, 0x5 bl UnionRoomAndTradeMenuPrintOptions bl sub_81296F4 lsls r0, 24 lsrs r0, 24 movs r1, 0xE str r1, [sp] movs r1, 0x5 str r1, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x2 movs r2, 0 movs r3, 0 bl Menu_InitCursor movs r0, 0x3 bl PutWindowTilemap add sp, 0xC pop {r0} bx r0 .align 2, 0 _0812AA60: .4byte gUnknown_845ABEC thumb_func_end sub_812AA10 thumb_func_start sub_812AA64 sub_812AA64: @ 812AA64 push {lr} movs r0, 0x3 movs r1, 0 bl ClearStdWindowAndFrameToTransparent movs r0, 0x3 bl ClearWindowTilemap pop {r0} bx r0 thumb_func_end sub_812AA64 thumb_func_start sub_812AA78 sub_812AA78: @ 812AA78 push {r4,r5,lr} sub sp, 0x10 adds r5, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r2, 24 add r3, sp, 0xC movs r1, 0x1 strb r1, [r3] lsrs r2, 23 adds r1, r2, 0x2 strb r1, [r3, 0x1] adds r1, r3, 0 adds r2, 0x3 strb r2, [r1, 0x2] lsls r4, r0, 4 subs r4, r0 lsls r3, r4, 16 lsrs r3, 16 movs r0, 0xA8 str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0 movs r1, 0x11 movs r2, 0 bl FillWindowPixelRect lsls r4, 24 lsrs r4, 24 add r0, sp, 0xC str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0 adds r3, r4, 0 bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812AA78 thumb_func_start sub_812AAD4 sub_812AAD4: @ 812AAD4 push {lr} movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuRegBits movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r1, 0xE0 lsls r1, 8 movs r0, 0 bl ClearGpuRegBits movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldr r1, _0812AB88 @ =0x000040f0 movs r0, 0x40 bl SetGpuReg movs r0, 0x44 movs r1, 0x90 bl SetGpuReg movs r0, 0x48 movs r1, 0x3D bl SetGpuReg movs r0, 0x4A movs r1, 0x3F bl SetGpuReg pop {r0} bx r0 .align 2, 0 _0812AB88: .4byte 0x000040f0 thumb_func_end sub_812AAD4 thumb_func_start sub_812AB8C sub_812AB8C: @ 812AB8C push {r4,lr} ldr r4, _0812ABC8 @ =gUnknown_203B0E4 ldr r1, [r4] movs r0, 0x94 lsls r0, 1 adds r1, r0 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, _0812ABCC @ =0x00000928 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, _0812ABD0 @ =0x00001128 adds r1, r0 movs r0, 0x3 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, _0812ABD4 @ =0x00001928 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _0812ABC8: .4byte gUnknown_203B0E4 _0812ABCC: .4byte 0x00000928 _0812ABD0: .4byte 0x00001128 _0812ABD4: .4byte 0x00001928 thumb_func_end sub_812AB8C thumb_func_start sub_812ABD8 sub_812ABD8: @ 812ABD8 push {lr} sub sp, 0x8 movs r1, 0xC0 lsls r1, 19 movs r0, 0 movs r2, 0x20 movs r3, 0x1 bl RequestDma3Fill movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_812ABD8 thumb_func_start sub_812AC08 sub_812AC08: @ 812AC08 push {lr} sub sp, 0x4 ldr r0, _0812AC48 @ =gUnknown_8EAA9F0 movs r1, 0x70 movs r2, 0x20 bl LoadPalette ldr r0, _0812AC4C @ =gUnknown_845AA24 movs r1, 0xC0 movs r2, 0x20 bl LoadPalette ldr r1, _0812AC50 @ =gUnknown_8EAAA10 movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl DecompressAndCopyTileDataToVram ldr r1, _0812AC54 @ =gUnknown_8EAAA6C movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0812AC48: .4byte gUnknown_8EAA9F0 _0812AC4C: .4byte gUnknown_845AA24 _0812AC50: .4byte gUnknown_8EAAA10 _0812AC54: .4byte gUnknown_8EAAA6C thumb_func_end sub_812AC08 thumb_func_start sub_812AC58 sub_812AC58: @ 812AC58 push {lr} sub sp, 0x4 ldr r0, _0812AC90 @ =gUnknown_8EA1700 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r1, _0812AC94 @ =gUnknown_8EA1720 movs r0, 0 str r0, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl DecompressAndCopyTileDataToVram ldr r1, _0812AC98 @ =gUnknown_8EA1958 movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x2 bl CopyBgTilemapBufferToVram add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0812AC90: .4byte gUnknown_8EA1700 _0812AC94: .4byte gUnknown_8EA1720 _0812AC98: .4byte gUnknown_8EA1958 thumb_func_end sub_812AC58 thumb_func_start sub_812AC9C sub_812AC9C: @ 812AC9C push {lr} ldr r0, _0812ACB8 @ =gUnknown_845AA44 movs r1, 0x80 movs r2, 0x20 bl LoadPalette ldr r1, _0812ACBC @ =0x06004020 movs r0, 0 movs r2, 0x20 movs r3, 0x1 bl RequestDma3Fill pop {r0} bx r0 .align 2, 0 _0812ACB8: .4byte gUnknown_845AA44 _0812ACBC: .4byte 0x06004020 thumb_func_end sub_812AC9C thumb_func_start sub_812ACC0 sub_812ACC0: @ 812ACC0 push {lr} ldr r0, _0812ACE8 @ =gUnknown_845AA64 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 .align 2, 0 _0812ACE8: .4byte gUnknown_845AA64 thumb_func_end sub_812ACC0 thumb_func_start sub_812ACEC sub_812ACEC: @ 812ACEC push {lr} movs r0, 0x2 bl PutWindowTilemap bl sub_812A804 movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_812ACEC thumb_func_start sub_812AD04 sub_812AD04: @ 812AD04 push {lr} movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_812AD04 thumb_func_start sub_812AD20 sub_812AD20: @ 812AD20 push {lr} movs r0, 0x3 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0x1 movs r2, 0xD0 bl TextWindow_SetUserSelectedFrame movs r0, 0x3 movs r1, 0xA movs r2, 0x20 bl TextWindow_SetStdFrame0_WithPal ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette movs r1, 0xE0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .align 2, 0 _0812AD4C: .4byte gTMCaseMainWindowPalette thumb_func_end sub_812AD20 thumb_func_start sub_812AD50 sub_812AD50: @ 812AD50 push {lr} sub sp, 0x10 ldr r0, _0812AD8C @ =0xa2600001 str r0, [sp, 0x4] ldr r0, _0812AD90 @ =0x04000014 str r0, [sp] mov r2, sp movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x8] mov r0, sp strb r1, [r0, 0x9] ldr r0, _0812AD94 @ =gUnknown_203B0E4 ldr r0, [r0] strh r1, [r0, 0x20] str r1, [sp, 0xC] add r0, sp, 0xC ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers ldr r2, _0812AD9C @ =0x010003c0 bl CpuFastSet ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl ScanlineEffect_SetParams add sp, 0x10 pop {r0} bx r0 .align 2, 0 _0812AD8C: .4byte 0xa2600001 _0812AD90: .4byte 0x04000014 _0812AD94: .4byte gUnknown_203B0E4 _0812AD98: .4byte gScanlineEffectRegBuffers _0812AD9C: .4byte 0x010003c0 thumb_func_end sub_812AD50 thumb_func_start sub_812ADA0 sub_812ADA0: @ 812ADA0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 mov r1, sp strh r0, [r1] ldr r5, _0812ADE8 @ =gScanlineEffect ldrb r0, [r5, 0x14] lsls r1, r0, 4 subs r1, r0 lsls r1, 7 ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers adds r1, r4 ldr r2, _0812ADF0 @ =0x01000090 mov r0, sp bl CpuSet mov r0, sp adds r0, 0x2 movs r1, 0 strh r1, [r0] ldrb r2, [r5, 0x14] lsls r1, r2, 4 subs r1, r2 lsls r1, 7 movs r2, 0x90 lsls r2, 1 adds r4, r2 adds r1, r4 ldr r2, _0812ADF4 @ =0x01000010 bl CpuSet add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812ADE8: .4byte gScanlineEffect _0812ADEC: .4byte gScanlineEffectRegBuffers _0812ADF0: .4byte 0x01000090 _0812ADF4: .4byte 0x01000010 thumb_func_end sub_812ADA0 thumb_func_start sub_812ADF8 sub_812ADF8: @ 812ADF8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, sp strh r4, [r0] ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers ldr r0, _0812AE68 @ =0x01000090 mov r9, r0 mov r0, sp adds r1, r5, 0 mov r2, r9 bl CpuSet mov r0, sp adds r0, 0x2 movs r6, 0 strh r6, [r0] movs r2, 0x90 lsls r2, 1 adds r1, r5, r2 ldr r2, _0812AE6C @ =0x01000010 mov r8, r2 bl CpuSet add r0, sp, 0x4 strh r4, [r0] movs r2, 0xF0 lsls r2, 3 adds r1, r5, r2 mov r2, r9 bl CpuSet mov r0, sp adds r0, 0x6 strh r6, [r0] movs r1, 0x8A lsls r1, 4 adds r5, r1 adds r1, r5, 0 mov r2, r8 bl CpuSet add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812AE64: .4byte gScanlineEffectRegBuffers _0812AE68: .4byte 0x01000090 _0812AE6C: .4byte 0x01000010 thumb_func_end sub_812ADF8 thumb_func_start sub_812AE70 sub_812AE70: @ 812AE70 push {r4,r5,lr} movs r5, 0 ldr r4, _0812AE9C @ =gUnknown_845AF58 _0812AE76: adds r0, r4, 0 bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x4 bls _0812AE76 ldr r0, _0812AEA0 @ =gUnknown_845AF80 bl LoadSpritePalette ldr r4, _0812AEA4 @ =gUnknown_203B0E8 movs r0, 0x18 bl Alloc str r0, [r4] cmp r0, 0 beq _0812AEA8 movs r0, 0x1 b _0812AEAA .align 2, 0 _0812AE9C: .4byte gUnknown_845AF58 _0812AEA0: .4byte gUnknown_845AF80 _0812AEA4: .4byte gUnknown_203B0E8 _0812AEA8: movs r0, 0 _0812AEAA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_812AE70 thumb_func_start sub_812AEB0 sub_812AEB0: @ 812AEB0 push {lr} ldr r0, _0812AEC4 @ =gUnknown_203B0E8 ldr r0, [r0] cmp r0, 0 beq _0812AEBE bl Free _0812AEBE: pop {r0} bx r0 .align 2, 0 _0812AEC4: .4byte gUnknown_203B0E8 thumb_func_end sub_812AEB0 thumb_func_start sub_812AEC8 sub_812AEC8: @ 812AEC8 push {lr} ldr r0, _0812AEF0 @ =gUnknown_845AFC0 movs r1, 0xA movs r2, 0x18 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0812AEF4 @ =gUnknown_203B0E8 ldr r2, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0812AEF8 @ =gSprites adds r1, r0 str r1, [r2] pop {r0} bx r0 .align 2, 0 _0812AEF0: .4byte gUnknown_845AFC0 _0812AEF4: .4byte gUnknown_203B0E8 _0812AEF8: .4byte gSprites thumb_func_end sub_812AEC8 thumb_func_start sub_812AEFC sub_812AEFC: @ 812AEFC ldr r1, _0812AF18 @ =gUnknown_203B0E8 ldr r1, [r1] ldr r2, [r1] adds r2, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r3, [r2] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r0 strb r1, [r2] bx lr .align 2, 0 _0812AF18: .4byte gUnknown_203B0E8 thumb_func_end sub_812AEFC thumb_func_start sub_812AF1C sub_812AF1C: @ 812AF1C push {r4,r5,lr} sub sp, 0x4 bl sub_81296F4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r5, sp adds r5, 0x1 mov r0, sp adds r1, r5, 0 bl sub_8129700 cmp r4, 0x3 beq _0812AF5C ldr r4, _0812AF58 @ =gUnknown_203B0E8 ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl StartSpriteAnim ldr r1, [r4] ldr r2, [r1] mov r0, sp ldrb r0, [r0] lsls r0, 3 adds r0, 0xA strh r0, [r2, 0x20] ldr r2, [r1] b _0812AF72 .align 2, 0 _0812AF58: .4byte gUnknown_203B0E8 _0812AF5C: ldr r4, _0812AF88 @ =gUnknown_203B0E8 ldr r0, [r4] ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim ldr r2, [r4] ldr r1, [r2] movs r0, 0x18 strh r0, [r1, 0x20] ldr r2, [r2] _0812AF72: ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x18 strh r0, [r2, 0x22] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812AF88: .4byte gUnknown_203B0E8 thumb_func_end sub_812AF1C thumb_func_start sub_812AF8C sub_812AF8C: @ 812AF8C push {r4,lr} adds r4, r0, 0 lsls r4, 2 ldr r0, _0812AFB8 @ =gUnknown_845AC14 + 2 adds r4, r0 movs r0, 0 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 ldr r0, _0812AFBC @ =0x01010000 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x4 bl LoadPalette pop {r4} pop {r0} bx r0 .align 2, 0 _0812AFB8: .4byte gUnknown_845AC14 + 2 _0812AFBC: .4byte 0x01010000 thumb_func_end sub_812AF8C thumb_func_start sub_812AFC0 sub_812AFC0: @ 812AFC0 push {lr} bl sub_81296F4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0812AFE0 ldr r0, _0812AFDC @ =gUnknown_203B0E8 ldr r0, [r0] ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim b _0812AFEC .align 2, 0 _0812AFDC: .4byte gUnknown_203B0E8 _0812AFE0: ldr r0, _0812AFF8 @ =gUnknown_203B0E8 ldr r0, [r0] ldr r0, [r0] movs r1, 0x3 bl StartSpriteAnim _0812AFEC: ldr r0, _0812AFF8 @ =gUnknown_203B0E8 ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x14] pop {r0} bx r0 .align 2, 0 _0812AFF8: .4byte gUnknown_203B0E8 thumb_func_end sub_812AFC0 thumb_func_start sub_812AFFC sub_812AFFC: @ 812AFFC push {r4,lr} ldr r4, _0812B00C @ =gUnknown_203B0E8 ldr r1, [r4] ldrh r0, [r1, 0x14] cmp r0, 0x3 bls _0812B010 _0812B008: movs r0, 0 b _0812B042 .align 2, 0 _0812B00C: .4byte gUnknown_203B0E8 _0812B010: adds r0, 0x1 strh r0, [r1, 0x14] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bls _0812B040 bl sub_81296F4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0812B034 ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl StartSpriteAnim b _0812B008 _0812B034: ldr r0, [r4] ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim b _0812B008 _0812B040: movs r0, 0x1 _0812B042: pop {r4} pop {r1} bx r1 thumb_func_end sub_812AFFC thumb_func_start sub_812B048 sub_812B048: @ 812B048 push {r4,r5,lr} ldr r0, _0812B08C @ =gUnknown_845AFE0 movs r1, 0x4C movs r2, 0x98 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _0812B090 @ =gUnknown_203B0E8 ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, _0812B094 @ =gSprites adds r1, r4 str r1, [r2, 0x8] ldr r0, _0812B098 @ =gUnknown_845AFF8 movs r1, 0x40 movs r2, 0x98 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r2, 0x4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B08C: .4byte gUnknown_845AFE0 _0812B090: .4byte gUnknown_203B0E8 _0812B094: .4byte gSprites _0812B098: .4byte gUnknown_845AFF8 thumb_func_end sub_812B048 thumb_func_start sub_812B09C sub_812B09C: @ 812B09C push {r4,lr} adds r4, r0, 0 bl sub_81297DC adds r3, r0, 0 cmp r3, 0xF bne _0812B0B8 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0812B0CC _0812B0B8: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] lsls r0, r3, 3 adds r0, 0x4C strh r0, [r4, 0x20] _0812B0CC: pop {r4} pop {r0} bx r0 thumb_func_end sub_812B09C thumb_func_start sub_812B0D4 sub_812B0D4: @ 812B0D4 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0812B0FA strh r2, [r1, 0x2E] ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0812B0FA strh r2, [r1, 0x24] _0812B0FA: pop {r0} bx r0 thumb_func_end sub_812B0D4 thumb_func_start sub_812B100 sub_812B100: @ 812B100 push {r4,r5,lr} ldr r0, _0812B150 @ =gUnknown_845B050 movs r1, 0x8 movs r2, 0x98 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _0812B154 @ =gUnknown_203B0E8 ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, _0812B158 @ =gSprites adds r1, r4 str r1, [r2, 0xC] ldr r0, _0812B15C @ =gUnknown_845B068 movs r1, 0x20 movs r2, 0x98 movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r2, 0x10] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B150: .4byte gUnknown_845B050 _0812B154: .4byte gUnknown_203B0E8 _0812B158: .4byte gSprites _0812B15C: .4byte gUnknown_845B068 thumb_func_end sub_812B100 thumb_func_start sub_812B160 sub_812B160: @ 812B160 push {r4,lr} bl sub_81296F4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0812B198 bl sub_8129720 cmp r0, 0 beq _0812B1A2 ldr r3, _0812B194 @ =gUnknown_203B0E8 ldr r0, [r3] ldr r1, [r0, 0x10] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r3] ldr r0, [r0, 0x10] movs r1, 0x3 bl StartSpriteAnim b _0812B1D6 .align 2, 0 _0812B194: .4byte gUnknown_203B0E8 _0812B198: bl sub_81297E8 adds r4, r0, 0 cmp r4, 0x3 bne _0812B1B8 _0812B1A2: ldr r0, _0812B1B4 @ =gUnknown_203B0E8 ldr r0, [r0] ldr r1, [r0, 0x10] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] b _0812B1D6 .align 2, 0 _0812B1B4: .4byte gUnknown_203B0E8 _0812B1B8: ldr r3, _0812B1DC @ =gUnknown_203B0E8 ldr r0, [r3] ldr r1, [r0, 0x10] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r3] ldr r0, [r0, 0x10] lsls r1, r4, 24 lsrs r1, 24 bl StartSpriteAnim _0812B1D6: pop {r4} pop {r0} bx r0 .align 2, 0 _0812B1DC: .4byte gUnknown_203B0E8 thumb_func_end sub_812B160 .align 2, 0 @ Don't pad with nop.