Function at 0x4127f3
Capabilities:
Create shortcut via ishelllink

Disassembly:
push 0x464
mov eax, 0x52f033
call fcn.00512375
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
xor ebx, ebx
push ebx
mov dword [ebp - 0x46c], eax
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jns 0x412822
xor eax, eax
jmp 0x412a75
lea eax, [ebp - 0x460]
push eax
push 0x56aeec
push 1
push ebx
push 0x56afcc
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x412848
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x41281b
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
lea edx, [ebp - 0x464]
push edx
push 0x56af5c
push eax
call dword [ecx]
test eax, eax
jns 0x41287c
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, ebx
jmp 0x412a75
mov edi, 0x103
push edi
lea eax, [ebp - 0x31b]
push ebx
push eax
mov byte [ebp - 0x31c], bl
call fcn.00512ea0
lea eax, [ebp - 0x31c]
push eax
call fcn.00411c67
push edi
lea eax, [ebp - 0x113]
push ebx
push eax
mov byte [ebp - 0x114], bl
call fcn.00512ea0
push esi
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x114]
push str._s_s.lnk
push eax
call fcn.00402f5d
add esp, 0x2c
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jle 0x4128ed
xor eax, eax
jmp 0x412907
lea eax, [esi + esi]
call fcn.00515ed0
mov eax, esp
push 3
push esi
lea ecx, [ebp - 0x114]
push ecx
push eax
call fcn.00411ca1
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx]
push 2
push eax
push ecx
call dword [edx + 0x14]
cmp eax, ebx
jl 0x41298d
push edi
lea eax, [ebp - 0x217]
push ebx
push eax
mov byte [ebp - 0x218], bl
call fcn.00512ea0
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
add esp, 0xc
push ebx
lea edx, [ebp - 0x45c]
push edx
push 0x104
lea edx, [ebp - 0x218]
push edx
push eax
call dword [ecx + 0xc]
cmp eax, ebx
jl 0x41298d
push dword [ebp - 0x46c]
lea eax, [ebp - 0x218]
push eax
call fcn.00515bf3
pop ecx
pop ecx
test eax, eax
jne 0x41298d
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor ebx, ebx
inc ebx
jmp 0x41286f
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jle 0x4129a9
xor esi, esi
jmp 0x4129c5
lea eax, [esi + esi]
call fcn.00515ed0
mov eax, esp
push 3
push esi
lea ecx, [ebp - 0x114]
push ecx
push eax
call fcn.00411ca1
mov esi, eax
mov eax, dword [ebp - 0x460]
push dword [ebp - 0x46c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
push dword [ebp - 0x46c]
lea ecx, [ebp - 0x468]
call fcn.00401d42
mov dword [ebp - 4], ebx
push 0x5c
lea ecx, [ebp - 0x468]
call fcn.004121d0
inc eax
push eax
push ebx
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x468]
call fcn.0040977e
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x460]
push dword [ebp - 0x470]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax]
push ebx
push esi
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x470]
add ecx, 0xfffffff0
call fcn.004010d2
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x468]
add ecx, 0xfffffff0
call fcn.004010d2
xor eax, eax
inc eax
lea esp, [ebp - 0x480]
call fcn.005123f8
ret