Function at 0x423fc0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a2884
mov eax, dword fs:[0]
push eax
sub esp, 0xa58
mov eax, dword [0x4d61d4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xa64], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xa60], eax
mov dword [ebp - 0xa58], 0
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4243e5
mov dword [ebp - 0xa50], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xa5c], 0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x424051
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0xa54]
push eax
push 0x4ac380
push 0x17
push 0
push 0x4ac3a0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
js 0x4240ad
push dword [ebp - 0xa54]
call dword [sym.imp.ole32.dll_OleRun]
mov esi, eax
test esi, esi
js 0x42409d
mov ecx, dword [ebp - 0xa54]
mov eax, dword [ecx]
lea edx, [ebp - 0xa50]
push edx
push 0x4ac390
push ecx
call dword [eax]
mov esi, eax
mov eax, dword [ebp - 0xa54]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test esi, esi
jns 0x4240bf
mov dword [ebp - 0xa50], 0
test esi, esi
js 0x4243ce
mov byte [ebp - 4], 2
lea eax, [ebp - 0xa50]
push eax
lea ecx, [ebp - 0xa5c]
call fcn.00421b90
mov dword [ebp - 4], 1
mov esi, dword [ebp - 0xa5c]
test esi, esi
je 0x4243ce
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x424403
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x50]
test eax, eax
jns 0x424112
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x4243ce
test edi, edi
je 0x42413e
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x42440d
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x2c]
test eax, eax
jns 0x42413e
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x4243ce
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x424417
mov ecx, dword [eax]
push 5
push eax
call dword [ecx + 0x3c]
test eax, eax
jns 0x424167
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x4243ce
push 0x800
push 0
lea eax, [ebp - 0xa1c]
push eax
call fcn.004693b0
push 0x400
push ebx
push 0x400
lea eax, [ebp - 0xa1c]
push eax
call fcn.00470433
add esp, 0x1c
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov edi, dword [ebp + 0x1c]
test edi, edi
js 0x4241f2
push 0x208
push 0
lea eax, [ebp - 0x21c]
push eax
call fcn.004693b0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0xa60]
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x424421
mov ecx, dword [eax]
push edi
lea edx, [ebp - 0x21c]
push edx
push eax
call dword [ecx + 0x44]
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x42442b
mov ecx, dword [eax]
lea edx, [ebp - 0xa1c]
push edx
push eax
call dword [ecx + 0x24]
test eax, eax
jns 0x424220
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x4243ce
mov eax, dword [esi]
push 1
push dword [ebp - 0xa64]
push esi
call dword [eax + 0x18]
test eax, eax
jns 0x424241
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x4243ce
call fcn.00438dc0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push 1
mov ecx, eax
call edx
movzx eax, al
sub eax, 1
jne 0x424389
mov dword [ebp - 0xa3c], eax
mov dword [ebp - 0xa38], eax
mov dword [ebp - 0xa3c], eax
mov dword [ebp - 0xa38], 0xf
mov byte [ebp - 0xa4c], al
push 0x6b
push 0x4ac3b0
lea ecx, [ebp - 0xa4c]
call fcn.004076f0
mov byte [ebp - 4], 4
mov dword [ebp - 0xa24], 0
mov dword [ebp - 0xa20], 0
mov dword [ebp - 0xa24], 0
mov dword [ebp - 0xa20], 0xf
mov byte [ebp - 0xa34], 0
push 3
push 0x4a9c6c
lea ecx, [ebp - 0xa34]
call fcn.004076f0
mov byte [ebp - 4], 5
push 0x4a
lea eax, [ebp - 0xa4c]
push eax
lea eax, [ebp - 0xa34]
push eax
lea ecx, [ebp - 0xac]
call fcn.00409020
mov edi, eax
mov byte [ebp - 4], 7
push dword [ebp - 0xa64]
push ebx
push str.Create_link_from__s_to__s_success
push 2
lea eax, [ebp - 0xa60]
push eax
call fcn.00438c80
add esp, 0x14
mov dword [ebp - 0xa58], 1
push eax
mov ecx, edi
call fcn.00421c60
mov edi, eax
call fcn.00438dc0
mov edx, dword [eax]
push edi
mov ecx, eax
call dword [edx + 0x1c]
mov eax, 1
mov dword [ebp - 0xa58], eax
and eax, 0xfffffffe
mov dword [ebp - 0xa58], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa60]
call fcn.00404000
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xac]
call fcn.00404eb0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xa34]
call fcn.004041a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa4c]
call fcn.004041a0
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x4243aa
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 1
jmp 0x4243e7
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x4243e5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043a373
mov esp, ebp
pop ebp
ret
push 0x80004003
call fcn.0044d4f0
push 0x80004003
call fcn.0044d4f0
push 0x80004003
call fcn.0044d4f0
push 0x80004003
call fcn.0044d4f0
push 0x80004003
call fcn.0044d4f0
int3