.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_81D1C44 sub_81D1C44: @ 81D1C44 push {r4,lr} lsls r0, 24 ldr r4, =gUnknown_0203CF4C lsrs r0, 21 adds r0, 0x8 bl Alloc str r0, [r4] cmp r0, 0 bne _081D1C60 movs r0, 0 b _081D1C7A .pool _081D1C60: movs r2, 0 ldr r4, =gUnknown_0203CF48 movs r3, 0xFF _081D1C66: adds r0, r2, r4 ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _081D1C66 movs r0, 0x1 _081D1C7A: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81D1C44 thumb_func_start sub_81D1C84 sub_81D1C84: @ 81D1C84 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r6, =gUnknown_0203CF48 adds r5, r4, r6 ldrb r0, [r5] cmp r0, 0xFF bne _081D1CEC cmp r4, 0x2 bne _081D1CD4 ldr r0, =gUnknown_086253E8 ldr r1, [r0, 0x14] ldr r0, [r0, 0x10] str r0, [sp] str r1, [sp, 0x4] ldr r0, =gMailboxMailOptions movs r1, 0x4 bl GetMaxWidthInMenuTable lsls r0, 24 ldr r2, =0x00ffffff ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp bl AddWindow strb r0, [r6, 0x2] b _081D1CE0 .pool _081D1CD4: lsls r0, r4, 3 ldr r1, =gUnknown_086253E8 adds r0, r1 bl AddWindow strb r0, [r5] _081D1CE0: ldr r0, =gUnknown_0203CF48 adds r0, r4, r0 ldrb r0, [r0] movs r1, 0 bl SetStandardWindowBorderStyle _081D1CEC: ldr r0, =gUnknown_0203CF48 adds r0, r4, r0 ldrb r0, [r0] add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D1C84 thumb_func_start sub_81D1D04 sub_81D1D04: @ 81D1D04 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CF48 adds r4, r0 ldrb r0, [r4] movs r1, 0 bl ClearStdWindowAndFrameToTransparent ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF strb r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D1D04 thumb_func_start sub_81D1D34 sub_81D1D34: @ 81D1D34 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CF48 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_81D1D34 thumb_func_start sub_81D1D44 sub_81D1D44: @ 81D1D44 push {r4,r5,lr} sub sp, 0x34 adds r3, r1, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0x2 negs r0, r0 cmp r3, r0 beq _081D1DAC ldr r0, =gSaveBlock1Ptr lsls r1, r3, 3 adds r1, r3 lsls r1, 2 ldr r0, [r0] adds r1, r0 ldr r0, =0x00002cca adds r1, r0 add r0, sp, 0x14 bl StringCopy add r0, sp, 0x14 bl sub_81DB52C add r0, sp, 0x14 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _081D1D8C add r0, sp, 0x14 movs r1, 0x1 bl ConvertInternationalString _081D1D8C: movs r0, 0 str r0, [sp] str r0, [sp, 0x4] ldr r0, =gUnknown_08625400 str r0, [sp, 0x8] movs r0, 0x1 negs r0, r0 str r0, [sp, 0xC] add r0, sp, 0x14 str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x8 adds r3, r5, 0 bl AddTextPrinterParameterized4 _081D1DAC: add sp, 0x34 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D1D44 thumb_func_start sub_81D1DC0 sub_81D1DC0: @ 81D1DC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 movs r3, 0 ldr r7, =gUnknown_0203CF4C ldr r0, =gText_Cancel2 mov r12, r0 ldr r4, =gMultiuseListMenuTemplate ldr r1, =gUnknown_0203CF48 mov r8, r1 ldr r2, =sub_81D1E7C mov r9, r2 ldr r0, =sub_81D1D44 mov r10, r0 ldrb r1, [r5, 0x5] cmp r3, r1 bcs _081D1E02 adds r6, r7, 0 ldr r2, =gUnknown_08625403 _081D1DEC: ldr r1, [r6] lsls r0, r3, 3 adds r0, r1 str r2, [r0] str r3, [r0, 0x4] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldrb r0, [r5, 0x5] cmp r3, r0 bcc _081D1DEC _081D1E02: ldr r2, [r7] lsls r0, r3, 3 adds r0, r2 mov r1, r12 str r1, [r0] movs r1, 0x2 negs r1, r1 str r1, [r0, 0x4] str r2, [r4] ldrb r0, [r5, 0x5] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0xC] mov r2, r8 ldrb r0, [r2, 0x1] strb r0, [r4, 0x10] strb r1, [r4, 0x11] movs r0, 0x8 strb r0, [r4, 0x12] strb r1, [r4, 0x13] strh r0, [r4, 0xE] movs r0, 0x29 strb r0, [r4, 0x14] movs r0, 0x31 strb r0, [r4, 0x15] mov r0, r9 str r0, [r4, 0x4] mov r1, r10 str r1, [r4, 0x8] movs r0, 0x1 strb r0, [r4, 0x17] movs r0, 0 strb r0, [r4, 0x16] ldrh r1, [r5, 0x2] ldrh r2, [r5] adds r0, r4, 0 bl ListMenuInit lsls r0, 24 lsrs r0, 24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81D1DC0 thumb_func_start sub_81D1E7C sub_81D1E7C: @ 81D1E7C push {lr} lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _081D1E8C movs r0, 0x5 bl PlaySE _081D1E8C: pop {r0} bx r0 thumb_func_end sub_81D1E7C thumb_func_start sub_81D1E90 sub_81D1E90: @ 81D1E90 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 ldrb r0, [r4, 0x5] ldrb r1, [r4, 0x4] subs r0, r1 adds r0, 0x1 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r4, 0x2 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xC8 movs r2, 0xC movs r3, 0x94 bl AddScrollIndicatorArrowPairParameterized strb r0, [r4, 0x9] add sp, 0x10 pop {r4} pop {r0} bx r0 thumb_func_end sub_81D1E90 thumb_func_start sub_81D1EC0 sub_81D1EC0: @ 81D1EC0 push {lr} ldr r0, =gUnknown_0203CF4C ldr r0, [r0] bl Free pop {r0} bx r0 .pool thumb_func_end sub_81D1EC0 thumb_func_start sub_81D1ED4 sub_81D1ED4: @ 81D1ED4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r3, r0, 0 movs r6, 0 movs r7, 0 _081D1EE6: movs r2, 0 lsls r5, r6, 2 adds r0, r6, 0x1 mov r10, r0 adds r4, r5, 0 _081D1EF0: lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r0, r4, r0 adds r0, r3, r0 adds r1, r0, 0 adds r1, 0x64 strh r7, [r1] adds r0, 0x66 strh r7, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x9 bls _081D1EF0 movs r2, 0 mov r9, r2 str r5, [sp] movs r1, 0x9B mov r8, r1 movs r4, 0x5B mov r12, r4 _081D1F1C: lsls r0, r2, 2 adds r0, r2 adds r1, r6, r0 adds r1, r3, r1 mov r4, r9 strb r4, [r1] lsls r0, 2 ldr r1, [sp] adds r0, r1, r0 adds r0, r3, r0 mov r4, r8 strh r4, [r0, 0x14] mov r1, r12 strh r1, [r0, 0x16] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _081D1F1C adds r1, r3, r5 movs r2, 0x96 lsls r2, 1 adds r0, r1, r2 strh r7, [r0] movs r4, 0x97 lsls r4, 1 adds r0, r1, r4 strh r7, [r0] mov r1, r10 lsls r0, r1, 24 lsrs r6, r0, 24 cmp r6, 0x4 bls _081D1EE6 movs r2, 0xD5 lsls r2, 2 adds r0, r3, r2 movs r1, 0 strb r1, [r0] ldr r4, =0x00000352 adds r0, r3, r4 strh r1, [r0] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D1ED4 thumb_func_start sub_81D1F84 sub_81D1F84: @ 81D1F84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r8, r0 str r1, [sp] mov r9, r2 movs r7, 0 _081D1F98: lsls r4, r7, 2 ldr r1, [sp] adds r0, r4, r1 ldrh r1, [r0] lsls r5, r1, 8 mov r2, r9 adds r0, r4, r2 ldrh r0, [r0] subs r0, r1 lsls r0, 8 movs r1, 0xA bl __divsi3 adds r6, r0, 0 movs r3, 0 adds r7, 0x1 mov r10, r7 mov r12, r4 _081D1FBC: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 add r0, r12 add r0, r8 asrs r2, r5, 8 asrs r1, r5, 7 movs r7, 0x1 ands r1, r7 adds r2, r1 adds r0, 0x64 strh r2, [r0] adds r5, r6 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x8 bls _081D1FBC lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4, r0 add r0, r8 mov r1, r9 adds r2, r4, r1 ldrh r1, [r2] adds r0, 0x64 strh r1, [r0] ldr r7, [sp] adds r0, r4, r7 ldrh r1, [r0, 0x2] lsls r5, r1, 8 ldrh r0, [r2, 0x2] subs r0, r1 lsls r0, 8 movs r1, 0xA bl __divsi3 adds r6, r0, 0 movs r3, 0 str r4, [sp, 0x4] movs r0, 0x1 mov r12, r0 _081D2012: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 ldr r1, [sp, 0x4] adds r0, r1, r0 add r0, r8 asrs r2, r5, 8 asrs r1, r5, 7 mov r7, r12 ands r1, r7 adds r2, r1 adds r0, 0x66 strh r2, [r0] adds r5, r6 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x8 bls _081D2012 lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4, r0 add r0, r8 mov r2, r9 adds r1, r4, r2 ldrh r1, [r1, 0x2] adds r0, 0x66 strh r1, [r0] mov r7, r10 lsls r0, r7, 16 lsrs r7, r0, 16 cmp r7, 0x4 bls _081D1F98 ldr r1, =0x00000352 add r1, r8 movs r0, 0 strh r0, [r1] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D1F84 thumb_func_start sub_81D2074 sub_81D2074: @ 81D2074 push {r4,lr} adds r1, r0, 0 ldr r0, =0x00000352 adds r4, r1, r0 ldrh r0, [r4] cmp r0, 0x9 bls _081D208C movs r0, 0 b _081D20A6 .pool _081D208C: adds r0, r1, 0 bl sub_81D2230 ldrh r1, [r4] adds r1, 0x1 strh r1, [r4] lsls r1, 16 lsrs r1, 16 movs r0, 0xA eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 _081D20A6: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D2074 thumb_func_start sub_81D20AC sub_81D20AC: @ 81D20AC ldr r1, =0x00000355 adds r0, r1 movs r1, 0 strb r1, [r0] bx lr .pool thumb_func_end sub_81D20AC thumb_func_start sub_81D20BC sub_81D20BC: @ 81D20BC push {r4,r5,lr} sub sp, 0xC ldr r1, =0x00000355 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _081D20D4 cmp r0, 0x1 beq _081D20E2 b _081D20FA .pool _081D20D4: bl ScanlineEffect_Clear ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 b _081D20FC _081D20E2: mov r0, sp ldr r1, =gUnknown_08625404 ldm r1!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl ScanlineEffect_SetParams ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _081D20FA: movs r0, 0 _081D20FC: add sp, 0xC pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81D20BC thumb_func_start sub_81D2108 sub_81D2108: @ 81D2108 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 movs r1, 0xD5 lsls r1, 2 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _081D21BE adds r0, r6, 0 bl sub_81D24A4 adds r0, r6, 0 bl sub_81D2634 movs r7, 0 ldr r5, =gScanlineEffectRegBuffers mov r12, r5 movs r0, 0xF0 lsls r0, 3 add r0, r12 mov r9, r0 movs r1, 0xA0 lsls r1, 1 adds r1, r6, r1 str r1, [sp] ldr r5, =0x0000ffff mov r8, r5 movs r0, 0xA1 lsls r0, 1 adds r0, r6, r0 str r0, [sp, 0x4] movs r1, 0x92 lsls r1, 2 adds r1, r6, r1 str r1, [sp, 0x8] ldr r5, =0x0000024a adds r5, r6 mov r10, r5 _081D215E: adds r2, r7, 0 adds r2, 0x37 lsls r3, r2, 2 mov r0, r9 adds r0, r3, r0 str r0, [sp, 0xC] add r3, r12 lsls r4, r7, 2 ldr r1, [sp] adds r0, r1, r4 ldrh r0, [r0] lsls r0, 8 ldr r5, [sp, 0x4] adds r1, r5, r4 ldrh r1, [r1] orrs r0, r1 strh r0, [r3] mov r1, r8 ands r0, r1 ldr r5, [sp, 0xC] strh r0, [r5] lsls r2, 1 adds r2, 0x1 lsls r2, 1 mov r0, r9 adds r3, r2, r0 add r2, r12 ldr r1, [sp, 0x8] adds r0, r1, r4 ldrh r0, [r0] lsls r0, 8 add r4, r10 ldrh r1, [r4] orrs r0, r1 strh r0, [r2] mov r5, r8 ands r0, r5 strh r0, [r3] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x41 bls _081D215E movs r0, 0xD5 lsls r0, 2 adds r1, r6, r0 movs r0, 0 strb r0, [r1] _081D21BE: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D2108 thumb_func_start sub_81D21DC sub_81D21DC: @ 81D21DC push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _081D21E8 movs r1, 0 _081D21E8: movs r0, 0x1 lsls r0, r1 movs r5, 0x1F bics r5, r0 movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg movs r0, 0x42 movs r1, 0x9B bl SetGpuReg ldr r4, =0x00003879 movs r0, 0x44 adds r1, r4, 0 bl SetGpuReg movs r0, 0x46 adds r1, r4, 0 bl SetGpuReg ldr r1, =0x00003f3f movs r0, 0x48 bl SetGpuReg movs r0, 0x4A adds r1, r5, 0 bl SetGpuReg pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D21DC thumb_func_start sub_81D2230 sub_81D2230: @ 81D2230 push {r4-r7,lr} mov r12, r0 movs r4, 0 movs r7, 0x96 lsls r7, 1 add r7, r12 ldr r6, =0x00000352 add r6, r12 mov r5, r12 adds r5, 0x64 _081D2244: lsls r2, r4, 2 adds r3, r7, r2 ldrh r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, r0 adds r2, r5, r2 ldr r0, [r2] str r0, [r3] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _081D2244 movs r1, 0xD5 lsls r1, 2 add r1, r12 movs r0, 0x1 strb r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D2230 thumb_func_start sub_81D2278 sub_81D2278: @ 81D2278 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp] adds r6, r1, 0 adds r5, r2, 0 str r3, [sp, 0x4] ldr r0, [sp, 0x38] ldr r7, [sp, 0x3C] lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 str r0, [sp, 0xC] ldrh r0, [r5, 0x2] ldrh r1, [r3, 0x2] cmp r0, r1 bcs _081D22B2 adds r2, r0, 0 mov r10, r2 ldrh r0, [r3, 0x2] ldrh r1, [r5] lsls r4, r1, 10 ldrh r3, [r3] str r3, [sp, 0x8] b _081D22C6 _081D22B2: ldrh r0, [r5, 0x2] ldr r1, [sp, 0x4] ldrh r1, [r1, 0x2] mov r10, r1 ldr r2, [sp, 0x4] ldrh r1, [r2] lsls r4, r1, 10 ldrh r3, [r5] str r3, [sp, 0x8] mov r2, r10 _081D22C6: subs r0, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0 beq _081D22DE subs r0, r3, r1 lsls r0, 10 mov r1, r8 bl __divsi3 str r0, [sp, 0xC] _081D22DE: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r7, 0 bne _081D2328 mov r0, r10 subs r0, 0x38 lsls r0, 2 adds r6, r0 movs r5, 0 mov r3, r9 lsls r3, 1 mov r12, r3 ldr r0, [sp, 0x8] add r0, r9 str r0, [sp, 0x10] cmp r7, r8 bcs _081D23B6 movs r7, 0x1 _081D2308: adds r2, r3, r6 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r7 adds r1, r0 add r1, r9 strh r1, [r2] ldr r1, [sp, 0xC] adds r4, r1 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _081D2308 b _081D23B6 _081D2328: ldr r2, [sp, 0xC] cmp r2, 0 ble _081D23C0 mov r0, r10 subs r0, 0x38 lsls r0, 2 adds r7, r0 movs r5, 0 mov r3, r9 lsls r3, 1 mov r12, r3 ldr r0, [sp, 0x8] add r0, r9 str r0, [sp, 0x10] cmp r5, r8 bcs _081D237A ldr r0, =0x00026bff cmp r4, r0 bgt _081D237A mov r1, r12 str r1, [sp, 0x14] _081D2352: ldr r3, [sp, 0x14] adds r2, r3, r7 asrs r1, r4, 10 asrs r0, r4, 9 movs r3, 0x1 ands r0, r3 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0xC] adds r4, r0 adds r7, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcs _081D237A ldr r1, =0x00026bff cmp r4, r1 ble _081D2352 _081D237A: mov r2, r10 adds r1, r2, r5 ldr r3, [sp] movs r2, 0xD4 lsls r2, 2 adds r0, r3, r2 strh r1, [r0] ldrh r0, [r0] subs r0, 0x38 lsls r0, 2 adds r6, r0 cmp r5, r8 bcs _081D23B6 mov r3, r12 movs r7, 0x1 _081D2398: adds r2, r3, r6 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r7 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0xC] adds r4, r0 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _081D2398 _081D23B6: subs r0, r6, 0x4 b _081D248C .pool _081D23C0: ldr r1, [sp, 0xC] cmp r1, 0 bge _081D2464 mov r0, r10 subs r0, 0x38 lsls r0, 2 adds r6, r0 movs r5, 0 mov r2, r9 lsls r2, 1 mov r12, r2 ldr r3, [sp, 0x8] add r3, r9 str r3, [sp, 0x10] cmp r5, r8 bcs _081D241E adds r3, r2, r6 asrs r1, r4, 10 asrs r0, r4, 9 movs r2, 0x1 ands r0, r2 adds r1, r0 add r1, r9 strh r1, [r3] b _081D2414 _081D23F2: ldr r0, [sp, 0xC] adds r4, r0 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcs _081D241E mov r1, r12 adds r3, r1, r6 asrs r2, r4, 10 asrs r0, r4, 9 movs r1, 0x1 ands r0, r1 adds r2, r0 add r2, r9 strh r2, [r3] _081D2414: ldr r0, =0x00026bff cmp r4, r0 bgt _081D23F2 movs r0, 0x9B strh r0, [r3] _081D241E: mov r2, r10 adds r1, r2, r5 ldr r3, [sp] movs r2, 0xD4 lsls r2, 2 adds r0, r3, r2 strh r1, [r0] ldrh r0, [r0] subs r0, 0x38 lsls r0, 2 adds r7, r0 cmp r5, r8 bcs _081D245A mov r3, r12 movs r6, 0x1 _081D243C: adds r2, r3, r7 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r6 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0xC] adds r4, r0 adds r7, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _081D243C _081D245A: subs r0, r7, 0x4 b _081D248C .pool _081D2464: ldr r1, [sp] movs r2, 0xD4 lsls r2, 2 adds r0, r1, r2 mov r3, r10 strh r3, [r0] mov r0, r10 subs r0, 0x38 lsls r0, 2 adds r6, r0 adds r7, r0 ldrh r0, [r5] adds r0, 0x1 strh r0, [r6, 0x2] ldr r1, [sp, 0x4] ldrh r0, [r1] strh r0, [r7] movs r0, 0x9B strh r0, [r7, 0x2] b _081D2494 _081D248C: add r0, r12 mov r2, sp ldrh r2, [r2, 0x10] strh r2, [r0] _081D2494: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D2278 thumb_func_start sub_81D24A4 sub_81D24A4: @ 81D24A4 push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 movs r0, 0x97 lsls r0, 1 adds r2, r4, r0 movs r3, 0x99 lsls r3, 1 adds r1, r4, r3 ldrh r0, [r2] ldrh r3, [r1] cmp r0, r3 bcs _081D24E0 adds r7, r0, 0 movs r0, 0xA0 lsls r0, 1 adds r1, r4, r0 movs r3, 0x96 lsls r3, 1 adds r2, r4, r3 subs r0, 0x10 adds r3, r4, r0 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 bl sub_81D2278 b _081D2500 _081D24E0: ldrh r7, [r1] movs r2, 0xA0 lsls r2, 1 adds r1, r4, r2 movs r3, 0x98 lsls r3, 1 adds r2, r4, r3 movs r0, 0x96 lsls r0, 1 adds r3, r4, r0 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 bl sub_81D2278 _081D2500: movs r1, 0xA0 lsls r1, 1 adds r5, r4, r1 movs r3, 0x98 lsls r3, 1 adds r2, r4, r3 movs r0, 0x9A lsls r0, 1 adds r6, r4, r0 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 adds r3, r6, 0 bl sub_81D2278 movs r2, 0 movs r1, 0x9B lsls r1, 1 adds r0, r4, r1 movs r3, 0x9D lsls r3, 1 adds r1, r4, r3 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bhi _081D253C movs r2, 0x1 _081D253C: movs r0, 0x9C lsls r0, 1 adds r3, r4, r0 str r2, [sp] movs r1, 0x92 lsls r1, 2 adds r0, r4, r1 str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_81D2278 movs r2, 0x38 cmp r2, r7 bcs _081D257E adds r6, r5, 0 movs r3, 0 movs r0, 0xA1 lsls r0, 1 adds r5, r4, r0 _081D2566: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r6, r0 strh r3, [r1] adds r0, r5, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r7 bcc _081D2566 _081D257E: movs r1, 0x97 lsls r1, 1 adds r0, r4, r1 ldrh r2, [r0] movs r3, 0xD4 lsls r3, 2 adds r0, r4, r3 ldrh r1, [r0] cmp r2, r1 bhi _081D25B2 movs r1, 0xA0 lsls r1, 1 adds r3, r4, r1 movs r5, 0x9B adds r1, r0, 0 _081D259C: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r0, r3, r0 strh r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1] cmp r2, r0 bls _081D259C _081D25B2: movs r2, 0x9B lsls r2, 1 adds r1, r4, r2 movs r3, 0xD4 lsls r3, 2 adds r0, r4, r3 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bcs _081D25C8 adds r0, r1, 0 _081D25C8: adds r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bhi _081D25F8 movs r0, 0xA0 lsls r0, 1 adds r6, r4, r0 movs r3, 0 movs r1, 0xA1 lsls r1, 1 adds r5, r4, r1 _081D25E0: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r6, r0 strh r3, [r1] adds r0, r5, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bls _081D25E0 _081D25F8: movs r2, 0x38 movs r3, 0xA0 lsls r3, 1 adds r5, r4, r3 movs r0, 0xA1 lsls r0, 1 adds r4, r0 movs r6, 0x9B _081D2608: adds r0, r2, 0 subs r0, 0x38 lsls r1, r0, 2 adds r3, r5, r1 ldrh r0, [r3] cmp r0, 0 bne _081D2620 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0 beq _081D2620 strh r6, [r3] _081D2620: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bls _081D2608 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D24A4 thumb_func_start sub_81D2634 sub_81D2634: @ 81D2634 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 movs r0, 0x97 lsls r0, 1 adds r2, r4, r0 movs r3, 0x9F lsls r3, 1 adds r1, r4, r3 ldrh r0, [r2] ldrh r5, [r1] cmp r0, r5 bcs _081D266E adds r6, r0, 0 movs r0, 0x92 lsls r0, 2 adds r1, r4, r0 subs r3, 0x12 adds r2, r4, r3 movs r5, 0x9E lsls r5, 1 adds r3, r4, r5 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 bl sub_81D2278 b _081D2690 _081D266E: ldrh r6, [r1] movs r0, 0x92 lsls r0, 2 adds r1, r4, r0 movs r3, 0x9E lsls r3, 1 adds r2, r4, r3 movs r5, 0x96 lsls r5, 1 adds r3, r4, r5 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 bl sub_81D2278 _081D2690: movs r0, 0x92 lsls r0, 2 adds r5, r4, r0 movs r1, 0x9E lsls r1, 1 adds r2, r4, r1 movs r0, 0x9C lsls r0, 1 adds r3, r4, r0 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 bl sub_81D2278 cmp r6, 0x38 ble _081D26C8 movs r0, 0 adds r1, r5, 0 adds r2, r6, 0 subs r2, 0x38 _081D26BC: strh r0, [r1] strh r0, [r1, 0x2] adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bne _081D26BC _081D26C8: movs r1, 0x97 lsls r1, 1 adds r0, r4, r1 ldrh r2, [r0] movs r3, 0xD4 lsls r3, 2 adds r0, r4, r3 ldrh r5, [r0] cmp r2, r5 bgt _081D26F6 movs r3, 0x9B adds r1, r0, 0 lsls r0, r2, 2 movs r5, 0xB5 lsls r5, 1 adds r0, r5 adds r0, r4 _081D26EA: strh r3, [r0] adds r0, 0x4 adds r2, 0x1 ldrh r5, [r1] cmp r2, r5 ble _081D26EA _081D26F6: movs r1, 0x9D lsls r1, 1 adds r0, r4, r1 ldrh r0, [r0] adds r1, r0, 0x1 movs r2, 0xD4 lsls r2, 2 adds r0, r4, r2 ldrh r0, [r0] cmp r0, r1 bge _081D270E adds r0, r1, 0 _081D270E: adds r2, r0, 0 cmp r2, 0x79 bgt _081D272C movs r1, 0 lsls r0, r2, 2 movs r3, 0xB4 lsls r3, 1 adds r0, r3 adds r0, r4 _081D2720: strh r1, [r0] strh r1, [r0, 0x2] adds r0, 0x4 adds r2, 0x1 cmp r2, 0x79 ble _081D2720 _081D272C: movs r3, 0 movs r5, 0x92 lsls r5, 2 adds r1, r4, r5 movs r2, 0x41 _081D2736: ldrh r0, [r1] ldrh r4, [r1, 0x2] cmp r0, r4 bcc _081D2742 strh r3, [r1, 0x2] strh r3, [r1] _081D2742: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bge _081D2736 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81D2634 thumb_func_start sub_81D2754 sub_81D2754: @ 81D2754 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 mov r8, r1 ldr r1, =gUnknown_08625410 ldrb r0, [r6] adds r0, r1 ldrb r2, [r0] adds r6, 0x1 movs r0, 0x9B mov r3, r8 strh r0, [r3] movs r0, 0x5B subs r0, r2 strh r0, [r3, 0x2] movs r7, 0x40 movs r0, 0 mov r12, r0 movs r2, 0x1 mov r9, r2 ldr r3, =gSineTable mov r10, r3 _081D2786: adds r0, r7, 0 adds r0, 0x33 lsls r0, 24 lsrs r7, r0, 24 mov r1, r12 lsls r0, r1, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r3, r0, 24 mov r12, r3 cmp r0, 0 bge _081D27A4 movs r0, 0x4 mov r12, r0 _081D27A4: mov r1, r12 lsls r0, r1, 24 asrs r4, r0, 24 cmp r4, 0x2 bne _081D27B4 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _081D27B4: ldrb r0, [r6] ldr r2, =gUnknown_08625410 adds r0, r2 ldrb r2, [r0] adds r6, 0x1 lsls r0, r4, 2 mov r1, r8 adds r3, r0, r1 adds r0, r7, 0 adds r0, 0x40 lsls r0, 1 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r2 asrs r5, r0, 8 adds r0, r5, 0 adds r0, 0x9B strh r0, [r3] lsls r0, r7, 1 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] adds r1, r2, 0 muls r1, r0 asrs r1, 8 movs r0, 0x5B subs r0, r1 strh r0, [r3, 0x2] cmp r4, 0x2 bgt _081D2800 cmp r2, 0x20 bne _081D27FA cmp r4, 0x2 beq _081D2800 _081D27FA: adds r0, r5, 0 adds r0, 0x9C strh r0, [r3] _081D2800: mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0x4 bls _081D2786 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D2754 thumb_func_start sub_81D2824 sub_81D2824: @ 81D2824 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_08625510 bl InitWindows bl DeactivateAllTextPrinters movs r0, 0 movs r1, 0x1 movs r2, 0xE0 bl LoadUserWindowBorderGfx ldr r0, =gUnknown_0860F074 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r4, 0 _081D284A: adds r0, r4, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _081D284A cmp r5, 0 bne _081D287C movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0 movs r2, 0x1 movs r3, 0xE bl DrawStdFrameWithCustomTileAndPalette b _081D288E .pool _081D287C: movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0 movs r2, 0x1 movs r3, 0xE bl DrawStdFrameWithCustomTileAndPalette _081D288E: movs r0, 0x2 bl PutWindowTilemap movs r0, 0x3 bl PutWindowTilemap movs r0, 0x2 movs r1, 0 movs r2, 0x1 movs r3, 0xE bl DrawStdFrameWithCustomTileAndPalette movs r0, 0x3 movs r1, 0 movs r2, 0x1 movs r3, 0xE bl DrawStdFrameWithCustomTileAndPalette bl nullsub_79 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81D2824 thumb_func_start nullsub_79 nullsub_79: @ 81D28C4 bx lr thumb_func_end nullsub_79 thumb_func_start sub_81D28C8 sub_81D28C8: @ 81D28C8 push {r4-r7,lr} lsls r1, 16 lsrs r4, r1, 16 ldr r3, =gMultiuseListMenuTemplate adds r2, r3, 0 ldr r1, =gUnknown_08625548 ldm r1!, {r5-r7} stm r2!, {r5-r7} ldm r1!, {r5-r7} stm r2!, {r5-r7} strh r4, [r3, 0xC] str r0, [r3] cmp r4, 0x5 bhi _081D28F0 strh r4, [r3, 0xE] b _081D28F4 .pool _081D28F0: movs r0, 0x6 strh r0, [r3, 0xE] _081D28F4: ldrb r0, [r3, 0xE] pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81D28C8 thumb_func_start sub_81D28FC sub_81D28FC: @ 81D28FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r9, r0 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r5, =gText_BattleMoves2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x80 bl GetStringCenterAlignXOffset adds r4, r0, 0 lsls r3, r4, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r0, 0xFF mov r8, r0 str r0, [sp, 0x4] movs r7, 0 str r7, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized ldr r5, =gText_PPSlash movs r1, 0x29 mov r10, r1 str r1, [sp] mov r0, r8 str r0, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 bl AddTextPrinterParameterized ldr r5, =gText_PowerSlash movs r0, 0x1 adds r1, r5, 0 movs r2, 0x6A bl GetStringRightAlignXOffset adds r4, r0, 0 lsls r3, r4, 24 lsrs r3, 24 movs r1, 0x19 str r1, [sp] mov r0, r8 str r0, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized ldr r5, =gText_AccuracySlash movs r0, 0x1 adds r1, r5, 0 movs r2, 0x6A bl GetStringRightAlignXOffset adds r4, r0, 0 lsls r3, r4, 24 lsrs r3, 24 mov r1, r10 str r1, [sp] mov r0, r8 str r0, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized movs r0, 0x2 negs r0, r0 cmp r9, r0 bne _081D29C4 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram b _081D2AB6 .pool _081D29C4: mov r1, r9 lsls r0, r1, 1 add r0, r9 lsls r0, 2 ldr r1, =gBattleMoves adds r6, r0, r1 ldrb r1, [r6, 0x2] lsls r0, r1, 3 subs r0, r1 ldr r1, =gTypeNames adds r5, r0, r1 movs r0, 0x19 str r0, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 bl AddTextPrinterParameterized ldr r1, =gText_PPSlash movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r4, r0, 0x4 ldrb r1, [r6, 0x4] add r0, sp, 0xC movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN lsls r3, r4, 24 lsrs r3, 24 mov r0, r10 str r0, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 movs r1, 0x1 add r2, sp, 0xC bl AddTextPrinterParameterized ldrb r0, [r6, 0x1] cmp r0, 0x1 bhi _081D2A3C ldr r5, =gText_ThreeDashes b _081D2A4A .pool _081D2A3C: ldrb r1, [r6, 0x1] add r0, sp, 0xC movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN add r5, sp, 0xC _081D2A4A: movs r0, 0x19 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 movs r3, 0x6A bl AddTextPrinterParameterized ldrb r0, [r6, 0x3] cmp r0, 0 bne _081D2A70 ldr r5, =gText_ThreeDashes b _081D2A7E .pool _081D2A70: ldrb r1, [r6, 0x3] add r0, sp, 0xC movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN add r5, sp, 0xC _081D2A7E: movs r0, 0x29 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 movs r3, 0x6A bl AddTextPrinterParameterized ldr r1, =gMoveDescriptionPointers mov r0, r9 subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r5, [r0] movs r0, 0x41 str r0, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0 movs r1, 0x7 adds r2, r5, 0 movs r3, 0 bl AddTextPrinterParameterized _081D2AB6: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D28FC thumb_func_start sub_81D2ACC sub_81D2ACC: @ 81D2ACC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r0, 0 bl ShowHideHearts movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer ldr r5, =gText_ContestMoves2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x80 bl GetStringCenterAlignXOffset lsls r3, r0, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r7, 0xFF str r7, [sp, 0x4] movs r6, 0 str r6, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized ldr r5, =gText_Appeal2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x5C bl GetStringRightAlignXOffset lsls r3, r0, 24 lsrs r3, 24 movs r0, 0x19 mov r8, r0 str r0, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized ldr r5, =gText_Jam2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x5C bl GetStringRightAlignXOffset lsls r3, r0, 24 lsrs r3, 24 movs r0, 0x29 str r0, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized movs r0, 0x2 negs r0, r0 cmp r4, r0 bne _081D2B6C movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _081D2BB8 .pool _081D2B6C: lsls r4, 3 ldr r0, =gContestMoves adds r4, r0 ldr r1, =gContestMoveTypeTextPointers ldrb r0, [r4, 0x1] lsls r0, 29 lsrs r0, 27 adds r0, r1 ldr r5, [r0] mov r0, r8 str r0, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 bl AddTextPrinterParameterized ldr r1, =gContestEffectDescriptionPointers ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r5, [r0] movs r0, 0x41 str r0, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r1, 0x7 adds r2, r5, 0 movs r3, 0 bl AddTextPrinterParameterized movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram _081D2BB8: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D2ACC thumb_func_start sub_81D2BD0 sub_81D2BD0: @ 81D2BD0 push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _081D2BE2 movs r0, 0x5 bl PlaySE _081D2BE2: adds r0, r4, 0 bl sub_81D28FC adds r0, r4, 0 bl sub_81D2ACC pop {r4} pop {r0} bx r0 thumb_func_end sub_81D2BD0 thumb_func_start sub_81D2BF4 sub_81D2BF4: @ 81D2BF4 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 movs r0, 0x3 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] bl GetPlayerTextSpeedDelay adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r1, 0x1 adds r2, r4, 0 bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D2BF4 thumb_func_start sub_81D2C3C sub_81D2C3C: @ 81D2C3C push {lr} bl RunTextPrinters movs r0, 0x3 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81D2C3C thumb_func_start sub_81D2C50 sub_81D2C50: @ 81D2C50 push {lr} ldr r0, =gUnknown_08625540 movs r1, 0x1 movs r2, 0xE movs r3, 0 bl CreateYesNoMenu pop {r0} bx r0 .pool thumb_func_end sub_81D2C50 thumb_func_start sub_81D2C68 sub_81D2C68: @ 81D2C68 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r0, 0xE bne _081D2CA8 cmp r2, 0x2 beq _081D2C7E cmp r2, 0x7 bne _081D2C94 _081D2C7E: movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r2, 0 adds r2, r3, 0 bl GetMonData b _081D2CCA .pool _081D2C94: movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r2, 0 bl GetMonData b _081D2CCA .pool _081D2CA8: cmp r2, 0x2 beq _081D2CB0 cmp r2, 0x7 bne _081D2CBE _081D2CB0: lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl GetAndCopyBoxMonDataAt b _081D2CCA _081D2CBE: lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl GetBoxMonDataAt _081D2CCA: pop {r1} bx r1 thumb_func_end sub_81D2C68 thumb_func_start sub_81D2CD0 sub_81D2CD0: @ 81D2CD0 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r6, r2, 16 movs r0, 0xFC strb r0, [r5] adds r5, 0x1 movs r0, 0x4 strb r0, [r5] adds r5, 0x1 movs r0, 0x8 strb r0, [r5] adds r5, 0x1 movs r0, 0 strb r0, [r5] adds r5, 0x1 movs r0, 0x9 strb r0, [r5] adds r5, 0x1 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x2D movs r3, 0 bl sub_81D2C68 cmp r0, 0 beq _081D2D20 ldr r1, =gText_EggNickname adds r0, r5, 0 movs r2, 0 movs r3, 0xC bl StringCopyPadded b _081D2E70 .pool _081D2D20: adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x2 adds r3, r5, 0 bl sub_81D2C68 adds r0, r5, 0 bl StringGetEnd10 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xB movs r3, 0 bl sub_81D2C68 lsls r0, 16 lsrs r7, r0, 16 cmp r4, 0xE bne _081D2D70 movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x38 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r4, 0 bl GetMonGender lsls r0, 24 lsrs r6, r0, 24 b _081D2D92 .pool _081D2D70: lsls r0, r4, 24 lsrs r0, 24 lsls r1, r6, 24 lsrs r1, 24 bl GetBoxedMonPtr adds r4, r0, 0 bl GetBoxMonGender lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 bl GetLevelFromBoxMonExp lsls r0, 24 lsrs r0, 24 mov r8, r0 _081D2D92: cmp r7, 0x1D beq _081D2D9A cmp r7, 0x20 bne _081D2DB0 _081D2D9A: movs r0, 0xB adds r1, r7, 0 muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r5, 0 bl StringCompare cmp r0, 0 bne _081D2DB0 movs r6, 0xFF _081D2DB0: adds r3, r5, 0 b _081D2DBA .pool _081D2DB8: adds r3, 0x1 _081D2DBA: ldrb r0, [r3] cmp r0, 0xFF bne _081D2DB8 movs r1, 0xFC strb r1, [r3] adds r3, 0x1 movs r0, 0x12 strb r0, [r3] adds r3, 0x1 movs r0, 0x3C strb r0, [r3] adds r3, 0x1 cmp r6, 0 beq _081D2DDE cmp r6, 0xFE beq _081D2E02 movs r0, 0 b _081D2E24 _081D2DDE: strb r1, [r3] adds r3, 0x1 movs r0, 0x1 strb r0, [r3] adds r3, 0x1 movs r0, 0x4 strb r0, [r3] adds r3, 0x1 strb r1, [r3] adds r3, 0x1 movs r0, 0x3 strb r0, [r3] adds r3, 0x1 movs r0, 0x5 strb r0, [r3] adds r3, 0x1 movs r0, 0xB5 b _081D2E24 _081D2E02: strb r1, [r3] adds r3, 0x1 movs r0, 0x1 strb r0, [r3] adds r3, 0x1 movs r0, 0x6 strb r0, [r3] adds r3, 0x1 strb r1, [r3] adds r3, 0x1 movs r0, 0x3 strb r0, [r3] adds r3, 0x1 movs r0, 0x7 strb r0, [r3] adds r3, 0x1 movs r0, 0xB6 _081D2E24: strb r0, [r3] adds r3, 0x1 movs r0, 0xFC strb r0, [r3] adds r3, 0x1 movs r0, 0x4 strb r0, [r3] adds r3, 0x1 movs r0, 0x8 strb r0, [r3] adds r3, 0x1 movs r4, 0 strb r4, [r3] adds r3, 0x1 movs r0, 0x9 strb r0, [r3] adds r3, 0x1 movs r0, 0xBA strb r0, [r3] adds r3, 0x1 movs r0, 0xF9 strb r0, [r3] adds r3, 0x1 movs r0, 0x5 strb r0, [r3] adds r3, 0x1 adds r0, r3, 0 mov r1, r8 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r3, r0, 0 strb r4, [r3] adds r3, 0x1 movs r0, 0xFF strb r0, [r3] adds r0, r3, 0 _081D2E70: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81D2CD0 thumb_func_start sub_81D2E7C sub_81D2E7C: @ 81D2E7C push {r4,lr} adds r4, r0, 0 lsls r2, 16 lsrs r2, 16 b _081D2E94 _081D2E86: strb r3, [r4] adds r1, 0x1 adds r4, 0x1 lsls r0, r2, 16 ldr r2, =0xffff0000 adds r0, r2 lsrs r2, r0, 16 _081D2E94: ldrb r3, [r1] adds r0, r3, 0 cmp r0, 0xFF bne _081D2E86 adds r1, r2, 0 lsls r0, r1, 16 ldr r2, =0xffff0000 adds r0, r2 lsrs r2, r0, 16 lsls r1, 16 cmp r1, 0 ble _081D2EC2 movs r3, 0 _081D2EAE: strb r3, [r4] adds r4, 0x1 adds r1, r2, 0 lsls r0, r1, 16 ldr r2, =0xffff0000 adds r0, r2 lsrs r2, r0, 16 lsls r1, 16 cmp r1, 0 bgt _081D2EAE _081D2EC2: movs r0, 0xFF strb r0, [r4] adds r0, r4, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81D2E7C thumb_func_start sub_81D2ED4 sub_81D2ED4: @ 81D2ED4 push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, [sp, 0x14] ldr r1, [sp, 0x18] ldr r4, [sp, 0x1C] lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r0, r1, 16 lsls r4, 24 cmp r4, 0 bne _081D2EFC subs r0, 0x1 lsls r0, 16 lsrs r0, 16 _081D2EFC: cmp r2, r0 beq _081D2F42 adds r0, r6, 0 adds r1, r7, 0 adds r2, r3, 0 bl sub_81D2CD0 movs r0, 0xFC strb r0, [r5] movs r0, 0x4 strb r0, [r5, 0x1] movs r0, 0x8 strb r0, [r5, 0x2] movs r0, 0 strb r0, [r5, 0x3] movs r0, 0x9 strb r0, [r5, 0x4] cmp r7, 0xE bne _081D2F2C adds r0, r5, 0x5 ldr r1, =gText_InParty b _081D2F3A .pool _081D2F2C: adds r4, r5, 0x5 lsls r0, r7, 24 lsrs r0, 24 bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 _081D2F3A: movs r2, 0x8 bl sub_81D2E7C b _081D2F72 _081D2F42: movs r1, 0 movs r2, 0 _081D2F46: adds r0, r6, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xB bls _081D2F46 adds r1, r6, r1 movs r0, 0xFF strb r0, [r1] movs r1, 0 movs r2, 0 _081D2F5E: adds r0, r5, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x7 bls _081D2F5E adds r1, r5, r1 movs r0, 0xFF strb r0, [r1] _081D2F72: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D2ED4 thumb_func_start sub_81D2F78 sub_81D2F78: @ 81D2F78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 mov r10, r1 ldr r0, [sp, 0x20] ldr r1, [sp, 0x24] ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r6, r3, 16 lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r4, 16 lsrs r0, r4, 16 lsls r5, 24 cmp r5, 0 bne _081D2FB0 subs r0, 0x1 lsls r0, 16 lsrs r0, 16 _081D2FB0: cmp r2, r0 beq _081D305C adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x16 movs r3, 0 bl sub_81D2C68 mov r1, r9 lsls r5, r1, 2 adds r4, r5, r1 mov r2, r8 adds r1, r2, r4 strb r0, [r1] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x2F movs r3, 0 bl sub_81D2C68 mov r1, r8 adds r1, 0x1 adds r1, r4 strb r0, [r1] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x21 movs r3, 0 bl sub_81D2C68 mov r1, r8 adds r1, 0x2 adds r1, r4 strb r0, [r1] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x18 movs r3, 0 bl sub_81D2C68 mov r1, r8 adds r1, 0x3 adds r1, r4 strb r0, [r1] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x17 movs r3, 0 bl sub_81D2C68 mov r1, r8 adds r1, 0x4 adds r1, r4 strb r0, [r1] mov r4, r10 add r4, r9 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x30 movs r3, 0 bl sub_81D2C68 cmp r0, 0xFF beq _081D3044 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x30 movs r3, 0 bl sub_81D2C68 movs r1, 0x1D bl __udivsi3 b _081D3046 _081D3044: movs r0, 0x9 _081D3046: strb r0, [r4] mov r0, r9 adds r1, r5, r0 mov r2, r8 adds r0, r2, r1 lsls r1, 2 adds r1, 0x14 add r1, r8 bl sub_81D2754 b _081D3086 _081D305C: movs r2, 0 mov r0, r9 lsls r5, r0, 2 adds r1, r5, r0 movs r6, 0 lsls r3, r1, 2 movs r5, 0x9B movs r4, 0x5B _081D306C: adds r0, r2, r1 add r0, r8 strb r6, [r0] lsls r0, r2, 2 adds r0, r3 add r0, r8 strh r5, [r0, 0x14] strh r4, [r0, 0x16] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x4 bls _081D306C _081D3086: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D2F78 thumb_func_start sub_81D3094 sub_81D3094: @ 81D3094 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 mov r9, r1 ldr r0, [sp, 0x20] ldr r1, [sp, 0x24] ldr r4, [sp, 0x28] lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r5, r3, 16 lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r0, r1, 16 lsls r4, 24 cmp r4, 0 bne _081D30C4 subs r0, 0x1 lsls r0, 16 lsrs r0, 16 _081D30C4: cmp r2, r0 beq _081D311A adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x41 movs r3, 0 bl sub_81D2C68 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_81D2C68 adds r6, r0, 0 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0 bl sub_81D2C68 adds r5, r0, 0 lsls r0, r4, 3 ldr r1, =gMonFrontPicTable adds r0, r1 movs r1, 0x1 str r1, [sp] mov r1, r8 adds r2, r4, 0 adds r3, r5, 0 bl LoadSpecialPokePic adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl GetFrontSpritePalFromSpeciesAndPersonality mov r1, r9 bl LZ77UnCompWram _081D311A: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D3094 thumb_func_start sub_81D312C sub_81D312C: @ 81D312C push {lr} adds r1, r0, 0 ldrh r0, [r1] adds r0, 0x18 strh r0, [r1] lsls r0, 16 cmp r0, 0 ble _081D3140 movs r0, 0 strh r0, [r1] _081D3140: movs r0, 0 ldrsh r1, [r1, r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r1} bx r1 thumb_func_end sub_81D312C thumb_func_start sub_81D3150 sub_81D3150: @ 81D3150 push {lr} adds r1, r0, 0 ldrh r0, [r1] subs r0, 0x18 strh r0, [r1] lsls r0, 16 asrs r0, 16 movs r2, 0x50 negs r2, r2 cmp r0, r2 bge _081D3168 strh r2, [r1] _081D3168: movs r0, 0 ldrsh r1, [r1, r0] eors r1, r2 negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r1} bx r1 thumb_func_end sub_81D3150 thumb_func_start sub_81D3178 sub_81D3178: @ 81D3178 push {r4,r5,lr} adds r5, r1, 0 bl sub_81D2074 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_81D312C lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0 bne _081D319A cmp r0, 0 beq _081D319C _081D319A: movs r1, 0x1 _081D319C: adds r0, r1, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D3178 thumb_func_start sub_81D31A4 sub_81D31A4: @ 81D31A4 push {r4,r5,lr} adds r5, r1, 0 bl sub_81D2074 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_81D3150 lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0 bne _081D31C6 cmp r0, 0 beq _081D31C8 _081D31C6: movs r1, 0x1 _081D31C8: adds r0, r1, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D31A4 thumb_func_start sub_81D31D0 sub_81D31D0: @ 81D31D0 push {r4-r7,lr} sub sp, 0x20 ldr r3, =gUnknown_08625A48 ldr r4, [r3] ldr r5, [r3, 0x4] str r4, [sp, 0x18] str r5, [sp, 0x1C] mov r4, sp ldr r3, =gUnknown_08625A50 ldm r3!, {r5-r7} stm r4!, {r5-r7} ldm r3!, {r5-r7} stm r4!, {r5-r7} ldr r3, =gUnknown_08625A68 ldr r4, [r3, 0x4] ldr r3, [r3] ldr r5, [sp, 0x18] ldr r6, [sp, 0x1C] str r5, [r0] str r6, [r0, 0x4] mov r0, sp ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} str r3, [r2] str r4, [r2, 0x4] add sp, 0x20 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D31D0 thumb_func_start sub_81D321C sub_81D321C: @ 81D321C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x50 adds r5, r0, 0 mov r12, r1 mov r8, r2 mov r1, sp ldr r0, =gUnknown_08625A70 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3,r4} stm r1!, {r3,r4} add r3, sp, 0x20 adds r1, r3, 0 ldr r0, =gUnknown_08625A90 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} add r2, sp, 0x38 adds r1, r2, 0 ldr r0, =gUnknown_08625AA8 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} movs r4, 0 _081D3258: lsls r0, r4, 3 add r0, sp ldr r1, [r0, 0x4] ldr r0, [r0] stm r5!, {r0,r1} adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081D3258 mov r1, r12 adds r0, r2, 0 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} movs r4, 0 _081D327A: lsls r0, r4, 3 adds r0, r3, r0 ldr r1, [r0, 0x4] ldr r0, [r0] mov r5, r8 adds r5, 0x8 mov r8, r5 subs r5, 0x8 stm r5!, {r0,r1} adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081D327A add sp, 0x50 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D321C thumb_func_start sub_81D32B0 sub_81D32B0: @ 81D32B0 push {r4,r5,lr} ldr r2, =gUnknown_08625AC0 ldr r4, [r2] ldr r5, [r2, 0x4] ldr r2, =gUnknown_08625AC8 ldr r3, [r2, 0x4] ldr r2, [r2] str r4, [r0] str r5, [r0, 0x4] str r2, [r1] str r3, [r1, 0x4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D32B0 thumb_func_start sub_81D32D4 sub_81D32D4: @ 81D32D4 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _081D32F0 movs r0, 0 strh r0, [r1, 0x30] adds r0, r1, 0 bl sub_81D3408 _081D32F0: pop {r0} bx r0 thumb_func_end sub_81D32D4 thumb_func_start sub_81D32F4 sub_81D32F4: @ 81D32F4 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081D330C movs r0, 0 strh r0, [r2, 0x30] ldr r0, =sub_81D32D4 str r0, [r2, 0x1C] _081D330C: pop {r0} bx r0 .pool thumb_func_end sub_81D32F4 thumb_func_start sub_81D3314 sub_81D3314: @ 81D3314 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x36 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites adds r3, r1, r0 cmp r3, 0 beq _081D3360 ldrh r1, [r3, 0x24] ldrh r2, [r3, 0x20] adds r1, r2 ldr r2, =gUnknown_08625B2C movs r5, 0x2E ldrsh r0, [r4, r5] lsls r0, 2 adds r0, r2 ldrh r0, [r0] adds r0, r1 strh r0, [r4, 0x20] ldrh r1, [r3, 0x26] ldrh r3, [r3, 0x22] adds r1, r3 movs r3, 0x2E ldrsh r0, [r4, r3] lsls r0, 2 adds r2, 0x2 adds r0, r2 ldrh r0, [r0] adds r0, r1 b _081D337E .pool _081D3360: ldr r1, =gUnknown_08625B2C movs r5, 0x2E ldrsh r0, [r4, r5] lsls r0, 2 adds r0, r1 ldrh r0, [r0] adds r0, 0x28 strh r0, [r4, 0x20] movs r2, 0x2E ldrsh r0, [r4, r2] lsls r0, 2 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] adds r0, 0x68 _081D337E: strh r0, [r4, 0x22] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D3314 thumb_func_start sub_81D338C sub_81D338C: @ 81D338C push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r2 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 movs r5, 0 _081D339E: lsls r0, r5, 2 mov r1, r8 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _081D33F0 strh r5, [r0, 0x2E] ldr r1, [r4] lsls r0, r5, 4 adds r0, 0x1 strh r0, [r1, 0x30] ldr r0, [r4] strh r6, [r0, 0x32] ldr r0, [r4] strh r5, [r0, 0x34] cmp r7, 0 beq _081D33C4 cmp r6, 0x9 beq _081D33D0 _081D33C4: ldr r1, [r4] ldr r0, =sub_81D3564 str r0, [r1, 0x1C] b _081D33F0 .pool _081D33D0: ldr r0, [r4] bl sub_81D3314 ldr r0, [r4] bl sub_81D35E8 ldr r2, [r4] ldr r0, =sub_81D32F4 str r0, [r2, 0x1C] adds r2, 0x3E ldrb r0, [r2] movs r3, 0x5 negs r3, r3 adds r1, r3, 0 ands r0, r1 strb r0, [r2] _081D33F0: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _081D339E pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D338C thumb_func_start sub_81D3408 sub_81D3408: @ 81D3408 push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] lsls r0, 24 lsrs r2, r0, 24 movs r3, 0 movs r1, 0x32 ldrsh r0, [r4, r1] adds r0, 0x1 cmp r3, r0 bge _081D3454 ldr r5, =gSprites movs r7, 0x1C adds r7, r5 mov r12, r7 ldr r6, =sub_81D3564 _081D3428: lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r2, r1, r5 movs r7, 0x2E ldrsh r0, [r2, r7] lsls r0, 4 adds r0, 0x1 strh r0, [r2, 0x30] add r1, r12 str r6, [r1] ldrh r0, [r2, 0x38] lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 movs r1, 0x32 ldrsh r0, [r4, r1] adds r0, 0x1 cmp r3, r0 blt _081D3428 _081D3454: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D3408 thumb_func_start sub_81D3464 sub_81D3464: @ 81D3464 push {lr} adds r2, r0, 0 movs r1, 0 movs r3, 0 _081D346C: lsls r0, r1, 2 adds r0, r2 str r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 bls _081D346C pop {r0} bx r0 thumb_func_end sub_81D3464 thumb_func_start sub_81D3480 sub_81D3480: @ 81D3480 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 movs r0, 0 mov r9, r0 lsrs r7, r2, 24 movs r5, 0 adds r0, r7, 0x1 cmp r9, r0 bge _081D34FE _081D34A2: ldr r0, =gUnknown_08625B14 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 cmp r3, 0x40 beq _081D34FE lsls r0, r5, 2 mov r1, r8 adds r4, r0, r1 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r4] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r4] mov r1, r10 strh r1, [r0, 0x36] cmp r5, 0 beq _081D34F0 subs r0, r4, 0x4 ldr r0, [r0] strh r3, [r0, 0x38] b _081D34F2 .pool _081D34F0: mov r9, r6 _081D34F2: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r7, 0x1 cmp r5, r0 blt _081D34A2 _081D34FE: lsls r0, r7, 2 add r0, r8 ldr r0, [r0] mov r1, r9 strh r1, [r0, 0x38] adds r0, r7, 0 movs r1, 0x1 mov r2, r8 bl sub_81D338C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D3480 thumb_func_start sub_81D3520 sub_81D3520: @ 81D3520 push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 _081D3526: cmp r5, 0x9 bhi _081D3544 lsls r0, r5, 2 adds r4, r0, r6 ldr r0, [r4] cmp r0, 0 beq _081D3544 bl DestroySprite movs r0, 0 str r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 b _081D3526 _081D3544: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81D3520 thumb_func_start sub_81D354C sub_81D354C: @ 81D354C push {lr} bl sub_81D3520 movs r0, 0x68 bl FreeSpriteTilesByTag movs r0, 0x68 bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end sub_81D354C thumb_func_start sub_81D3564 sub_81D3564: @ 81D3564 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _081D3592 subs r0, r1, 0x1 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bne _081D35DC adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _081D3592: adds r0, r4, 0 bl sub_81D3314 adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081D35DC adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r1, r0 bne _081D35D8 cmp r1, 0x9 bne _081D35D0 adds r0, r4, 0 bl sub_81D35E8 ldr r0, =sub_81D32F4 b _081D35DA .pool _081D35D0: ldr r0, =sub_81D32D4 b _081D35DA .pool _081D35D8: ldr r0, =SpriteCallbackDummy _081D35DA: str r0, [r4, 0x1C] _081D35DC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D3564 thumb_func_start sub_81D35E8 sub_81D35E8: @ 81D35E8 push {r4-r7,lr} adds r6, r0, 0 ldrh r0, [r6, 0x38] lsls r0, 24 lsrs r1, r0, 24 movs r5, 0 movs r2, 0x32 ldrsh r0, [r6, r2] adds r0, 0x1 cmp r5, r0 bge _081D3636 movs r0, 0x5 negs r0, r0 adds r7, r0, 0 _081D3604: lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim adds r1, r4, 0 adds r1, 0x3E ldrb r0, [r1] ands r0, r7 strb r0, [r1] ldrh r0, [r4, 0x38] lsls r0, 24 lsrs r1, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x32 ldrsh r0, [r6, r2] adds r0, 0x1 cmp r5, r0 blt _081D3604 _081D3636: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D35E8 thumb_func_start sub_81D3640 sub_81D3640: @ 81D3640 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r8, r0 adds r6, r1, 0 adds r5, r2, 0 adds r4, r3, 0 ldr r3, [sp, 0x4C] ldr r0, [sp, 0x50] mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, r4, 4 orrs r1, r4 lsls r1, 24 lsrs r1, 24 str r3, [sp, 0x28] bl FillWindowPixelBuffer add r2, sp, 0xC ldrh r0, [r5] ldrh r1, [r6] subs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x2] ldrh r1, [r6, 0x2] subs r0, r1 strh r0, [r2, 0x2] ldrh r0, [r5, 0x4] ldrh r1, [r6, 0x4] subs r0, r1 strh r0, [r2, 0x4] ldrh r0, [r5, 0x8] ldrh r1, [r6, 0x8] subs r0, r1 strh r0, [r2, 0x6] ldrh r0, [r5, 0xA] ldrh r1, [r6, 0xA] subs r0, r1 strh r0, [r2, 0x8] ldrh r0, [r5, 0x6] ldrh r1, [r6, 0x6] subs r0, r1 strh r0, [r2, 0xA] add r0, sp, 0x24 strb r4, [r0] ldr r3, [sp, 0x28] strb r3, [r0, 0x1] mov r1, r9 strb r1, [r0, 0x2] movs r7, 0 mov r10, r0 movs r0, 0x1 negs r0, r0 mov r9, r0 add r6, sp, 0x18 _081D36CA: lsls r0, r7, 4 subs r0, r7 lsls r0, 24 lsrs r5, r0, 24 mov r1, r10 str r1, [sp] mov r0, r9 str r0, [sp, 0x4] ldr r1, =gUnknown_08625B54 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x8] mov r0, r8 movs r1, 0x1 movs r2, 0 adds r3, r5, 0 bl AddTextPrinterParameterized3 lsls r0, r7, 1 mov r4, sp adds r4, r0 adds r4, 0xC movs r1, 0 ldrsh r0, [r4, r1] ldr r1, =gText_Dash cmp r0, 0 blt _081D3704 ldr r1, =gText_UnkCtrlF904 _081D3704: adds r0, r6, 0 bl StringCopy mov r0, r10 str r0, [sp] mov r1, r9 str r1, [sp, 0x4] str r6, [sp, 0x8] mov r0, r8 movs r1, 0x1 movs r2, 0x38 adds r3, r5, 0 bl AddTextPrinterParameterized3 movs r0, 0 ldrsh r1, [r4, r0] adds r0, r1, 0 cmp r1, 0 bge _081D372C negs r0, r1 _081D372C: movs r4, 0xC cmp r0, 0x9 bgt _081D3734 movs r4, 0x12 _081D3734: cmp r1, 0 bge _081D373A negs r1, r1 _081D373A: adds r0, r6, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r4, 0 adds r2, 0x38 mov r1, r10 str r1, [sp] mov r0, r9 str r0, [sp, 0x4] str r6, [sp, 0x8] mov r0, r8 movs r1, 0x1 adds r3, r5, 0 bl AddTextPrinterParameterized3 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _081D36CA add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D3640 thumb_func_start sub_81D3784 sub_81D3784: @ 81D3784 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 adds r6, r3, 0 ldr r2, [sp, 0x4C] lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 lsls r2, 24 lsrs r2, 24 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, r4, 4 orrs r1, r4 lsls r1, 24 lsrs r1, 24 str r2, [sp, 0x28] bl FillWindowPixelBuffer add r1, sp, 0xC ldrh r0, [r5] strh r0, [r1] ldrh r0, [r5, 0x2] strh r0, [r1, 0x2] ldrh r0, [r5, 0x4] strh r0, [r1, 0x4] ldrh r0, [r5, 0x8] strh r0, [r1, 0x6] ldrh r0, [r5, 0xA] strh r0, [r1, 0x8] ldrh r0, [r5, 0x6] strh r0, [r1, 0xA] add r0, sp, 0x24 strb r4, [r0] strb r6, [r0, 0x1] ldr r2, [sp, 0x28] strb r2, [r0, 0x2] movs r6, 0 add r1, sp, 0x18 mov r9, r1 mov r7, r8 mov r10, r0 movs r2, 0x1 negs r2, r2 mov r8, r2 _081D37EE: lsls r1, r6, 1 mov r0, sp adds r0, r1 adds r0, 0xC movs r2, 0 ldrsh r0, [r0, r2] movs r4, 0x3 cmp r0, 0x63 bgt _081D3808 movs r4, 0x1 cmp r0, 0x9 ble _081D3808 movs r4, 0x2 _081D3808: mov r0, sp adds r0, r1 adds r0, 0xC movs r2, 0 ldrsh r1, [r0, r2] mov r0, r9 movs r2, 0 adds r3, r4, 0 bl ConvertIntToDecimalStringN movs r0, 0x4 subs r0, r4 lsls r4, r0, 1 adds r4, r0 lsls r4, 17 lsrs r4, 16 lsls r5, r6, 4 subs r5, r6 lsls r5, 24 lsrs r5, 24 mov r0, r10 str r0, [sp] mov r1, r8 str r1, [sp, 0x4] ldr r1, =gUnknown_08625B54 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 movs r2, 0 adds r3, r5, 0 bl AddTextPrinterParameterized3 adds r4, 0x38 lsls r4, 24 lsrs r4, 24 mov r2, r10 str r2, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 adds r2, r4, 0 adds r3, r5, 0 bl AddTextPrinterParameterized3 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _081D37EE add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D3784 thumb_func_start sub_81D388C sub_81D388C: @ 81D388C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0x3A bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x3B bl GetMonData strh r0, [r5, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData strh r0, [r5, 0x4] adds r0, r4, 0 movs r1, 0x3D bl GetMonData strh r0, [r5, 0x6] adds r0, r4, 0 movs r1, 0x3E bl GetMonData strh r0, [r5, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData strh r0, [r5, 0xA] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81D388C thumb_func_start sub_81D38D4 sub_81D38D4: @ 81D38D4 push {lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d6d adds r0, r1 ldrb r1, [r0] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 8 lsls r0, 8 subs r0, r2, r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_81D38D4 thumb_func_start sub_81D38FC sub_81D38FC: @ 81D38FC push {r4,r5,lr} adds r4, r0, 0 movs r5, 0x9C lsls r5, 2 adds r1, r5, 0 bl CalcByteArraySum adds r4, r5 ldr r1, [r4] cmp r0, r1 bne _081D3916 movs r0, 0x1 b _081D3918 _081D3916: movs r0, 0 _081D3918: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D38FC thumb_func_start sub_81D3920 sub_81D3920: @ 81D3920 push {r4-r7,lr} adds r7, r0, 0 ldrb r6, [r7] subs r0, r6, 0x1 cmp r0, 0x7 bhi _081D3964 movs r5, 0 cmp r5, r6 bcs _081D394C adds r4, r7, 0 adds r4, 0x8 _081D3936: adds r0, r4, 0 bl sub_81D38FC cmp r0, 0 beq _081D3964 movs r0, 0x9D lsls r0, 2 adds r4, r0 adds r5, 0x1 cmp r5, r6 bcc _081D3936 _081D394C: adds r0, r7, 0 adds r0, 0x8 movs r1, 0x9D lsls r1, 2 muls r1, r6 bl CalcByteArraySum ldr r1, [r7, 0x4] cmp r0, r1 bne _081D3964 movs r0, 0x1 b _081D3966 _081D3964: movs r0, 0 _081D3966: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81D3920 thumb_func_start sub_81D396C sub_81D396C: @ 81D396C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] subs r0, 0x1 cmp r0, 0x7 bhi _081D398E adds r0, r4, 0 adds r0, 0x8 movs r1, 0xEE lsls r1, 4 bl CalcByteArraySum ldr r1, [r4, 0x4] cmp r0, r1 bne _081D398E movs r0, 0x1 b _081D3990 _081D398E: movs r0, 0 _081D3990: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D396C thumb_func_start sub_81D3998 sub_81D3998: @ 81D3998 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 mov r8, r1 movs r2, 0x80 lsls r2, 5 mov r0, r8 movs r1, 0 bl memset ldrb r0, [r7] mov r1, r8 strb r0, [r1] bl sub_81D38D4 mov r2, r8 strb r0, [r2, 0x1] ldrb r0, [r7] adds r0, 0x1 asrs r0, 1 strb r0, [r2, 0x2] movs r6, 0 b _081D3A42 _081D39C8: movs r0, 0x1 ands r0, r6 cmp r0, 0 bne _081D3A14 lsrs r0, r6, 31 adds r0, r6, r0 asrs r0, 1 lsls r4, r0, 4 subs r4, r0 lsls r4, 3 subs r4, r0 lsls r4, 3 add r4, r8 movs r0, 0x9D lsls r0, 2 adds r5, r6, 0 muls r5, r0 adds r5, r7, r5 ldrb r0, [r5, 0x8] strb r0, [r4, 0x8] movs r1, 0xA7 lsls r1, 2 adds r0, r4, r1 movs r2, 0xAA lsls r2, 1 adds r1, r5, r2 subs r2, 0x30 bl memcpy adds r4, 0xC adds r5, 0xC adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA4 lsls r2, 1 bl memcpy b _081D3A40 _081D3A14: lsrs r1, r6, 31 adds r1, r6, r1 asrs r1, 1 lsls r0, r1, 4 subs r0, r1 lsls r0, 3 subs r0, r1 lsls r0, 3 add r0, r8 movs r1, 0x9D lsls r1, 2 muls r1, r6 adds r1, r7, r1 ldrb r2, [r1, 0x8] strb r2, [r0, 0x9] movs r2, 0xAA lsls r2, 1 adds r0, r2 adds r1, 0xC subs r2, 0xC bl memcpy _081D3A40: adds r6, 0x1 _081D3A42: ldrb r0, [r7] cmp r6, r0 blt _081D39C8 movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _081D3A7E lsrs r2, r6, 31 adds r2, r6, r2 asrs r2, 1 lsls r0, r2, 4 subs r0, r2 lsls r0, 3 subs r0, r2 lsls r0, 3 add r0, r8 movs r1, 0xAA lsls r1, 1 adds r0, r1 ldr r3, =gUnknown_08625B6C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r2 lsls r1, 3 adds r1, r3 movs r2, 0xA4 lsls r2, 1 bl memcpy _081D3A7E: mov r0, r8 adds r0, 0x8 movs r1, 0xEE lsls r1, 4 bl CalcByteArraySum mov r2, r8 str r0, [r2, 0x4] movs r0, 0x1E mov r1, r8 bl sub_8153634 cmp r0, 0x1 bne _081D3AA4 movs r0, 0x1 b _081D3AA6 .pool _081D3AA4: movs r0, 0 _081D3AA6: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81D3998 thumb_func_start sub_81D3AB0 sub_81D3AB0: @ 81D3AB0 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x80 lsls r0, 5 bl AllocZeroed adds r5, r0, 0 adds r0, r4, 0 adds r1, r5, 0 bl sub_81D3998 adds r4, r0, 0 adds r0, r5, 0 bl Free adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D3AB0 thumb_func_start sub_81D3AD8 sub_81D3AD8: @ 81D3AD8 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0x1E bl TryCopySpecialSaveSection cmp r0, 0x1 bne _081D3B04 ldr r2, =0x00000ee8 adds r0, r5, 0 adds r1, r4, 0 bl memcpy adds r0, r5, 0 bl sub_81D396C cmp r0, 0 beq _081D3B04 movs r0, 0x1 b _081D3B06 .pool _081D3B04: movs r0, 0 _081D3B06: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D3AD8 thumb_func_start sub_81D3B0C sub_81D3B0C: @ 81D3B0C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x80 lsls r0, 5 bl AllocZeroed adds r5, r0, 0 adds r0, r4, 0 adds r1, r5, 0 bl sub_81D3AD8 adds r4, r0, 0 adds r0, r5, 0 bl Free adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D3B0C thumb_func_start sub_81D3B34 sub_81D3B34: @ 81D3B34 push {r4,r5,lr} movs r0, 0x80 lsls r0, 5 bl AllocZeroed adds r4, r0, 0 bl sub_81D3B0C adds r5, r0, 0 adds r0, r4, 0 bl Free adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D3B34 thumb_func_start sub_81D3B54 sub_81D3B54: @ 81D3B54 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 bl sub_81D41A0 movs r7, 0x2 ldr r4, =gShouldAdvanceLinkState _081D3B64: bl sub_81D4170 ldr r0, =gUnknown_030012E2 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081D3B76 strb r7, [r4] _081D3B76: movs r0, 0x1 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0 bl sub_81D3D70 adds r1, r0, 0 ldr r0, =gUnknown_030012E4 strh r1, [r0] movs r0, 0x13 ands r0, r1 cmp r0, 0x10 bne _081D3BA0 movs r4, 0 b _081D3BC2 .pool _081D3BA0: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081D3BAC movs r4, 0x1 b _081D3BC2 _081D3BAC: movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _081D3BC0 strb r0, [r4] bl VBlankIntrWait b _081D3B64 _081D3BC0: movs r4, 0x2 _081D3BC2: movs r0, 0 str r0, [sp] ldr r1, =gUnknown_030012C8 ldr r2, =0x05000006 mov r0, sp bl CpuSet bl sub_81D41F4 adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81D3B54 thumb_func_start sub_81D3BE8 sub_81D3BE8: @ 81D3BE8 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 bl sub_81D41A0 movs r6, 0x2 ldr r4, =gShouldAdvanceLinkState _081D3BF6: bl sub_81D4170 ldr r0, =gUnknown_030012E2 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081D3C08 strb r6, [r4] _081D3C08: movs r0, 0 movs r1, 0 movs r2, 0 adds r3, r5, 0 bl sub_81D3D70 adds r1, r0, 0 ldr r0, =gUnknown_030012E4 strh r1, [r0] movs r0, 0x13 ands r0, r1 cmp r0, 0x10 bne _081D3C34 movs r4, 0 b _081D3C56 .pool _081D3C34: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081D3C40 movs r4, 0x1 b _081D3C56 _081D3C40: movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _081D3C54 strb r0, [r4] bl VBlankIntrWait b _081D3BF6 _081D3C54: movs r4, 0x2 _081D3C56: movs r0, 0 str r0, [sp] ldr r1, =gUnknown_030012C8 ldr r2, =0x05000006 mov r0, sp bl CpuSet bl sub_81D41F4 adds r0, r4, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D3BE8 thumb_func_start sub_81D3C7C sub_81D3C7C: @ 81D3C7C push {r4,lr} ldr r4, =0x04000208 movs r3, 0 strh r3, [r4] ldr r2, =0x04000200 ldrh r1, [r2] ldr r0, =0x0000ff3f ands r0, r1 strh r0, [r2] movs r0, 0x1 strh r0, [r4] ldr r0, =0x04000128 strh r3, [r0] subs r0, 0x1A strh r3, [r0] ldr r1, =0x04000202 movs r0, 0xC0 strh r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D3C7C thumb_func_start sub_81D3CBC sub_81D3CBC: @ 81D3CBC push {r4-r7,lr} sub sp, 0x4 ldr r5, =0x04000208 movs r4, 0 strh r4, [r5] ldr r3, =0x04000200 ldrh r1, [r3] ldr r0, =0x0000ff3f ands r0, r1 strh r0, [r3] movs r6, 0x1 strh r6, [r5] ldr r0, =0x04000134 strh r4, [r0] ldr r2, =0x04000128 movs r1, 0x80 lsls r1, 6 adds r0, r1, 0 strh r0, [r2] ldrh r0, [r2] ldr r7, =0x00004003 adds r1, r7, 0 orrs r0, r1 strh r0, [r2] strh r4, [r5] ldrh r0, [r3] movs r1, 0x80 orrs r0, r1 strh r0, [r3] strh r6, [r5] ldr r1, =gUnknown_030012C8 ldrb r0, [r1, 0x1] cmp r0, 0 bne _081D3D0A str r0, [sp] ldr r2, =0x05000006 mov r0, sp bl CpuSet _081D3D0A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D3CBC thumb_func_start sub_81D3D34 sub_81D3D34: @ 81D3D34 ldr r0, =0x04000134 movs r3, 0 strh r3, [r0] ldr r2, =0x04000128 movs r1, 0xA0 lsls r1, 7 adds r0, r1, 0 strh r0, [r2] ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, =gShouldAdvanceLinkState strb r3, [r0] ldr r0, =gUnknown_030012E6 strh r3, [r0] ldr r1, =gUnknown_030012E8 movs r0, 0 str r0, [r1] bx lr .pool thumb_func_end sub_81D3D34 thumb_func_start sub_81D3D70 sub_81D3D70: @ 81D3D70 push {r4-r6,lr} adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_030012C8 ldrb r0, [r0, 0x1] cmp r0, 0x6 bls _081D3D86 b _081D3ECC _081D3D86: lsls r0, 2 ldr r1, =_081D3D98 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081D3D98: .4byte _081D3DB4 .4byte _081D3DC8 .4byte _081D3DE8 .4byte _081D3DFC .4byte _081D3E74 .4byte _081D3E84 .4byte _081D3EBC _081D3DB4: bl sub_81D3CBC ldr r1, =gUnknown_030012C8 movs r0, 0x1 strb r0, [r1, 0x2] strb r0, [r1, 0x1] b _081D3ECC .pool _081D3DC8: adds r0, r2, 0 bl sub_81D3EE8 lsls r0, 16 cmp r0, 0 beq _081D3DD8 bl sub_81D413C _081D3DD8: ldr r0, =gShouldAdvanceLinkState ldrb r0, [r0] cmp r0, 0x2 beq _081D3DE2 b _081D3ECC _081D3DE2: b _081D3E04 .pool _081D3DE8: bl sub_81D3D34 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_81D3F1C ldr r1, =gUnknown_030012C8 movs r0, 0x3 strb r0, [r1, 0x1] _081D3DFC: ldr r0, =gShouldAdvanceLinkState ldrb r0, [r0] cmp r0, 0x2 bne _081D3E18 _081D3E04: ldr r1, =gUnknown_030012C8 strb r0, [r1, 0x4] movs r0, 0x6 strb r0, [r1, 0x1] b _081D3ECC .pool _081D3E18: ldr r2, =gUnknown_030012E6 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] ldr r1, =gUnknown_030012E8 ldr r0, [r1] adds r3, r0, 0x1 str r3, [r1] ldr r1, =gUnknown_030012C8 ldrb r0, [r1] cmp r0, 0 bne _081D3E3C cmp r3, 0x3C bls _081D3E3C movs r0, 0x1 strb r0, [r1, 0x4] movs r0, 0x6 strb r0, [r1, 0x1] _081D3E3C: ldr r4, =gUnknown_030012C8 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _081D3ECC ldrb r0, [r4] cmp r0, 0 beq _081D3E64 ldrh r0, [r2] cmp r0, 0x2 bls _081D3E64 bl sub_81D413C movs r0, 0x2 b _081D3ECA .pool _081D3E64: bl sub_81D413C ldr r1, =gUnknown_030012C8 movs r0, 0x2 strb r0, [r1, 0x2] b _081D3ECC .pool _081D3E74: bl sub_81D3CBC ldr r1, =gUnknown_030012C8 movs r0, 0x5 strb r0, [r1, 0x1] b _081D3ECC .pool _081D3E84: ldr r0, =gUnknown_030012C8 ldrb r0, [r0] cmp r0, 0x1 bne _081D3E98 ldr r0, =gUnknown_030012E6 ldrh r0, [r0] cmp r0, 0x2 bls _081D3E98 bl sub_81D413C _081D3E98: ldr r1, =gUnknown_030012E6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3C bls _081D3ECC ldr r0, =gUnknown_030012C8 movs r1, 0x1 strb r1, [r0, 0x4] movs r1, 0x6 strb r1, [r0, 0x1] b _081D3ECC .pool _081D3EBC: ldr r4, =gUnknown_030012C8 ldrb r0, [r4, 0x2] cmp r0, 0 beq _081D3ECC bl sub_81D3C7C movs r0, 0 _081D3ECA: strb r0, [r4, 0x2] _081D3ECC: ldr r2, =gUnknown_030012C8 ldrb r0, [r2, 0x2] ldrb r1, [r2, 0x4] lsls r1, 2 orrs r0, r1 ldrb r1, [r2, 0x3] lsls r1, 4 orrs r0, r1 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D3D70 thumb_func_start sub_81D3EE8 sub_81D3EE8: @ 81D3EE8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =0x04000128 ldr r0, [r0] movs r1, 0xC ands r0, r1 cmp r0, 0x8 bne _081D3F0C cmp r2, 0 beq _081D3F0C ldr r1, =gUnknown_030012C8 movs r0, 0x1 b _081D3F10 .pool _081D3F0C: ldr r1, =gUnknown_030012C8 movs r0, 0 _081D3F10: strb r0, [r1] pop {r1} bx r1 .pool thumb_func_end sub_81D3EE8 thumb_func_start sub_81D3F1C sub_81D3F1C: @ 81D3F1C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r3, =gUnknown_030012C8 ldrb r0, [r3] cmp r0, 0 beq _081D3F54 ldr r2, =0x04000128 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] str r5, [r3, 0x8] ldr r0, =0x04000120 str r4, [r0] lsrs r0, r4, 2 adds r0, 0x1 str r0, [r3, 0x10] bl sub_81D3F68 b _081D3F5C .pool _081D3F54: ldr r1, =0x04000128 ldrh r0, [r1] strh r0, [r1] str r2, [r3, 0x8] _081D3F5C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D3F1C thumb_func_start sub_81D3F68 sub_81D3F68: @ 81D3F68 ldr r1, =0x0400010c ldr r2, =0x0000fda7 adds r0, r2, 0 strh r0, [r1] ldr r0, =0x0400010e movs r2, 0x40 strh r2, [r0] ldr r3, =0x04000208 movs r0, 0 strh r0, [r3] adds r1, 0xF4 ldrh r0, [r1] orrs r0, r2 strh r0, [r1] movs r0, 0x1 strh r0, [r3] bx lr .pool thumb_func_end sub_81D3F68 thumb_func_start sub_81D3F9C sub_81D3F9C: @ 81D3F9C push {lr} bl sub_81D414C bl sub_81D413C pop {r0} bx r0 thumb_func_end sub_81D3F9C thumb_func_start sub_81D3FAC sub_81D3FAC: @ 81D3FAC push {r4-r6,lr} sub sp, 0x8 ldr r2, =gUnknown_030012C8 ldrb r0, [r2, 0x1] adds r3, r2, 0 cmp r0, 0x3 beq _081D4034 cmp r0, 0x3 bgt _081D3FC8 cmp r0, 0x1 beq _081D3FD0 b _081D412A .pool _081D3FC8: cmp r0, 0x5 bne _081D3FCE b _081D40FC _081D3FCE: b _081D412A _081D3FD0: ldr r1, =0x0400012a ldr r2, =0x0000ccd0 adds r0, r2, 0 strh r0, [r1] ldr r0, =0x04000120 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r4, 0 ldr r6, =0x0000ccd0 ldr r5, =0x0000ffff _081D3FEC: lsls r0, r1, 1 add r0, sp ldrh r0, [r0] cmp r0, r6 bne _081D4010 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 b _081D401A .pool _081D4010: cmp r0, r5 beq _081D401A adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _081D401A: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _081D3FEC cmp r2, 0x2 beq _081D402A b _081D412A _081D402A: cmp r4, 0 beq _081D4030 b _081D412A _081D4030: strb r2, [r3, 0x1] b _081D412A _081D4034: ldr r0, =0x04000120 ldr r4, [r0] ldr r0, [r2, 0xC] cmp r0, 0 bne _081D404A ldrb r0, [r2] cmp r0, 0 bne _081D404A lsrs r0, r4, 2 adds r0, 0x1 str r0, [r2, 0x10] _081D404A: ldrb r0, [r3] cmp r0, 0x1 bne _081D4080 ldr r1, [r3, 0xC] ldr r0, [r3, 0x10] cmp r1, r0 bge _081D4074 ldr r2, =0x04000120 ldr r0, [r3, 0x8] lsls r1, 2 adds r1, r0 ldr r0, [r1] str r0, [r2] ldr r0, [r3, 0x14] ldr r1, [r1] adds r0, r1 str r0, [r3, 0x14] b _081D40BA .pool _081D4074: ldr r1, =0x04000120 ldr r0, [r3, 0x14] b _081D40B8 .pool _081D4080: ldr r1, [r3, 0xC] cmp r1, 0 ble _081D40A0 ldr r0, [r3, 0x10] adds r0, 0x1 cmp r1, r0 bge _081D40A0 ldr r0, [r3, 0x8] lsls r1, 2 adds r1, r0 subs r1, 0x4 str r4, [r1] ldr r0, [r3, 0x14] adds r0, r4 str r0, [r3, 0x14] b _081D40B4 _081D40A0: ldr r0, [r3, 0xC] cmp r0, 0 beq _081D40B4 ldr r0, [r3, 0x14] cmp r0, r4 bne _081D40B0 movs r0, 0x1 b _081D40B2 _081D40B0: movs r0, 0x2 _081D40B2: strb r0, [r3, 0x3] _081D40B4: ldr r1, =gUnknown_030012E8 movs r0, 0 _081D40B8: str r0, [r1] _081D40BA: ldr r1, [r3, 0xC] adds r1, 0x1 str r1, [r3, 0xC] ldr r0, [r3, 0x10] adds r0, 0x2 cmp r1, r0 bge _081D40EA ldrb r0, [r3] cmp r0, 0 beq _081D40E4 ldr r0, =0x0400010e ldrh r1, [r0] movs r2, 0x80 orrs r1, r2 strh r1, [r0] b _081D412A .pool _081D40E4: bl sub_81D413C b _081D412A _081D40EA: movs r0, 0 movs r1, 0x4 strb r1, [r3, 0x1] ldr r1, =gUnknown_030012E6 strh r0, [r1] b _081D412A .pool _081D40FC: ldrb r3, [r2] cmp r3, 0 bne _081D4108 ldr r1, =0x0400012a ldrb r0, [r2, 0x3] strh r0, [r1] _081D4108: ldr r0, =0x04000120 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r1, [r0, 0x2] subs r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _081D412A cmp r3, 0x1 bne _081D4126 strb r1, [r2, 0x3] _081D4126: movs r0, 0x6 strb r0, [r2, 0x1] _081D412A: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D3FAC thumb_func_start sub_81D413C sub_81D413C: @ 81D413C ldr r0, =0x04000128 ldrh r1, [r0] movs r2, 0x80 orrs r1, r2 strh r1, [r0] bx lr .pool thumb_func_end sub_81D413C thumb_func_start sub_81D414C sub_81D414C: @ 81D414C ldr r2, =0x0400010e ldrh r1, [r2] ldr r0, =0x0000ff7f ands r0, r1 strh r0, [r2] ldr r1, =0x0400010c ldr r2, =0x0000fda7 adds r0, r2, 0 strh r0, [r1] bx lr .pool thumb_func_end sub_81D414C thumb_func_start sub_81D4170 sub_81D4170: @ 81D4170 push {r4,lr} ldr r0, =0x04000130 ldrh r0, [r0] ldr r2, =0x000003ff adds r1, r2, 0 eors r1, r0 ldr r4, =gUnknown_030012E2 ldr r3, =gUnknown_030012E0 ldrh r2, [r3] adds r0, r1, 0 bics r0, r2 strh r0, [r4] strh r1, [r3] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D4170 thumb_func_start sub_81D41A0 sub_81D41A0: @ 81D41A0 ldr r1, =gUnknown_030012EC ldr r0, =0x04000208 ldrh r0, [r0] strh r0, [r1] ldr r1, =gUnknown_030012EE ldr r0, =0x04000200 ldrh r0, [r0] strh r0, [r1] ldr r1, =gUnknown_030012F0 ldr r0, =0x0400010e ldrh r0, [r0] strh r0, [r1] ldr r1, =gUnknown_030012F2 ldr r0, =0x04000128 ldrh r0, [r0] strh r0, [r1] ldr r1, =gUnknown_030012F4 ldr r0, =0x04000134 ldrh r0, [r0] strh r0, [r1] bx lr .pool thumb_func_end sub_81D41A0 thumb_func_start sub_81D41F4 sub_81D41F4: @ 81D41F4 ldr r1, =0x04000208 ldr r0, =gUnknown_030012EC ldrh r0, [r0] strh r0, [r1] subs r1, 0x8 ldr r0, =gUnknown_030012EE ldrh r0, [r0] strh r0, [r1] subs r1, 0xF2 ldr r0, =gUnknown_030012F0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x1A ldr r0, =gUnknown_030012F2 ldrh r0, [r0] strh r0, [r1] adds r1, 0xC ldr r0, =gUnknown_030012F4 ldrh r0, [r0] strh r0, [r1] bx lr .pool thumb_func_end sub_81D41F4 thumb_func_start sub_81D4238 sub_81D4238: @ 81D4238 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, =gUnknown_030012C8 ldr r2, =0x05000006 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_81D4238 thumb_func_start sub_81D4258 sub_81D4258: @ 81D4258 push {lr} sub sp, 0x4 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0x1 mov r3, sp bl TryGetEventObjectIdByLocalIdAndMap mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 .pool thumb_func_end sub_81D4258 thumb_func_start sub_81D427C sub_81D427C: @ 81D427C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} bl sub_81D4258 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r2, =gEventObjects adds r5, r1, r2 ldr r4, =gUnknown_030012F8 ldr r3, =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x14] ldrh r1, [r5, 0x10] subs r0, r1 strh r0, [r4] ldr r4, =gUnknown_030012FA ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x16] ldrh r1, [r5, 0x12] subs r0, r1 strh r0, [r4] movs r0, 0 mov r8, r0 ldr r2, =gUnknown_030012FC movs r1, 0 _081D42CA: mov r3, r8 adds r0, r3, r2 strb r1, [r0] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x3 bls _081D42CA ldr r2, =gEventObjects ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, r0, r2 movs r4, 0x14 ldrsh r1, [r2, r4] movs r6, 0x10 ldrsh r0, [r2, r6] cmp r1, r0 bne _081D4304 movs r0, 0x16 ldrsh r1, [r2, r0] movs r3, 0x12 ldrsh r0, [r2, r3] cmp r1, r0 beq _081D4356 _081D4304: ldr r0, =0x0000403a bl VarGet lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 cmp r1, 0 bne _081D4338 ldrb r1, [r5, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 b _081D433E .pool _081D4338: ldrb r0, [r5, 0x1] movs r1, 0x20 orrs r0, r1 _081D433E: strb r0, [r5, 0x1] ldr r0, =0x0000403a bl VarGet lsls r0, 16 lsrs r0, 16 movs r1, 0x9 bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _081D4360 _081D4356: movs r0, 0 b _081D4816 .pool _081D4360: movs r4, 0 mov r8, r4 ldr r6, =gEventObjects mov r10, r6 _081D4368: ldr r3, =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 mov r1, r10 adds r4, r0, r1 mov r2, r8 lsls r1, r2, 2 ldr r6, =gUnknown_0862608C adds r0, r1, r6 movs r6, 0x14 ldrsh r2, [r4, r6] movs r6, 0 ldrsh r0, [r0, r6] ldr r6, =gEventObjects mov r9, r6 mov r12, r3 adds r7, r1, 0 cmp r2, r0 beq _081D4394 b _081D449E _081D4394: movs r3, 0 ldr r1, =gUnknown_0862608C + 2 adds r0, r7, r1 movs r2, 0x16 ldrsh r1, [r4, r2] movs r4, 0 ldrsh r2, [r0, r4] cmp r1, r2 bge _081D43C0 movs r6, 0x12 ldrsh r0, [r5, r6] cmp r0, r2 bgt _081D43CA b _081D449E .pool _081D43C0: movs r1, 0x12 ldrsh r0, [r5, r1] cmp r0, r2 blt _081D43CA movs r3, 0x1 _081D43CA: cmp r3, 0 bne _081D449E ldr r0, =gUnknown_030012F8 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 ble _081D4410 movs r3, 0x10 ldrsh r2, [r5, r3] adds r2, 0x1 mov r4, r12 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 movs r6, 0x14 ldrsh r0, [r0, r6] cmp r2, r0 bne _081D4446 ldrh r0, [r5, 0x10] adds r0, 0x1 lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r5, r2] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4446 _081D4408: movs r0, 0x4 b _081D4816 .pool _081D4410: cmp r0, 0 bge _081D4446 movs r3, 0x10 ldrsh r2, [r5, r3] subs r2, 0x1 mov r4, r12 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 movs r6, 0x14 ldrsh r0, [r0, r6] cmp r2, r0 bne _081D4446 ldrh r0, [r5, 0x10] subs r0, 0x1 lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r5, r2] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4446 b _081D45AA _081D4446: ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r10 movs r3, 0x10 ldrsh r1, [r5, r3] movs r4, 0x14 ldrsh r0, [r0, r4] cmp r1, r0 bne _081D449E ldr r0, =gUnknown_030012FA movs r6, 0 ldrsh r0, [r0, r6] cmp r0, 0 ble _081D4488 adds r0, r1, 0 ldrh r1, [r5, 0x12] subs r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D449E _081D447C: movs r0, 0x2 b _081D4816 .pool _081D4488: movs r2, 0x10 ldrsh r0, [r5, r2] ldrh r1, [r5, 0x12] adds r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 bne _081D4538 _081D449E: ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 mov r3, r10 adds r4, r0, r3 ldr r6, =gUnknown_0862608C ldr r1, =gUnknown_0862608C + 2 adds r0, r7, r1 movs r3, 0x16 ldrsh r1, [r4, r3] movs r3, 0 ldrsh r0, [r0, r3] ldr r3, =gEventObjects mov r9, r3 mov r12, r2 cmp r1, r0 beq _081D44C6 b _081D45D0 _081D44C6: movs r3, 0 adds r0, r7, r6 movs r6, 0x14 ldrsh r1, [r4, r6] movs r4, 0 ldrsh r2, [r0, r4] cmp r1, r2 bge _081D44F0 movs r6, 0x10 ldrsh r0, [r5, r6] cmp r0, r2 bgt _081D44FA b _081D45D0 .pool _081D44F0: movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, r2 blt _081D44FA movs r3, 0x1 _081D44FA: cmp r3, 0 bne _081D45D0 ldr r0, =gUnknown_030012FA movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 ble _081D4540 movs r3, 0x12 ldrsh r2, [r5, r3] adds r2, 0x1 mov r4, r12 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 movs r6, 0x16 ldrsh r0, [r0, r6] cmp r2, r0 bne _081D4576 movs r1, 0x10 ldrsh r0, [r5, r1] ldrh r1, [r5, 0x12] adds r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4576 _081D4538: movs r0, 0x1 b _081D4816 .pool _081D4540: cmp r0, 0 bge _081D4576 movs r3, 0x12 ldrsh r2, [r5, r3] subs r2, 0x1 mov r4, r12 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 movs r6, 0x16 ldrsh r0, [r0, r6] cmp r2, r0 bne _081D4576 movs r1, 0x10 ldrsh r0, [r5, r1] ldrh r1, [r5, 0x12] subs r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4576 b _081D447C _081D4576: ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r10 movs r2, 0x12 ldrsh r1, [r5, r2] movs r3, 0x16 ldrsh r0, [r0, r3] cmp r1, r0 bne _081D45D0 ldr r0, =gUnknown_030012F8 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 ble _081D45B8 ldrh r0, [r5, 0x10] subs r0, 0x1 lsls r0, 16 asrs r0, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D45D0 _081D45AA: movs r0, 0x3 b _081D4816 .pool _081D45B8: ldrh r0, [r5, 0x10] adds r0, 0x1 lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r5, r2] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D45D0 b _081D4408 _081D45D0: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x3 bhi _081D45E0 b _081D4368 _081D45E0: adds r0, r5, 0 movs r1, 0 bl sub_81D4C14 lsls r0, 24 cmp r0, 0 beq _081D461C adds r0, r5, 0 movs r1, 0x1 bl sub_81D4C58 lsls r0, 24 cmp r0, 0 beq _081D4604 movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D4604: adds r0, r5, 0 movs r1, 0x1 bl sub_81D4CE0 lsls r0, 24 cmp r0, 0 bne _081D4614 b _081D447C _081D4614: movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D461C: adds r0, r5, 0 movs r1, 0 bl sub_81D4C9C lsls r0, 24 cmp r0, 0 beq _081D4658 adds r0, r5, 0 movs r1, 0x1 bl sub_81D4C58 lsls r0, 24 cmp r0, 0 beq _081D4640 movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D4640: adds r0, r5, 0 movs r1, 0x1 bl sub_81D4CE0 lsls r0, 24 cmp r0, 0 bne _081D4650 b _081D4538 _081D4650: movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D4658: adds r0, r5, 0 movs r1, 0 bl sub_81D4C58 lsls r0, 24 cmp r0, 0 beq _081D4694 adds r0, r5, 0 movs r1, 0x1 bl sub_81D4C14 lsls r0, 24 cmp r0, 0 beq _081D467C movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D467C: adds r0, r5, 0 movs r1, 0x1 bl sub_81D4C9C lsls r0, 24 cmp r0, 0 bne _081D468C b _081D4408 _081D468C: movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D4694: adds r0, r5, 0 movs r1, 0 bl sub_81D4CE0 lsls r0, 24 cmp r0, 0 beq _081D46D0 adds r0, r5, 0 movs r1, 0x1 bl sub_81D4C14 lsls r0, 24 cmp r0, 0 beq _081D46B8 movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D46B8: adds r0, r5, 0 movs r1, 0x1 bl sub_81D4C9C lsls r0, 24 cmp r0, 0 bne _081D46C8 b _081D45AA _081D46C8: movs r0, 0x2 bl sub_81D4D24 b _081D4812 _081D46D0: ldr r0, =gUnknown_030012FA movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _081D476E ldr r2, =gEventObjects ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 movs r4, 0x12 ldrsh r1, [r0, r4] ldrh r2, [r5, 0x12] movs r6, 0x12 ldrsh r0, [r5, r6] cmp r1, r0 ble _081D470C movs r1, 0x10 ldrsh r0, [r5, r1] subs r1, r2, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D470C b _081D447C _081D470C: ldr r2, =gEventObjects ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 movs r2, 0x12 ldrsh r1, [r0, r2] ldrh r2, [r5, 0x12] movs r3, 0x12 ldrsh r0, [r5, r3] cmp r1, r0 bge _081D473E movs r4, 0x10 ldrsh r0, [r5, r4] adds r1, r2, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D473E b _081D4538 _081D473E: movs r6, 0x10 ldrsh r0, [r5, r6] ldrh r1, [r5, 0x12] subs r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4756 b _081D447C _081D4756: movs r1, 0x10 ldrsh r0, [r5, r1] ldrh r1, [r5, 0x12] adds r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D476E b _081D4538 _081D476E: ldr r0, =gUnknown_030012F8 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _081D480C ldr r2, =gEventObjects ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x10 ldrsh r1, [r0, r3] ldrh r2, [r5, 0x10] movs r4, 0x10 ldrsh r0, [r5, r4] cmp r1, r0 ble _081D47AA subs r0, r2, 0x1 lsls r0, 16 asrs r0, 16 movs r6, 0x12 ldrsh r1, [r5, r6] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D47AA b _081D45AA _081D47AA: ldr r2, =gEventObjects ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 movs r2, 0x10 ldrsh r1, [r0, r2] ldrh r2, [r5, 0x10] movs r3, 0x10 ldrsh r0, [r5, r3] cmp r1, r0 bge _081D47DC adds r0, r2, 0x1 lsls r0, 16 asrs r0, 16 movs r4, 0x12 ldrsh r1, [r5, r4] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D47DC b _081D4408 _081D47DC: ldrh r0, [r5, 0x10] adds r0, 0x1 lsls r0, 16 asrs r0, 16 movs r6, 0x12 ldrsh r1, [r5, r6] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D47F4 b _081D4408 _081D47F4: ldrh r0, [r5, 0x10] subs r0, 0x1 lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r5, r2] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D480C b _081D45AA _081D480C: movs r0, 0 bl sub_81D4890 _081D4812: lsls r0, 24 lsrs r0, 24 _081D4816: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81D427C thumb_func_start sub_81D4834 sub_81D4834: @ 81D4834 push {r4,lr} lsls r0, 16 lsls r1, 16 lsrs r4, r1, 16 ldr r3, =gEventObjects ldr r1, =gPlayerAvatar ldrb r2, [r1, 0x5] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r2, r1, r3 movs r3, 0x10 ldrsh r1, [r2, r3] lsrs r3, r0, 16 asrs r0, 16 cmp r1, r0 bne _081D4870 movs r0, 0x12 ldrsh r1, [r2, r0] lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 bne _081D4870 movs r0, 0 b _081D4888 .pool _081D4870: lsls r0, r3, 16 asrs r0, 16 lsls r1, r4, 16 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsPokeGrass lsls r0, 24 lsrs r0, 24 _081D4888: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D4834 thumb_func_start sub_81D4890 sub_81D4890: @ 81D4890 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 bl sub_81D4258 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, =gEventObjects adds r4, r1, r0 movs r1, 0 ldr r3, =gUnknown_030012FC movs r2, 0 _081D48B0: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _081D48B0 movs r1, 0x10 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x12] subs r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081D48E8 cmp r6, 0x2 beq _081D48E8 ldr r0, =gUnknown_030012FC adds r0, r5, r0 movs r1, 0x2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081D48E8: ldrh r0, [r4, 0x10] adds r0, 0x1 lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r4, r2] bl sub_81D4834 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081D4912 cmp r6, 0x4 beq _081D4912 ldr r0, =gUnknown_030012FC adds r0, r5, r0 movs r1, 0x4 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081D4912: movs r1, 0x10 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x12] adds r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _081D493A cmp r6, 0x1 beq _081D493A ldr r0, =gUnknown_030012FC adds r0, r5, r0 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081D493A: ldrh r0, [r4, 0x10] subs r0, 0x1 lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r4, r2] bl sub_81D4834 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081D4964 cmp r6, 0x3 beq _081D4964 ldr r0, =gUnknown_030012FC adds r0, r5, r0 movs r1, 0x3 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081D4964: cmp r5, 0x1 bhi _081D4974 ldr r0, =gUnknown_030012FC b _081D4988 .pool _081D4974: ldr r4, =gUnknown_030012FC ldr r0, =0x0000403a bl VarGet lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 adds r0, r4 _081D4988: ldrb r0, [r0] pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D4890 thumb_func_start sub_81D4998 sub_81D4998: @ 81D4998 push {r4,lr} ldr r4, =0x0000403a adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] ldr r0, =0x0000391a cmp r1, r0 bne _081D49E0 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, =0x0000270e cmp r2, r0 bls _081D49D8 adds r0, r4, 0 movs r1, 0 bl VarSet b _081D49E0 .pool _081D49D8: adds r0, r4, 0 adds r1, r2, 0 bl VarSet _081D49E0: pop {r4} pop {r0} bx r0 thumb_func_end sub_81D4998 thumb_func_start EventObjectIsFarawayIslandMew @ bool8 EventObjectIsFarawayIslandMew(struct npc_state *eventObject) EventObjectIsFarawayIslandMew: @ 81D49E8 push {lr} adds r2, r0, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] ldr r0, =0x0000391a cmp r1, r0 bne _081D4A0C ldrb r0, [r2, 0x5] cmp r0, 0xE5 bne _081D4A0C movs r0, 0x1 b _081D4A0E .pool _081D4A0C: movs r0, 0 _081D4A0E: pop {r1} bx r1 thumb_func_end EventObjectIsFarawayIslandMew thumb_func_start IsMewPlayingHideAndSeek IsMewPlayingHideAndSeek: @ 81D4A14 push {lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] ldr r0, =0x0000391a cmp r1, r0 bne _081D4A50 movs r0, 0xE5 lsls r0, 1 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081D4A50 ldr r0, =0x000002ce bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081D4A50 movs r0, 0x1 b _081D4A52 .pool _081D4A50: movs r0, 0 _081D4A52: pop {r1} bx r1 thumb_func_end IsMewPlayingHideAndSeek thumb_func_start sub_81D4A58 sub_81D4A58: @ 81D4A58 push {r4,lr} ldr r4, =0x0000403a adds r0, r4, 0 bl VarGet lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 beq _081D4A88 adds r0, r4, 0 bl VarGet lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 bne _081D4A88 movs r0, 0x1 b _081D4A8A .pool _081D4A88: movs r0, 0 _081D4A8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D4A58 thumb_func_start sub_81D4A90 sub_81D4A90: @ 81D4A90 push {r4-r6,lr} sub sp, 0x4 bl sub_81D4258 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, =gEventObjects adds r5, r1, r0 ldrb r1, [r5, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] ldr r0, =gSpecialVar_0x8004 ldrh r4, [r0] cmp r4, 0x1 bne _081D4AF8 ldrb r0, [r5, 0x3] movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x3] ldr r3, =gSprites ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x42 ldrb r2, [r0] movs r1, 0x3F ands r1, r2 movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x43 strb r4, [r0] b _081D4BC4 .pool _081D4AF8: ldr r0, =0x0000403a ldr r1, =0x0000ffff bl VarSet ldrb r0, [r5, 0x3] movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x3] ldr r6, =gSprites ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x42 ldrb r2, [r0] movs r1, 0x3F ands r1, r2 movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldr r0, =gSpecialVar_Facing ldrh r0, [r0] cmp r0, 0x2 beq _081D4B3A ldrb r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x43 movs r0, 0x1 strb r0, [r1] _081D4B3A: ldr r4, =gFieldEffectObjectPaletteInfo1 adds r0, r4, 0 bl LoadSpritePalette ldrh r0, [r4, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 bl UpdateSpritePaletteWithWeather ldrh r1, [r5, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x12] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_80930E0 ldr r0, =gFieldEffectObjectTemplatePointers ldr r0, [r0, 0x3C] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] ldrb r4, [r5, 0x4] lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r3, r6 adds r3, 0x43 ldrb r3, [r3] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSpriteAtEnd ldr r1, =gUnknown_0203CF50 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081D4BC4 ldrb r0, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, =SpriteCallbackDummy str r0, [r1, 0x1C] _081D4BC4: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D4A90 thumb_func_start sub_81D4BEC sub_81D4BEC: @ 81D4BEC push {lr} ldr r1, =gUnknown_0203CF50 ldrb r0, [r1] cmp r0, 0x40 beq _081D4C06 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite _081D4C06: pop {r0} bx r0 .pool thumb_func_end sub_81D4BEC thumb_func_start sub_81D4C14 sub_81D4C14: @ 81D4C14 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r0, =gUnknown_030012FA movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _081D4C50 movs r1, 0x10 ldrsh r0, [r2, r1] ldrh r1, [r2, 0x12] subs r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4C50 ldr r0, =gUnknown_030012FC adds r0, r4, r0 movs r1, 0x2 strb r1, [r0] movs r0, 0x1 b _081D4C52 .pool _081D4C50: movs r0, 0 _081D4C52: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D4C14 thumb_func_start sub_81D4C58 sub_81D4C58: @ 81D4C58 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r0, =gUnknown_030012F8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _081D4C94 ldrh r0, [r2, 0x10] adds r0, 0x1 lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r2, r3] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4C94 ldr r0, =gUnknown_030012FC adds r0, r4, r0 movs r1, 0x4 strb r1, [r0] movs r0, 0x1 b _081D4C96 .pool _081D4C94: movs r0, 0 _081D4C96: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D4C58 thumb_func_start sub_81D4C9C sub_81D4C9C: @ 81D4C9C push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r0, =gUnknown_030012FA movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _081D4CD8 movs r1, 0x10 ldrsh r0, [r2, r1] ldrh r1, [r2, 0x12] adds r1, 0x1 lsls r1, 16 asrs r1, 16 bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4CD8 ldr r0, =gUnknown_030012FC adds r0, r4, r0 movs r1, 0x1 strb r1, [r0] movs r0, 0x1 b _081D4CDA .pool _081D4CD8: movs r0, 0 _081D4CDA: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D4C9C thumb_func_start sub_81D4CE0 sub_81D4CE0: @ 81D4CE0 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r0, =gUnknown_030012F8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _081D4D1C ldrh r0, [r2, 0x10] subs r0, 0x1 lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r2, r3] bl sub_81D4834 lsls r0, 24 cmp r0, 0 beq _081D4D1C ldr r0, =gUnknown_030012FC adds r0, r4, r0 movs r1, 0x3 strb r1, [r0] movs r0, 0x1 b _081D4D1E .pool _081D4D1C: movs r0, 0 _081D4D1E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D4CE0 thumb_func_start sub_81D4D24 sub_81D4D24: @ 81D4D24 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gUnknown_030012FC ldr r0, =0x0000403a bl VarGet lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 adds r0, r5 ldrb r0, [r0] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81D4D24 thumb_func_start sub_81D4D50 sub_81D4D50: @ 81D4D50 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 mov r1, sp ldr r4, =0x04000208 ldrh r0, [r4] strh r0, [r1] movs r0, 0 strh r0, [r4] ldr r1, =gIntrTable ldr r0, =sub_81D3FAC str r0, [r1, 0x4] ldr r0, =sub_81D3F9C str r0, [r1, 0x8] bl sub_81D41A0 bl sub_81D4238 ldr r2, =0x04000200 ldrh r0, [r2] movs r1, 0x4 orrs r0, r1 strh r0, [r2] mov r0, sp ldrh r0, [r0] strh r0, [r4] movs r0, 0 strh r0, [r5] str r6, [r5, 0x4] mov r0, r8 str r0, [r5, 0x8] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D4D50 thumb_func_start sub_81D4DB8 sub_81D4DB8: @ 81D4DB8 push {r4,lr} sub sp, 0x4 mov r1, sp ldr r4, =0x04000208 ldrh r0, [r4] strh r0, [r1] movs r0, 0 strh r0, [r4] bl sub_81D4238 bl sub_81D41F4 bl RestoreSerialTimer3IntrHandlers mov r0, sp ldrh r0, [r0] strh r0, [r4] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D4DB8 thumb_func_start sub_81D4DE8 sub_81D4DE8: @ 81D4DE8 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 ldr r1, [r4, 0x4] ldr r2, [r4, 0x8] movs r0, 0x1 movs r3, 0 bl sub_81D3D70 adds r1, r0, 0 strh r1, [r4] movs r0, 0x13 ands r0, r1 cmp r0, 0x10 bne _081D4E08 movs r5, 0x1 _081D4E08: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081D4E12 movs r5, 0x2 _081D4E12: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081D4E1C movs r5, 0x3 _081D4E1C: ldr r1, =gShouldAdvanceLinkState movs r0, 0 strb r0, [r1] adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81D4DE8 thumb_func_start sub_81D4E30 sub_81D4E30: @ 81D4E30 push {lr} ldr r0, =gDecompressionBuffer movs r2, 0x80 lsls r2, 6 movs r1, 0 bl memset ldr r1, =gLinkType ldr r2, =0x00005503 adds r0, r2, 0 strh r0, [r1] bl OpenLink movs r0, 0x1 bl SetSuppressLinkErrorMessage pop {r0} bx r0 .pool thumb_func_end sub_81D4E30 thumb_func_start sub_81D4E60 sub_81D4E60: @ 81D4E60 push {lr} sub sp, 0xC mov r1, sp ldr r2, =0x04000208 ldrh r0, [r2] strh r0, [r1] movs r0, 0 strh r0, [r2] ldr r0, =gLink+0x4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x4] str r1, [sp, 0x8] mov r0, sp ldrh r0, [r0] strh r0, [r2] add r2, sp, 0x4 ldrh r1, [r2] ldr r0, =0x0000b9a0 cmp r1, r0 bne _081D4EB8 ldrh r1, [r2, 0x2] ldr r0, =0x0000ccd0 cmp r1, r0 bne _081D4EB8 ldrh r1, [r2, 0x4] ldr r0, =0x0000ffff cmp r1, r0 bne _081D4EB8 ldrh r0, [r2, 0x6] cmp r0, r1 bne _081D4EB8 movs r0, 0x1 b _081D4EBA .pool _081D4EB8: movs r0, 0 _081D4EBA: add sp, 0xC pop {r1} bx r1 thumb_func_end sub_81D4E60 thumb_func_start sub_81D4EC0 sub_81D4EC0: @ 81D4EC0 push {lr} bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _081D4EDC bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _081D4EDC movs r0, 0x1 b _081D4EDE _081D4EDC: movs r0, 0 _081D4EDE: pop {r1} bx r1 thumb_func_end sub_81D4EC0 thumb_func_start sub_81D4EE4 sub_81D4EE4: @ 81D4EE4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _081D4F08 bl HasLinkErrorOccurred lsls r0, 24 cmp r0, 0 beq _081D4F08 movs r0, 0 strb r0, [r4] movs r0, 0x3 b _081D500E _081D4F08: ldrb r0, [r4] cmp r0, 0x5 bls _081D4F10 b _081D500C _081D4F10: lsls r0, 2 ldr r1, =_081D4F20 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081D4F20: .4byte _081D4F38 .4byte _081D4F54 .4byte _081D4F6C .4byte _081D4FA0 .4byte _081D4FEC .4byte _081D4FF8 _081D4F38: bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _081D4F88 bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _081D4F88 movs r0, 0x1 strb r0, [r4] b _081D500C _081D4F54: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bls _081D500C movs r0, 0 strh r0, [r5] movs r0, 0x2 strb r0, [r4] b _081D500C _081D4F6C: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _081D4F88 movs r0, 0x49 bl PlaySE bl CheckShouldAdvanceLinkState movs r0, 0 strh r0, [r5] b _081D4FE6 _081D4F88: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081D500C movs r0, 0 strb r0, [r4] movs r0, 0x1 b _081D500E .pool _081D4FA0: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bls _081D4FB6 movs r0, 0 strb r0, [r4] movs r0, 0x5 b _081D500E _081D4FB6: bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 beq _081D500C ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _081D4FE6 bl IsLinkPlayerDataExchangeComplete lsls r0, 24 cmp r0, 0 beq _081D4FE0 movs r0, 0 strb r0, [r4] movs r0, 0x2 b _081D500E .pool _081D4FE0: movs r0, 0x4 strb r0, [r4] b _081D500C _081D4FE6: movs r0, 0x3 strb r0, [r4] b _081D500C _081D4FEC: movs r0, 0 bl sub_800ABF4 movs r0, 0x5 strb r0, [r4] b _081D500C _081D4FF8: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _081D500C strb r0, [r4] movs r0, 0x4 b _081D500E .pool _081D500C: movs r0, 0 _081D500E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81D4EE4 thumb_func_start sub_81D5014 sub_81D5014: @ 81D5014 push {r4,lr} ldr r0, =sub_81D5084 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 movs r0, 0 strb r0, [r4, 0x8] strb r0, [r4, 0x9] strb r0, [r4, 0xA] strb r0, [r4, 0xB] strb r0, [r4, 0xC] strb r0, [r4, 0xD] movs r1, 0 strh r0, [r4] strh r0, [r4, 0x2] strh r0, [r4, 0x4] strh r0, [r4, 0x6] strb r1, [r4, 0xE] movs r0, 0x40 bl AllocZeroed str r0, [r4, 0x10] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D5014 thumb_func_start sub_81D505C sub_81D505C: @ 81D505C movs r1, 0 strh r1, [r0] bx lr thumb_func_end sub_81D505C thumb_func_start sub_81D5064 sub_81D5064: @ 81D5064 push {lr} adds r2, r0, 0 lsls r1, 16 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 cmp r0, r1 bhi _081D507A movs r0, 0 b _081D5080 _081D507A: movs r0, 0 strh r0, [r2] movs r0, 0x1 _081D5080: pop {r1} bx r1 thumb_func_end sub_81D5064 thumb_func_start sub_81D5084 sub_81D5084: @ 81D5084 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldrb r0, [r4, 0x8] cmp r0, 0x1A bls _081D509C b _081D548A _081D509C: lsls r0, 2 ldr r1, =_081D50B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081D50B0: .4byte _081D511C .4byte _081D5138 .4byte _081D5148 .4byte _081D515C .4byte _081D516C .4byte _081D5198 .4byte _081D51D0 .4byte _081D524C .4byte _081D5268 .4byte _081D5290 .4byte _081D52AC .4byte _081D52DC .4byte _081D52F2 .4byte _081D5308 .4byte _081D536A .4byte _081D5390 .4byte _081D53A8 .4byte _081D53C6 .4byte _081D53F2 .4byte _081D5418 .4byte _081D5448 .4byte _081D5454 .4byte _081D5460 .4byte _081D5430 .4byte _081D548A .4byte _081D548A .4byte _081D5478 _081D511C: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EDFD6 bl mevent_0814257C cmp r0, 0 bne _081D512C b _081D548A _081D512C: movs r0, 0x1 strb r0, [r4, 0x8] b _081D548A .pool _081D5138: bl sub_81D4E30 adds r0, r4, 0 bl sub_81D505C movs r0, 0x2 strb r0, [r4, 0x8] b _081D548A _081D5148: adds r0, r4, 0 movs r1, 0xA bl sub_81D5064 cmp r0, 0 bne _081D5156 b _081D548A _081D5156: movs r0, 0x3 strb r0, [r4, 0x8] b _081D548A _081D515C: bl sub_81D4EC0 cmp r0, 0 beq _081D5166 b _081D52FC _081D5166: bl CloseLink b _081D525C _081D516C: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EDFF5 bl mevent_0814257C cmp r0, 0 bne _081D517C b _081D548A _081D517C: ldr r0, =gUnknown_085EE014 bl sub_8018884 adds r0, r4, 0 bl sub_81D505C movs r0, 0x5 strb r0, [r4, 0x8] b _081D548A .pool _081D5198: adds r0, r4, 0 movs r1, 0x5A bl sub_81D5064 cmp r0, 0 beq _081D51AE bl sub_81D4E30 movs r0, 0x6 strb r0, [r4, 0x8] b _081D548A _081D51AE: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _081D51BC b _081D548A _081D51BC: adds r0, r4, 0 bl sub_81D505C movs r0, 0x5 bl PlaySE b _081D535A .pool _081D51D0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081D51F4 movs r0, 0x5 bl PlaySE bl CloseLink adds r0, r4, 0 bl sub_81D505C b _081D535A .pool _081D51F4: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _081D5210 adds r0, r4, 0 bl sub_81D505C bl CloseLink movs r0, 0x7 strb r0, [r4, 0x8] b _081D548A _081D5210: bl sub_81D4E60 cmp r0, 0 beq _081D522E movs r0, 0x5 bl PlaySE bl CloseLink adds r0, r4, 0 bl sub_81D505C movs r0, 0x8 strb r0, [r4, 0x8] b _081D548A _081D522E: adds r0, r4, 0 movs r1, 0xA bl sub_81D5064 cmp r0, 0 bne _081D523C b _081D548A _081D523C: bl CloseLink bl sub_81D4E30 adds r0, r4, 0 bl sub_81D505C b _081D548A _081D524C: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EE05C bl mevent_0814257C cmp r0, 0 bne _081D525C b _081D548A _081D525C: movs r0, 0x4 strb r0, [r4, 0x8] b _081D548A .pool _081D5268: ldr r0, =gUnknown_085EE097 bl sub_8018884 ldr r0, =gUnknown_03006370 ldr r1, =gMultiBootProgram_BerryGlitchFix_Start ldr r2, =gUnknown_089A3470 subs r1, r2 bl sub_81D4D50 movs r0, 0x9 strb r0, [r4, 0x8] b _081D548A .pool _081D5290: ldr r0, =gUnknown_03006370 bl sub_81D4DE8 strb r0, [r4, 0xE] lsls r0, 24 cmp r0, 0 bne _081D52A0 b _081D548A _081D52A0: movs r0, 0xA strb r0, [r4, 0x8] b _081D548A .pool _081D52AC: ldr r0, =gUnknown_03006370 bl sub_81D4DB8 ldrb r0, [r4, 0xE] cmp r0, 0x3 bne _081D52BA b _081D53C0 _081D52BA: cmp r0, 0x1 beq _081D52C0 b _081D546E _081D52C0: adds r0, r4, 0 bl sub_81D505C ldr r0, =gUnknown_085EE120 bl sub_8018884 movs r0, 0xB strb r0, [r4, 0x8] b _081D548A .pool _081D52DC: movs r1, 0xD2 lsls r1, 2 adds r0, r4, 0 bl sub_81D5064 cmp r0, 0 bne _081D52EC b _081D548A _081D52EC: movs r0, 0xC strb r0, [r4, 0x8] b _081D548A _081D52F2: bl sub_81D4E30 ldr r0, =gUnknown_085EE0DC bl sub_8018884 _081D52FC: movs r0, 0xD strb r0, [r4, 0x8] b _081D548A .pool _081D5308: adds r0, r4, 0 adds r0, 0x9 adds r1, r4, 0 bl sub_81D4EE4 cmp r0, 0x5 bls _081D5318 b _081D548A _081D5318: lsls r0, 2 ldr r1, =_081D5328 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081D5328: .4byte _081D548A .4byte _081D5350 .4byte _081D5340 .4byte _081D5374 .4byte _081D5374 .4byte _081D5360 _081D5340: ldr r0, =gUnknown_085EE097 bl sub_8018884 movs r0, 0xE strb r0, [r4, 0x8] b _081D548A .pool _081D5350: movs r0, 0x5 bl PlaySE bl CloseLink _081D535A: movs r0, 0x17 strb r0, [r4, 0x8] b _081D548A _081D5360: bl CloseLink movs r0, 0x15 strb r0, [r4, 0x8] b _081D548A _081D536A: bl HasLinkErrorOccurred lsls r0, 24 cmp r0, 0 beq _081D537A _081D5374: bl CloseLink b _081D53C0 _081D537A: bl GetBlockReceivedStatus lsls r0, 24 cmp r0, 0 bne _081D5386 b _081D548A _081D5386: bl ResetBlockReceivedFlags movs r0, 0xF strb r0, [r4, 0x8] b _081D548A _081D5390: ldr r0, =gDecompressionBuffer bl sub_81D3920 strb r0, [r4, 0xE] ldrb r0, [r4, 0xE] bl sub_800ABF4 movs r0, 0x10 strb r0, [r4, 0x8] b _081D548A .pool _081D53A8: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _081D548A ldrb r0, [r4, 0xE] cmp r0, 0x1 bne _081D53C0 movs r0, 0x11 strb r0, [r4, 0x8] b _081D548A .pool _081D53C0: movs r0, 0x14 strb r0, [r4, 0x8] b _081D548A _081D53C6: ldr r0, =gDecompressionBuffer bl sub_81D3AB0 cmp r0, 0 beq _081D53EC ldr r0, =gUnknown_085EE0FA bl sub_8018884 adds r0, r4, 0 bl sub_81D505C movs r0, 0x12 strb r0, [r4, 0x8] b _081D548A .pool _081D53EC: movs r0, 0x16 strb r0, [r4, 0x8] b _081D548A _081D53F2: adds r0, r4, 0 movs r1, 0x78 bl sub_81D5064 cmp r0, 0 beq _081D548A ldr r0, =gUnknown_085EE107 bl sub_8018884 movs r0, 0xB9 lsls r0, 1 bl PlayFanfare movs r0, 0x13 strb r0, [r4, 0x8] b _081D548A .pool _081D5418: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _081D548A ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 b _081D543A .pool _081D5430: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EE06B bl mevent_0814257C _081D543A: cmp r0, 0 beq _081D548A movs r0, 0x1A strb r0, [r4, 0x8] b _081D548A .pool _081D5448: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EE0A3 b _081D5466 .pool _081D5454: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EE0BF b _081D5466 .pool _081D5460: adds r0, r4, 0 adds r0, 0x9 ldr r1, =gUnknown_085EE12D _081D5466: bl mevent_0814257C cmp r0, 0 beq _081D548A _081D546E: movs r0, 0 strb r0, [r4, 0x8] b _081D548A .pool _081D5478: ldr r0, [r4, 0x10] bl Free adds r0, r5, 0 bl DestroyTask ldr r0, =sub_80186A4 bl SetMainCallback2 _081D548A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D5084 .align 2, 0 @ Don't pad with nop.