Function at 0x41c110
Capabilities:
Create shortcut via ishelllink

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push 0
mov dword [ebp - 8], 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov ebx, eax
mov dword [ebp - 0xc], ebx
call fcn.0045225a
test al, al
je 0x41c146
loope 0x41c197
push ecx
out dx, eax
mov eax, 0x82f0fdc3
shr dword [eax + 0x4dfa2f5d], 1
add al, 0xe8
nop
add eax, dword fs:[eax]
call fcn.004525db
test al, al
je 0x41c172
dec ecx
dec eax
mov eax, dword gs:[0x74d0d571]
jnp 0x41c12a
invalid
pop ebp
hlt
call fcn.00451fed
test al, al
je 0x41c199
mov edx, 0xf3dfe8ee
pop ebp
adc dword [ebp - 0x36092e8b], edx
fidivr word [esi - 0x143fc766]
mov ebp, 0xcb967462
and al, 0xe3
pop edx
mov ebx, 0x85a1d639
fisttp dword [edi]
mov byte [ebp - 0x72ffffff], bh
salc
mov eax, dword [0x880fdb85]
mov ebp, 0x8d000001
test ebx, ebx
js 0x41c35e
lea eax, [ebp - 4]
inc ebp
cld
push eax
push 0x5ea95c
push 1
push 0
push 0x5ea96c
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x41c358
call fcn.0045225a
test al, al
je 0x41c1da
add byte [ebp + 0xe], dl
inc ebx
les edi, [edx]
test al, 0xa3
out dx, al
add dword [ebx - 0x6f], esi
dec byte [edx - 0x317aac9]
arpl word [ebx], ax
add byte [eax + eax*8 + 0x69b82074], al
invalid
call fcn.004525db
test al, al
je 0x41c203
mov eax, 0x2fe08f69
loopne 0x41c217
je 0x41c197
push ds
pop es
js 0x41c170
mov ecx, 0x1f8eb98e
jp 0x41c22e
popal
lock xor byte [ecx + 0x4fa59be1], cl
cmp eax, 0x3f8d8754
call 0x39fa7ef
add byte [eax + eax*8 - 0x3ed5e18c], al
call fcn.00451fed
test al, al
je 0x41c22a
sub al, cl
mov esi, 0xefee8cfb
loop 0x41c1e6
add dword [eax], 0x602bd818
add byte [eax], bl
fsubr dword [ebx]
pushal
xor eax, 0xeec94c59
and eax, 0x130599ef
xor ah, byte [ebx - 0x28]
sub al, 0x8b
inc ebp
cld
mov eax, dword [ebp - 4]
push dword [ebp + 0xc]
jne 0x41c23c
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x41c247
or cl, byte [ebx + 0x5052fc45]
mov eax, dword [ebp - 4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x41c258
mov eax, dword [ebp - 4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov edx, dword [ebp + 0x18]
test dx, dx
je 0x41c26a
mov eax, dword [ebp - 4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x41c27b
mov eax, dword [ebp - 4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
call fcn.004524c7
test al, al
je 0x41c295
lahf
mov bh, 0x6e
outsb dx, byte [esi]
adc bh, al
cmp dword [edx + 0x49], 0x28
push cs
dec eax
loopne 0x41c286
adc dword [esi], esp
adc esp, ecx
mov edx, dword [ebp + 0x20]
test edx, edx
je 0x41c2a6
mov eax, dword [ebp - 4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 4]
lea edx, [ebp - 0xc]
push edx
push 0x5ea94c
push eax
mov ecx, dword [eax]
call dword [ecx]
mov ebx, eax
mov dword [ebp + 0xc], ebx
call fcn.0045243d
test al, al
je 0x41c2e5
inc ebp
pop ecx
add edi, dword [eax + 0x66ad0a43]
add dword [edi - 0x84de41f], edi
nop
mov al, byte [0xd119d50e]
invalid
call fcn.00452215
test al, al
je 0x41c30e
sub dword [edi - 0x75], ecx
invalid
jle 0x41c2fa
aas
sub byte [ecx + 0x68331b70], cl
inc edx
cmp byte [eax + 0x68], ah
sbb esi, dword [ebx]
push 0x68603842
scasd eax, dword es:[edi]
clc
stosb byte es:[edi], al
adc dl, byte [ecx]
adc byte [edx], dl
out 0x3f, al
sbb al, 0xa9
sub byte [edx], dh
test ebx, ebx
js 0x41c330
mov eax, dword [ebp - 0xc]
push 0
push dword [ebp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [ebp - 8], 1
call fcn.00452596
test al, al
je 0x41c34f
mov bh, byte [edx + esi*8]
xor al, 0xa7
add dh, byte [edx]
add esi, ecx
pop eax
lea esp, [ebx + 0x451603a6]
insd dword es:[edi], dx
jnp 0x41c2f4
outsd dx, dword [esi]
cmp cl, byte [ebx - 0x74af03bb]
or bh, bh
push ecx
or bh, bh
adc eax, sym.imp.ole32.dll_CoUninitialize
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.004523f8
test al, al
je 0x41c377
jmp 0xd37458d9
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c