Function at 0x1002d4b
Capabilities:
Create shortcut via ishelllink

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x214]
push eax
push 0x1001498
push 1
xor edi, edi
push edi
push 0x10014b8
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1002f46
cmp dword [ebp + 0x20], edi
je 0x1002dd8
push dword [ebp + 0x20]
lea eax, [ebp - 0x20c]
push 0x1002fe0
push 0x104
push eax
call fcn.010015e0
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax]
add esp, 0x10
lea edx, [ebp - 0x20c]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax]
push 0x1002fb0
push eax
call dword [ecx + 0x24]
push 0x29
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
je 0x1002eb5
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax]
push ebx
lea edx, [ebp - 0x210]
push edx
push 0x1002fa0
push eax
call dword [ecx]
mov ebx, eax
cmp ebx, edi
jl 0x1002eb4
cmp esi, edi
mov edi, dword [sym.imp.ole32.dll_PropVariantClear]
je 0x1002e59
lea eax, [ebp - 0x230]
push eax
push esi
call fcn.010015ae
test eax, eax
js 0x1002ea6
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
lea edx, [ebp - 0x230]
push edx
push 0x1003030
push eax
call dword [ecx + 0x18]
mov ebx, eax
lea eax, [ebp - 0x230]
push eax
call edi
test ebx, ebx
js 0x1002ea6
push 0xb
pop eax
mov word [ebp - 0x230], ax
mov eax, dword [ebp + 0x18]
neg eax
sbb eax, eax
lea edx, [ebp - 0x230]
push edx
mov word [ebp - 0x228], ax
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
push 0x1003044
push eax
call dword [ecx + 0x18]
test eax, eax
js 0x1002e9d
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
lea eax, [ebp - 0x230]
push eax
call edi
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor edi, edi
pop ebx
mov eax, dword [ebp - 0x214]
push dword [ebp - 0x220]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
test eax, eax
js 0x1002f3a
cmp dword [ebp - 0x21c], edi
jne 0x10039ab
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax]
lea edx, [ebp - 0x220]
push edx
push 0x10014a8
push eax
call dword [ecx]
test eax, eax
js 0x1002f3a
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push 1
push dword [ebp - 0x218]
push eax
call dword [ecx + 0x18]
test eax, eax
js 0x1002f2e
push 0x25
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
je 0x10039c2
push dword [ebp + 0x1c]
push 0x1002f60
push dword [ebp - 0x218]
call dword [sym.imp.SHELL32.dll_SHSetLocalizedName]
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0100305d
leave
ret 0x1c
test eax, eax
js 0x1002f3a
jmp 0x1002ed7
mov eax, dword [ebp - 0x214]
push dword [ebp - 0x21c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
jmp 0x1002f56
push edi
push edi
lea eax, [ebp - 0x210]
push eax
push edi
push dword [ebp - 0x218]
mov dword [ebp - 0x210], edi
call dword [sym.imp.SHELL32.dll_SHParseDisplayName]
test eax, eax
js 0x1002f2e
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x1003d6c
push dword [ebp - 0x210]
mov dword [ebp - 0x21c], edi
call dword [sym.imp.SHELL32.dll_SHBindToParent]
test eax, eax
js 0x1003a52
push 0x104
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0x1c]
push dword [0x101100c]
call dword [sym.imp.USER32.dll_LoadStringW]
mov eax, dword [ebp - 0x218]
mov ecx, dword [eax]
push edi
push edi
lea edx, [ebp - 0x20c]
push edx
push dword [ebp - 0x21c]
push edi
push eax
call dword [ecx + 0x30]
mov eax, dword [ebp - 0x218]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x210]
call dword [sym.imp.SHELL32.dll_ILFree]
jmp 0x1002f2e