Function at 0x40dea0
Capabilities:
Create shortcut via ishelllink
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44874d
mov eax, dword fs:[0]
push eax
sub esp, 0x2d8
mov eax, dword [0x45ff68]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2e4], ecx
push 1
lea eax, [ebp - 0x248]
push eax
call fcn.00409410
mov ecx, eax
call fcn.00425530
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00404cc0
mov byte [ebp - 4], 1
mov dword [ebp - 0x2bc], 0
lea edx, [ebp - 0x2bc]
push edx
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x2ac], eax
cmp dword [ebp - 0x2ac], 0
jl 0x40e18c
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x2bc]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push str..lnk
lea ecx, [ebp - 0x230]
call fcn.004087e0
push eax
push 0x44b9a0
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x260]
call fcn.00404d20
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x2d0], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2d0]
push ecx
lea edx, [ebp - 0x290]
push edx
call fcn.00402810
add esp, 0xc
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x2c8], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x2c8]
push ecx
lea edx, [ebp - 0x2a8]
push edx
call fcn.00402810
add esp, 0xc
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2d4], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x2d4]
push ecx
lea edx, [ebp - 0x278]
push edx
call fcn.00402810
add esp, 0xc
mov dword [ebp - 0x2dc], eax
mov eax, dword [ebp - 0x2dc]
push eax
lea ecx, [ebp - 0x230]
call fcn.00405bb0
lea ecx, [ebp - 0x278]
call fcn.00405790
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2a8]
call fcn.00405790
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x290]
call fcn.00405790
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x260]
call fcn.00405790
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x40e05d
lea ecx, [ebp - 0x230]
call fcn.004087e0
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
jmp 0x40e18c
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
lea ecx, [ebp - 0x2b0]
call fcn.004045b0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2b0]
call fcn.00420ab0
push eax
push 0x44ebac
push 1
push 0
push 0x44ebcc
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x2ac], eax
cmp dword [ebp - 0x2ac], 0
jl 0x40e177
push 0
lea ecx, [ebp - 0x2b4]
call fcn.004045b0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2b0]
call fcn.004024d0
mov dword [ebp - 0x2c4], eax
lea ecx, [ebp - 0x248]
call fcn.004087e0
push eax
mov edx, dword [ebp - 0x2c4]
push edx
mov eax, dword [ebp - 0x2c4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
call edx
lea ecx, [ebp - 0x2b0]
call fcn.004024d0
mov dword [ebp - 0x2c0], eax
lea ecx, [ebp - 0x2b4]
call fcn.00420ab0
push eax
push 0x44ebbc
mov eax, dword [ebp - 0x2c0]
push eax
mov ecx, dword [ebp - 0x2c0]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov dword [ebp - 0x2ac], eax
cmp dword [ebp - 0x2ac], 0
jl 0x40e168
lea ecx, [ebp - 0x2b4]
call fcn.004024d0
mov dword [ebp - 0x2b8], eax
push 1
lea ecx, [ebp - 0x230]
call fcn.004087e0
push eax
mov ecx, dword [ebp - 0x2b8]
push ecx
mov edx, dword [ebp - 0x2b8]
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
call ecx
mov dword [ebp - 0x2ac], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2b4]
call fcn.00428e80
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2b0]
call fcn.00428e80
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x230]
call fcn.00405790
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.00405790
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042ec10
mov esp, ebp
pop ebp
ret 8