; Property of Microsoft ; microsoft_shell_integration.dll!PinShortcutToTaskbar: 00007FFED157101B push r15 00007FFED157101D push r14 00007FFED157101F push rsi 00007FFED1571020 push rdi 00007FFED1571021 push rbp 00007FFED1571022 push rbx 00007FFED1571023 sub rsp,0A8h 00007FFED157102A mov r14,rcx 00007FFED157102D mov rax,qword ptr [7FFED15D5028h] 00007FFED1571034 xor rax,rsp 00007FFED1571037 mov qword ptr [rsp+0A0h],rax 00007FFED157103F mov rsi,7FFFFFFFFFFFFFEFh 00007FFED1571049 xorps xmm0,xmm0 00007FFED157104C movaps xmmword ptr [rsp+30h],xmm0 00007FFED1571051 mov qword ptr [rsp+40h],0 00007FFED157105A call 00007FFED15A8C3C ; inside 00007FFED157105F cmp rax,rsi 00007FFED1571062 ja 00007FFED1571224 00007FFED1571068 mov rdi,rax 00007FFED157106B cmp rax,0Bh 00007FFED157106F jb 00007FFED15710AB 00007FFED1571071 lea rbp,[rdi+8] 00007FFED1571075 and rbp,0FFFFFFFFFFFFFFF8h 00007FFED1571079 js 00007FFED157122E 00007FFED157107F mov rcx,rbp 00007FFED1571082 add rcx,rbp 00007FFED1571085 lea rcx,[rbp+rbp] 00007FFED157108A call 00007FFED15969B8 ; inside 00007FFED157108F mov r15,rax 00007FFED1571092 lea rbx,[rsp+30h] 00007FFED1571097 mov qword ptr [rbx],rax 00007FFED157109A add rsi,11h 00007FFED157109E or rsi,rbp 00007FFED15710A1 mov qword ptr [rbx+10h],rsi 00007FFED15710A5 mov qword ptr [rbx+8],rdi 00007FFED15710A9 jmp 00007FFED15710BC 00007FFED15710AB lea rbx,[rsp+30h] 00007FFED15710B0 mov byte ptr [rbx+17h],dil 00007FFED15710B4 mov r15,rbx 00007FFED15710B7 test rdi,rdi 00007FFED15710BA je 00007FFED15710CD 00007FFED15710BC mov r8,rdi 00007FFED15710BF add r8,rdi 00007FFED15710C2 mov rcx,r15 00007FFED15710C5 mov rdx,r14 00007FFED15710C8 call 00007FFED15996F0 ; inside 00007FFED15710CD mov word ptr [r15+rdi*2],0 00007FFED15710D4 lea rcx,[rsp+48h] 00007FFED15710D9 lea rdi,[rsp+30h] 00007FFED15710DE mov rdx,rdi 00007FFED15710E1 call 00007FFED1571234 ; inside 00007FFED15710E6 cmp byte ptr [rbx+17h],0 00007FFED15710EA jns 00007FFED15710F6 00007FFED15710EC mov rcx,qword ptr [rsp+30h] 00007FFED15710F1 call 00007FFED1596A14 ; inside 00007FFED15710F6 lea rcx,[rsp+48h] 00007FFED15710FB call 00007FFED1571464 ; inside 00007FFED1571100 test al,al 00007FFED1571102 je 00007FFED15711C7 00007FFED1571108 lea rcx,[rsp+48h] 00007FFED157110D call 00007FFED1571620 ; inside 00007FFED1571112 mov bpl,1 00007FFED1571115 test al,al 00007FFED1571117 jne 00007FFED15711C9 00007FFED157111D mov qword ptr [rsp+30h],0 00007FFED1571126 mov qword ptr [rsp+20h],rdi 00007FFED157112B lea rcx,[7FFED15CA1F8h] 00007FFED1571132 lea r9,[7FFED15C9120h] 00007FFED1571139 xor edi,edi 00007FFED157113B xor edx,edx 00007FFED157113D mov r8d,17h 00007FFED1571143 call qword ptr [7FFED15D6E28h] ; combase.dll!CoCreateInstance(const _GUID &, IUnknown *, unsigned long, const _GUID &, void * *) 00007FFED1571149 test eax,eax 00007FFED157114B js 00007FFED157118A 00007FFED157114D mov rcx,r14 00007FFED1571150 call qword ptr [7FFED15D6E48h] ; shell32.dll!ILCreateFromPathW 00007FFED1571156 mov rbx,rax 00007FFED1571159 test rax,rax 00007FFED157115C je 00007FFED157117F 00007FFED157115E mov rcx,qword ptr [rsp+30h] 00007FFED1571163 mov rax,qword ptr [rcx] 00007FFED1571166 xor edx,edx 00007FFED1571168 mov r8,rbx 00007FFED157116B mov r9d,22h 00007FFED1571171 call qword ptr [rax+80h] ; shell32.dll!CPinnedList::Modify(struct _ITEMIDLIST_ABSOLUTE const *,struct _ITEMIDLIST_ABSOLUTE const *,enum PINNEDLISTMODIFYCALLER) 00007FFED1571177 test eax,eax 00007FFED1571179 setns dil 00007FFED157117D jmp 00007FFED1571181 00007FFED157117F xor edi,edi 00007FFED1571181 mov rcx,rbx 00007FFED1571184 call qword ptr [7FFED15D6E38h] ; combase.dll!CoTaskMemFree(void *) 00007FFED157118A mov rcx,qword ptr [rsp+30h] 00007FFED157118F test rcx,rcx 00007FFED1571192 je 00007FFED157119A 00007FFED1571194 mov rax,qword ptr [rcx] 00007FFED1571197 call qword ptr [rax+10h] ; shell32.dll![thunk]:ATL::CComObject::Release`adjustor{24}' (void) 00007FFED157119A test dil,dil 00007FFED157119D je 00007FFED15711AD 00007FFED157119F lea rcx,[rsp+48h] 00007FFED15711A4 call 00007FFED1571620 ; inside 00007FFED15711A9 test al,al 00007FFED15711AB jne 00007FFED15711C9 00007FFED15711AD mov rcx,r14 00007FFED15711B0 call 00007FFED1571B30 ; inside 00007FFED15711B5 test al,al 00007FFED15711B7 je 00007FFED15711C7 00007FFED15711B9 lea rcx,[rsp+48h] 00007FFED15711BE call 00007FFED1571620 ; inside 00007FFED15711C3 mov ebp,eax 00007FFED15711C5 jmp 00007FFED15711C9 00007FFED15711C7 xor ebp,ebp 00007FFED15711C9 cmp byte ptr [rsp+97h],0 00007FFED15711D1 jns 00007FFED15711E0 00007FFED15711D3 mov rcx,qword ptr [rsp+80h] 00007FFED15711DB call 00007FFED1596A14 ; inside 00007FFED15711E0 cmp byte ptr [rsp+7Fh],0 00007FFED15711E5 jns 00007FFED15711F1 00007FFED15711E7 mov rcx,qword ptr [rsp+68h] 00007FFED15711EC call 00007FFED1596A14 ; inside 00007FFED15711F1 cmp byte ptr [rsp+67h],0 00007FFED15711F6 jns 00007FFED1571202 00007FFED15711F8 mov rcx,qword ptr [rsp+50h] 00007FFED15711FD call 00007FFED1596A14 ; inside 00007FFED1571202 mov rcx,qword ptr [rsp+0A0h] 00007FFED157120A xor rcx,rsp 00007FFED157120D call 00007FFED15977C0 00007FFED1571212 mov eax,ebp 00007FFED1571214 add rsp,0A8h 00007FFED157121B pop rbx 00007FFED157121C pop rbp 00007FFED157121D pop rdi 00007FFED157121E pop rsi 00007FFED157121F pop r14 00007FFED1571221 pop r15 00007FFED1571223 ret