Function at 0x407a3c
Capabilities:
Check if file exists
Create shortcut via ishelllink

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbac
mov eax, dword [0x451bf0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
call fcn.0043e8f0
test al, al
jne 0x407a62
inc al
jmp 0x407dc4
push 0x447d24
call fcn.004025c8
xor ebx, ebx
pop ecx
mov byte [ebp - 0xb99], bl
call fcn.0043ecf0
push eax
call fcn.0043e900
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineA]
push eax
lea eax, [ebp - 0x638]
push eax
call esi
call fcn.0043ea10
lea ecx, [ebp - 0x740]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
cmp dl, bl
jne 0x407a9b
call fcn.0043f180
lea edx, [ebp - 0x218]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp cl, bl
jne 0x407ab0
call fcn.0043ecf0
push eax
lea eax, [ebp - 0x740]
push eax
lea eax, [ebp - 0x428]
push eax
call esi
push 0x447d48
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x320]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
lea eax, [ebp - 0x218]
push eax
call edi
test eax, eax
je 0x407d78
lea eax, [ebp - 0x320]
push eax
call edi
test eax, eax
je 0x407d78
push 0x447980
call fcn.00402b60
push eax
lea eax, [ebp - 0x110]
push eax
call esi
lea eax, [ebp - 0x110]
push eax
call edi
test eax, eax
jne 0x407b82
lea eax, [ebp - 0x110]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x407b37
sub eax, edx
push eax
lea eax, [ebp - 0x110]
push ebx
push eax
call fcn.00425b80
add esp, 0xc
push 0x447d70
call fcn.00402b60
push eax
lea eax, [ebp - 0x110]
push eax
call esi
lea eax, [ebp - 0x110]
push eax
call edi
test eax, eax
jne 0x407b82
push str.Ncstudio.lnk
call fcn.004025c8
pop ecx
jmp 0x407dc2
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jne 0x407d4a
lea eax, [ebp - 0xba0]
push eax
push 0x446920
push 1
push ebx
push 0x446930
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x407d2a
mov eax, dword [ebp - 0xba0]
cmp eax, ebx
je 0x407d2a
mov ecx, dword [eax]
lea edx, [ebp - 0xba4]
push edx
push 0x446940
push eax
call dword [ecx]
test eax, eax
jne 0x407d0e
cmp dword [ebp - 0xba4], ebx
je 0x407d0e
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, 0x104
push esi
lea eax, [ebp - 0x530]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push ebx
push ebx
call edi
mov eax, dword [ebp - 0xba4]
mov ecx, dword [eax]
push 2
lea edx, [ebp - 0x530]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
jge 0x407c42
call fcn.0043e460
test eax, eax
je 0x407d4a
push ebx
push ebx
push str.Load
call fcn.00418ce7
push str.ModifiedLinkPathLoad
jmp 0x407d44
mov eax, dword [ebp - 0xba0]
mov ecx, dword [eax]
push 1
lea edx, [ebp - 0xb98]
push edx
push esi
lea edx, [ebp - 0xa58]
push edx
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp - 0xba0]
mov ecx, dword [eax]
push esi
lea edx, [ebp - 0x848]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jne 0x407d4a
lea eax, [ebp - 0x638]
push eax
call fcn.00422fb6
mov dword [ebp - 0xba8], eax
lea eax, [ebp - 0x848]
push eax
call fcn.00422fb6
push dword [ebp - 0xba8]
push eax
call fcn.00422e83
add esp, 0x10
test eax, eax
jne 0x407d4a
mov eax, dword [ebp - 0xba0]
mov ecx, dword [eax]
lea edx, [ebp - 0x218]
push edx
push eax
mov byte [ebp - 0xb99], 1
call dword [ecx + 0x50]
mov eax, dword [ebp - 0xba0]
mov ecx, dword [eax]
lea edx, [ebp - 0x428]
push edx
push eax
call dword [ecx + 0x24]
push esi
lea eax, [ebp - 0x950]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push ebx
push ebx
call edi
mov eax, dword [ebp - 0xba4]
mov ecx, dword [eax]
push 1
lea edx, [ebp - 0x950]
push edx
push eax
call dword [ecx + 0x18]
push 0x447e60
jmp 0x407d44
call fcn.0043e460
test eax, eax
je 0x407d23
push ebx
push ebx
push 0x447df0
call fcn.00418ce7
push str.ModifiedLinkPath
jmp 0x407d44
call fcn.0043e460
test eax, eax
je 0x407d3f
push ebx
push ebx
push 0x447dac
call fcn.00418ce7
push 0x447dc4
call fcn.004025c8
pop ecx
mov eax, dword [ebp - 0xba4]
cmp eax, ebx
je 0x407d5a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0xba0]
cmp eax, ebx
je 0x407d6a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov al, byte [ebp - 0xb99]
jmp 0x407dc4
push str.NcStudio.exe
call fcn.004025c8
pop ecx
call fcn.0043e460
test eax, eax
je 0x407dc2
lea eax, [ebp - 0x218]
push eax
call edi
test eax, eax
jne 0x407da7
push ebx
push ebx
lea eax, [ebp - 0x218]
push eax
call fcn.00418ce7
lea eax, [ebp - 0x320]
push eax
call edi
test eax, eax
jne 0x407dc2
push ebx
push ebx
lea eax, [ebp - 0x320]
push eax
call fcn.00418ce7
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042116f
leave
ret