Function at 0x43c760
Capabilities:
Create shortcut via ishelllink

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x5402b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, edx
mov dword [ebp - 0x48], eax
push edi
mov edi, dword [ebp + 0xc]
mov eax, esi
mov ebx, ecx
mov dword [ebp - 0x40], 0
call fcn.0044e7d0
test al, al
je 0x43c868
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0x14], 0
je 0x43c868
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x40]
push eax
push 0x509a5c
push 1
push 0
push 0x509a6c
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x43c868
cmp dword [esi + 0x18], 8
jb 0x43c7d9
mov ecx, dword [esi + 4]
jmp 0x43c7dc
lea ecx, [esi + 4]
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x50]
call eax
cmp dword [edi + 0x18], 8
jb 0x43c7f3
mov edi, dword [edi + 4]
jmp 0x43c7f6
add edi, 4
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push edi
push eax
call edx
cmp byte [ebx + 0xfc], 0
je 0x43c81a
cmp dword [ebx + 0x114], 0
je 0x43c81a
lea esi, [ebx + 0x100]
xor eax, eax
push 0xffffffffffffffff
push eax
mov word [ebp - 0x1c], ax
push esi
lea eax, [ebp - 0x20]
mov dword [ebp - 8], 7
mov dword [ebp - 0xc], 0
call fcn.004018f0
cmp dword [ebp - 8], 8
mov ecx, dword [ebp - 0x1c]
jae 0x43c846
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
push 0
push ecx
push eax
mov eax, dword [edx + 0x44]
call eax
mov edi, eax
test edi, edi
jge 0x43c88c
call dword [sym.imp.ole32.dll_CoUninitialize]
lea esi, [ebp - 0x20]
call fcn.0040f420
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x43c877
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c0985
mov esp, ebp
pop ebp
ret 8
call fcn.00407c00
cmp eax, 7
jb 0x43c9a0
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x44]
push edx
mov dword [ebp - 0x44], 0
mov ecx, dword [eax]
push 0x52147c
push eax
mov eax, dword [ecx]
call eax
lea ecx, [ebx + 0x70]
push ecx
lea edx, [ebx + 0x8c]
push edx
lea ecx, [ebx + 0x38]
lea edi, [ebp - 0xac]
call fcn.0040e410
add esp, 4
mov ecx, eax
lea edi, [ebp - 0x90]
call fcn.0040e410
add esp, 4
mov ecx, eax
lea ebx, [ebp - 0x74]
call fcn.004511e0
push eax
mov ecx, 0x5444b4
lea edi, [ebp - 0x3c]
call fcn.0040e410
add esp, 4
mov esi, ebx
call fcn.0040f420
lea esi, [ebp - 0x90]
call fcn.0040f420
lea esi, [ebp - 0xac]
call fcn.0040f420
cmp dword [ebp - 0x24], 8
mov edx, dword [ebp - 0x38]
jae 0x43c924
lea edx, [ebp - 0x38]
lea esi, [ebp - 0x58]
call fcn.0043a440
test eax, eax
jge 0x43c956
call dword [sym.imp.ole32.dll_CoUninitialize]
lea esi, [ebp - 0x3c]
call fcn.0040f420
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x43c860
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x43c860
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
lea edx, [ebp - 0x58]
push edx
push 0x509af0
push eax
mov eax, dword [ecx + 0x18]
call eax
test eax, eax
jl 0x43c930
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
push eax
call edx
mov edi, eax
test edi, edi
jl 0x43c930
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.ole32.dll_PropVariantClear]
lea esi, [ebp - 0x3c]
call fcn.0040f420
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x43c9a0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x48]
cmp dword [esi + 0x14], 0
je 0x43ca0a
mov eax, esi
call fcn.0044e7d0
test al, al
jne 0x43ca0a
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x44]
push edx
mov dword [ebp - 0x44], 0
mov ecx, dword [eax]
push 0x509a7c
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jge 0x43c9dd
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43c93e
cmp dword [esi + 0x18], 8
jb 0x43c9e8
mov ecx, dword [esi + 4]
jmp 0x43c9eb
lea ecx, [esi + 4]
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
push 1
push ecx
push eax
mov eax, dword [edx + 0x18]
call eax
mov edi, eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x43ca0a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
test edi, edi
lea esi, [ebp - 0x20]
sete bl
call fcn.0040f420
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x43ca2c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov al, bl
xor ecx, ebp
pop ebx
call fcn.004c0985
mov esp, ebp
pop ebp
ret 8