Function at 0x4059c1
Capabilities:
Create shortcut via ishelllink

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x548
or dword [ebp - 0x18], 0xffffffff
push ebx
xor ebx, ebx
push esi
cmp dword [ebp + 0x10], ebx
push edi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ebx
jle 0x405e43
mov esi, dword [ebp + 8]
push esi
mov byte [ebp - 0x23c], bl
call fcn.00413dd0
lea eax, [eax + esi + 1]
push 0x3b
push esi
mov dword [ebp - 0x28], eax
call fcn.00414320
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x405e54
inc esi
push esi
call fcn.00413dd0
inc eax
push eax
call fcn.004132a2
mov edi, eax
push esi
push edi
mov dword [ebp - 4], edi
call fcn.00413bb0
push 0x3b
push edi
call fcn.00414320
mov esi, eax
add esp, 0x18
cmp esi, ebx
je 0x405e58
push 0x3c
push edi
mov byte [esi], bl
call fcn.00414320
pop ecx
pop ecx
test eax, eax
push edi
je 0x405a81
call fcn.0040411d
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.00413bb0
push 0x5c
push edi
call fcn.00414320
add esp, 0x14
cmp eax, ebx
je 0x405a8f
inc eax
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.00403d6d
jmp 0x405a8d
lea eax, [ebp - 0x23c]
push eax
call fcn.00413bb0
pop ecx
pop ecx
inc esi
push 0x3b
mov edi, esi
push esi
mov dword [ebp - 0x30], edi
call fcn.00414320
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x405e4b
mov byte [esi], bl
push edi
inc esi
call fcn.00413dd0
add eax, 0x104
push eax
call fcn.004132a2
push 0x3c
push edi
mov dword [ebp - 8], eax
call fcn.00414320
add esp, 0x10
test eax, eax
push edi
je 0x405af9
call fcn.0040411d
push eax
push dword [ebp - 8]
call fcn.00413bb0
push 0x5c
push edi
call fcn.00414320
add esp, 0x14
cmp eax, ebx
je 0x405b03
inc eax
push eax
push dword [ebp - 8]
call fcn.00403d6d
jmp 0x405b01
push dword [ebp - 8]
call fcn.00413bb0
pop ecx
pop ecx
push 0x3b
mov dword [ebp - 0x10], esi
pop edi
push edi
push esi
call fcn.00414320
pop ecx
cmp eax, ebx
pop ecx
je 0x405e4b
mov byte [eax], bl
inc eax
push edi
push eax
mov dword [ebp - 0x2c], eax
call fcn.00414320
pop ecx
cmp eax, ebx
pop ecx
je 0x405e4b
mov byte [eax], bl
inc eax
push edi
push eax
mov dword [ebp - 0x34], eax
call fcn.00414320
pop ecx
cmp eax, ebx
pop ecx
je 0x405e4b
mov byte [eax], bl
inc eax
push edi
push eax
mov dword [ebp - 0x24], eax
call fcn.00414320
pop ecx
cmp eax, ebx
pop ecx
je 0x405b60
mov byte [eax], bl
inc eax
jmp 0x405b63
mov dword [ebp - 0x24], ebx
push edi
push eax
mov esi, eax
call fcn.00414320
pop ecx
cmp eax, ebx
pop ecx
je 0x405e4b
mov byte [eax], bl
inc eax
push 0x3b
push eax
mov edi, eax
call fcn.00414320
pop ecx
cmp eax, ebx
pop ecx
je 0x405b8d
mov byte [eax], bl
jmp 0x405b8f
xor edi, edi
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x405e1a
cmp byte [eax], bl
je 0x405e1a
cmp byte [ebp - 0x23c], bl
je 0x405e1a
cmp esi, ebx
je 0x405bef
cmp byte [esi], bl
je 0x405bef
push esi
call fcn.00413dd0
cmp eax, 1
pop ecx
jne 0x405bd1
movzx si, byte [esi]
or esi, 0x600
mov dword [ebp - 0xc], esi
jmp 0x405bf2
cmp eax, 2
jne 0x405bef
cmp byte [esi], 0x46
jne 0x405bef
inc esi
push esi
call fcn.004148bb
add al, 0x6f
pop ecx
movzx ax, al
or ah, 6
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 0xc]
cmp edi, ebx
je 0x405c04
cmp byte [edi], bl
je 0x405c04
push edi
call fcn.004148bb
pop ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x34]
cmp eax, ebx
je 0x405c19
cmp byte [eax], bl
je 0x405c19
push eax
call fcn.004148bb
pop ecx
mov dword [ebp - 0x14], eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x340]
push eax
call fcn.00413bb0
push dword [ebp - 0x10]
lea eax, [ebp - 0x340]
push eax
call fcn.00403d6d
lea eax, [ebp - 0x340]
push str..lnk
push eax
call fcn.00413bc0
add esp, 0x18
lea eax, [ebp + 8]
push eax
push 0x41b388
push 1
push ebx
push 0x41b378
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x405e1a
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x20]
push edx
push 0x41b398
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
jl 0x405e11
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x23c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp + 8]
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x30]
cmp eax, ebx
je 0x405cb6
cmp byte [eax], bl
je 0x405cb6
mov eax, dword [ebp + 8]
push dword [ebp - 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
cmp si, bx
je 0x405cc5
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [ebp - 0x18], ebx
jl 0x405cd6
mov eax, dword [ebp + 8]
push dword [ebp - 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
mov esi, dword [ebp - 0x2c]
cmp esi, ebx
je 0x405d3f
cmp byte [esi], bl
je 0x405d3f
push 0x3c
push esi
call fcn.00414320
pop ecx
test eax, eax
pop ecx
je 0x405d32
push esi
call fcn.0040411d
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00413bb0
push 0x5c
push esi
call fcn.00414320
add esp, 0x14
cmp eax, ebx
je 0x405d3f
inc eax
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00403d6d
mov eax, dword [ebp + 8]
pop ecx
pop ecx
lea edx, [ebp - 0x138]
push dword [ebp - 0x14]
mov ecx, dword [eax]
push edx
jmp 0x405d3b
mov eax, dword [ebp + 8]
push dword [ebp - 0x14]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x44]
mov esi, dword [ebp - 0x24]
cmp esi, ebx
je 0x405da2
cmp byte [esi], bl
je 0x405da2
push 0x3c
push esi
call fcn.00414320
pop ecx
test eax, eax
pop ecx
je 0x405d98
push esi
call fcn.0040411d
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00413bb0
push 0x5c
push esi
call fcn.00414320
add esp, 0x14
cmp eax, ebx
je 0x405d8a
inc eax
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00403d6d
pop ecx
pop ecx
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x138]
push edx
mov ecx, dword [eax]
jmp 0x405d9e
mov eax, dword [ebp + 8]
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
lea eax, [ebp - 0x340]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00413bb0
lea eax, [ebp - 0x138]
push 0x5c
push eax
call fcn.00413b80
add esp, 0x10
cmp eax, ebx
je 0x405dd9
mov byte [eax], bl
lea eax, [ebp - 0x138]
push eax
call fcn.00404425
pop ecx
lea eax, [ebp - 0x548]
push 0x104
push eax
lea eax, [ebp - 0x340]
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x548]
push 1
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp - 4]
mov esi, dword [ebp - 0x28]
call fcn.00413354
cmp dword [ebp - 8], ebx
pop ecx
je 0x405e34
push dword [ebp - 8]
call fcn.00413354
pop ecx
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0x10]
jl 0x4059e8
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret
push dword [ebp - 4]
call fcn.00413354
pop ecx
xor eax, eax
jmp 0x405e46
push edi
jmp 0x405e4e