Function at 0x408350
Capabilities:
Create shortcut via ishelllink
Delete file
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x430
push ebx
push esi
mov esi, dword [sym.imp.ole32.dll_CoCreateInstance]
push edi
mov edi, eax
lea eax, [ebp - 4]
push eax
push 0x40a358
xor ebx, ebx
push 1
push ebx
push 0x40a388
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
call esi
test eax, eax
js 0x4086d9
mov eax, dword [ebp - 4]
cmp eax, ebx
je 0x4086d9
mov ecx, dword [eax]
lea edx, [ebp - 8]
push edx
push 0x40a378
push eax
mov eax, dword [ecx]
call eax
test eax, eax
js 0x4086ce
cmp dword [ebp - 8], ebx
je 0x4086ce
push 0x104
lea ecx, [ebp - 0x117]
push ebx
push ecx
mov byte [ebp - 0x118], bl
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, 0x424084
cmp dword [ebp + 0x10], ebx
jne 0x4083dd
mov eax, 0x40a768
mov edx, dword [ebp + 8]
push eax
push edx
push edi
lea eax, [ebp - 0x118]
push str._c___ws__ws_s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov ebx, edi
call fcn.004033f0
cmp dword [ebp + 0x14], 0
mov edi, eax
je 0x408564
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push 2
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
test eax, eax
js 0x4084e9
push 0x104
lea ecx, [ebp - 0x21f]
push 0
push ecx
mov byte [ebp - 0x220], 0
call sub.msvcrt.dll_memset
push 0x104
lea edx, [ebp - 0x327]
push 0
push edx
mov byte [ebp - 0x328], 0
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
add esp, 0x18
push 4
push 0
push 0x105
lea edx, [ebp - 0x220]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push 0x105
lea edx, [ebp - 0x328]
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push str._comspec_
lea ecx, [ebp - 0x220]
push ecx
call ebx
test eax, eax
jne 0x4084e9
lea edx, [ebp - 0x118]
push edx
lea eax, [ebp - 0x328]
push eax
call ebx
test eax, eax
jne 0x4084e9
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test edi, edi
je 0x4084dd
push edi
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [ebp - 4]
push eax
push 0x40a358
push 1
push 0
push 0x40a388
call esi
test eax, eax
js 0x4085e9
mov eax, dword [ebp - 4]
test eax, eax
je 0x4085e9
mov ecx, dword [eax]
lea edx, [ebp - 8]
push edx
push 0x40a378
push eax
mov eax, dword [ecx]
call eax
test eax, eax
js 0x4085de
cmp dword [ebp - 8], 0
je 0x4085de
mov esi, dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffa
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push str._comspec_
push eax
call edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x118]
push edx
push eax
mov eax, dword [ecx + 0x2c]
call eax
mov esi, dword [sym.imp.msvcrt.dll_free]
test edi, edi
je 0x408596
push edi
call esi
add esp, 4
push 0x104
lea ecx, [ebp - 0x42f]
push 0
push ecx
mov byte [ebp - 0x430], 0
call sub.msvcrt.dll_memset
add esp, 0xc
cmp dword [ebp + 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
je 0x408604
mov eax, dword [ebp - 4]
mov edx, dword [eax]
push 3
push str._SystemRoot__system32SHELL32.dll
push eax
mov eax, dword [edx + 0x44]
call eax
jmp 0x40868e
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test edi, edi
je 0x4086d9
push edi
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
mov ebx, edi
call fcn.004033f0
mov ebx, eax
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x408615
sub eax, edx
sar eax, 1
push str..exe
lea ecx, [edi + eax*2 - 8]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x408648
mov eax, dword [ebp - 4]
mov edx, dword [eax]
push 0
push ebx
push eax
mov eax, dword [edx + 0x44]
call eax
jmp 0x408684
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0xc]
push edx
push ebx
lea edi, [ebp - 0x430]
call fcn.00408170
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
je 0x408677
mov edx, dword [ebp - 0xc]
push edx
mov edx, edi
push edx
push eax
mov eax, dword [ecx + 0x44]
call eax
jmp 0x408684
mov edx, dword [ecx + 0x44]
push 0
push str._SystemRoot__system32SHELL32.dll
push eax
call edx
test ebx, ebx
je 0x40868e
push ebx
call esi
add esp, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push 7
push eax
call edx
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push 1
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret