Function at 0x4094d0
Capabilities:
Create shortcut via ishelllink
Delete file
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x83c
mov eax, dword [0x42c760]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
push 7
mov dword [ebp - 0x834], eax
mov eax, dword [ebp + 0x14]
push str.http:__
push edi
mov dword [ebp - 0x838], eax
call fcn.00416703
add esp, 0xc
test eax, eax
jne 0x4095c1
push 0x4232c8
push ebx
push 0x4232cc
lea eax, [ebp - 0x824]
push 0x410
push eax
call fcn.00404c40
add esp, 0x14
lea eax, [ebp - 0x824]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x409571
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b37e
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0x830]
push 0
push eax
push 0x18
push str._InternetShortcut__r_nURL
push esi
call ebx
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409590
push 0
lea eax, [ebp - 0x830]
sub ecx, edx
push eax
push ecx
push edi
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b37e
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x828]
push eax
push 0x423540
push 1
push 0
push 0x423560
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
js 0x4096e6
mov eax, dword [ebp - 0x828]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x828]
push dword [ebp - 0x834]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x828]
push 0
push dword [ebp - 0x838]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x828]
lea edx, [ebp - 0x82c]
push edx
push 0x423550
push eax
mov ecx, dword [eax]
call dword [ecx]
mov esi, eax
test esi, esi
js 0x4096da
push 0x4232f0
push ebx
push str._s._s
lea eax, [ebp - 0x824]
push 0x410
push eax
call fcn.00404c40
add esp, 0x14
lea eax, [ebp - 0x20c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x4232fc
lea eax, [ebp - 0x20c]
push eax
push str._sTemp._s
lea eax, [ebp - 0x108]
push 0x104
push eax
call fcn.00404c40
add esp, 0x14
lea eax, [ebp - 0x414]
push 0x104
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x108]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x82c]
lea edx, [ebp - 0x414]
push 1
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov esi, eax
mov eax, dword [ebp - 0x82c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x828]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
test esi, esi
js 0x40955b
push 0
lea eax, [ebp - 0x83c]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00406be0
add esp, 0xc
test eax, eax
jne 0x409726
pop edi
pop esi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b37e
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x83c]
push eax
lea eax, [ebp - 0x824]
push eax
call fcn.004070b0
add esp, 0xc
test eax, eax
je 0x409756
pop edi
pop esi
mov eax, 3
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b37e
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040b37e
mov esp, ebp
pop ebp
ret