Function at 0x45f780
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x521b61
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2044
call fcn.004fe1a0
mov eax, dword [0x5a4aa8]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x1834], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1824], eax
xor ebx, ebx
mov byte [ebp - 0x181d], bl
mov dword [ebp - 0x182c], ebx
mov dword [ebp - 0x1830], ebx
mov dword [ebp - 4], ebx
cmp esi, ebx
je 0x4602bf
mov eax, esi
lea edx, [eax + 2]
jmp 0x45f7f0
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x45f7f0
sub eax, edx
sar eax, 1
je 0x4602bf
call fcn.004290d0
mov edx, 1
mov ecx, eax
call fcn.0047f9f0
mov edi, eax
cmp edi, ebx
je 0x4602bf
mov dword [ebp - 0x182c], ebx
push 0x800
push ebx
lea ecx, [ebp - 0x181c]
push ecx
call fcn.004fd670
add esp, 0xc
mov edx, dword [ebp - 0x1830]
push edx
push esi
push str.SHORTCUT_INFO
push str._s__s__d_
lea edx, [ebp - 0x181c]
call fcn.00404380
add esp, 0x10
lea ebx, [ebp - 0x182c]
lea edx, [ebp - 0x181c]
mov ecx, edi
call fcn.00487c40
test eax, eax
jne 0x45f8aa
push eax
call fcn.004290d0
push eax
mov ecx, dword [ebp - 0x182c]
xor edx, edx
call fcn.004827c0
test al, al
jne 0x45f8aa
mov eax, dword [ebp - 0x182c]
test eax, eax
je 0x45f89c
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
add dword [ebp - 0x1830], 1
xor ebx, ebx
jmp 0x45f820
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea ecx, [ebp - 0x101c]
push ecx
call fcn.004fd670
add esp, 0xc
push str.NAME
lea edx, [ebp - 0x181c]
push edx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x4602ad
push eax
push pe_nt_image_headers32
mov esi, dword [ebp - 0x1824]
push esi
mov eax, ebx
push eax
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45f94d
push 0xff
mov ecx, ebx
push ecx
push pe_nt_image_headers32
push esi
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea edx, [ebp - 0x81c]
push edx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea eax, [ebp - 0x101c]
push eax
call fcn.004fd670
add esp, 0xc
push str.TARGET
lea ecx, [ebp - 0x181c]
push ecx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x460297
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494ad0
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494c80
lea ebx, [esi + 0x200]
mov dword [ebp - 0x1828], ebx
push 0
push 0x400
push ebx
lea edx, [ebp - 0x81c]
push edx
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fa17
push 0x3ff
lea eax, [ebp - 0x81c]
push eax
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea ecx, [ebp - 0x81c]
push ecx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea edx, [ebp - 0x101c]
push edx
call fcn.004fd670
add esp, 0xc
push str.START_IN
lea eax, [ebp - 0x181c]
push eax
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45fad7
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494ad0
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494c80
lea ebx, [esi + 0x1a00]
push 0
push 0x400
push ebx
lea ecx, [ebp - 0x81c]
push ecx
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fad7
push 0x3ff
lea edx, [ebp - 0x81c]
push edx
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea ecx, [ebp - 0x101c]
push ecx
call fcn.004fd670
add esp, 0xc
push str.ARGUMENT
lea edx, [ebp - 0x181c]
push edx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45fb7e
lea ebx, [esi + 0xa00]
push eax
push 0x400
push ebx
lea eax, [ebp - 0x81c]
push eax
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fb7e
push 0x3ff
lea ecx, [ebp - 0x81c]
push ecx
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea edx, [ebp - 0x81c]
push edx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea eax, [ebp - 0x101c]
push eax
call fcn.004fd670
add esp, 0xc
push str.DESCRIPTION
lea ecx, [ebp - 0x181c]
push ecx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45fc25
lea ebx, [esi + 0x2200]
push eax
push 0x400
push ebx
lea edx, [ebp - 0x81c]
push edx
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fc25
push 0x3ff
lea eax, [ebp - 0x81c]
push eax
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea ecx, [ebp - 0x81c]
push ecx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea edx, [ebp - 0x101c]
push edx
call fcn.004fd670
add esp, 0xc
push str.DESCRIPTION_MUI
lea eax, [ebp - 0x181c]
push eax
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45fccc
lea ebx, [esi + 0x2a00]
push eax
push 0x400
push ebx
lea ecx, [ebp - 0x81c]
push ecx
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fccc
push 0x3ff
lea edx, [ebp - 0x81c]
push edx
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea ecx, [ebp - 0x101c]
push ecx
call fcn.004fd670
add esp, 0xc
push str.FOLDER_NAME
lea edx, [ebp - 0x181c]
push edx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45fd8c
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494ad0
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494c80
lea ebx, [esi + 0x3200]
push 0
push 0x400
push ebx
lea eax, [ebp - 0x81c]
push eax
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fd8c
push 0x3ff
lea ecx, [ebp - 0x81c]
push ecx
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea edx, [ebp - 0x81c]
push edx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea eax, [ebp - 0x101c]
push eax
call fcn.004fd670
add esp, 0xc
push str.ICON_FILE
lea ecx, [ebp - 0x181c]
push ecx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45fe4c
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494ad0
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494c80
lea ebx, [esi + 0x1200]
push 0
push 0x400
push ebx
lea edx, [ebp - 0x81c]
push edx
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x45fe4c
push 0x3ff
lea eax, [ebp - 0x81c]
push eax
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea ecx, [ebp - 0x81c]
push ecx
call fcn.004fd670
add esp, 0xc
lea ebx, [esi + 0x4a04]
push ebx
mov edx, str.index
lea ecx, [ebp - 0x101c]
call fcn.00488010
test eax, eax
je 0x45fe83
mov dword [ebx], 0
push 0x800
push 0
lea edx, [ebp - 0x81c]
push edx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea eax, [ebp - 0x101c]
push eax
call fcn.004fd670
add esp, 0xc
push str.GROUP
lea ecx, [ebp - 0x181c]
push ecx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45ff07
push str.DESKTOP
mov edx, ebx
push edx
call fcn.004f9f1e
add esp, 8
test eax, eax
sete al
mov byte [esi + 0x4a08], al
push 0x800
push 0
lea ecx, [ebp - 0x81c]
push ecx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea edx, [ebp - 0x101c]
push edx
call fcn.004fd670
add esp, 0xc
push str.PERMISSION
lea eax, [ebp - 0x181c]
push eax
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x45ff8b
push 0x539e1c
mov ecx, ebx
push ecx
call fcn.004f9f1e
add esp, 8
test eax, eax
setne dl
mov byte [esi + 0x4a09], dl
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea ecx, [ebp - 0x101c]
push ecx
call fcn.004fd670
add esp, 0xc
push str.MUI_RES_DLL
lea edx, [ebp - 0x181c]
push edx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x46004b
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494ad0
mov ecx, 0x539d98
mov edx, ebx
call fcn.00494c80
lea ebx, [esi + 0x3a00]
push 0
push 0x400
push ebx
lea eax, [ebp - 0x81c]
push eax
call fcn.004290d0
mov ecx, eax
call fcn.00480760
test eax, eax
je 0x46004b
push 0x3ff
lea ecx, [ebp - 0x81c]
push ecx
push 0x400
push ebx
call fcn.004fa71b
add esp, 0x10
push 0x800
push 0
lea edx, [ebp - 0x81c]
push edx
call fcn.004fd670
add esp, 0xc
push 0x800
push 0
lea eax, [ebp - 0x101c]
push eax
call fcn.004fd670
add esp, 0xc
push str.MUI_RES_ID
lea ecx, [ebp - 0x181c]
push ecx
push 0x5352d4
lea edx, [ebp - 0x101c]
call fcn.00404380
add esp, 0xc
push 0
push 0x400
lea ebx, [ebp - 0x81c]
lea edx, [ebp - 0x101c]
mov ecx, edi
call fcn.00487e80
test eax, eax
jne 0x4600c5
mov edx, ebx
push edx
call fcn.004fad3f
add esp, 4
mov dword [esi + 0x4a00], eax
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.004fd670
add esp, 0xc
push 0x400
lea ecx, [ebp - 0x81c]
push ecx
mov ebx, str.delete
lea edx, [ebp - 0x181c]
mov ecx, edi
call fcn.00487fa0
test eax, eax
jne 0x46011b
push str.FALSE
lea edx, [ebp - 0x81c]
push edx
call fcn.004f9f1e
add esp, 8
test eax, eax
jne 0x46011b
mov byte [esi + 0x4a0a], al
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.004fd670
add esp, 0xc
push 0x400
lea ecx, [ebp - 0x81c]
push ecx
mov ebx, str.is_manual
lea edx, [ebp - 0x181c]
mov ecx, edi
call fcn.00487fa0
test eax, eax
jne 0x460172
push str.TRUE
lea edx, [ebp - 0x81c]
push edx
call fcn.004f9f1e
add esp, 8
test eax, eax
jne 0x460172
mov byte [esi + 0x4a0b], 1
mov esi, dword [ebp - 0x1828]
push esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call edi
test eax, eax
jne 0x460265
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
jne 0x460265
lea esi, [ebp - 0x2050]
call fcn.0049d8e0
mov byte [ebp - 4], 1
mov bl, byte [eax + 0x18]
mov byte [ebp - 4], 0
mov ecx, esi
call fcn.0049d9f0
test bl, bl
je 0x460243
mov dword [ebp - 0x1824], 0
lea esi, [ebp - 0x2050]
call fcn.0049d8e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1824]
call fcn.0049da10
mov byte [ebp - 4], 0
mov ecx, esi
call fcn.0049d9f0
mov esi, dword [ebp - 0x1828]
push esi
call edi
test eax, eax
je 0x460202
mov byte [ebp - 0x181d], 1
jmp 0x46021c
push esi
mov eax, dword [ebp - 0x1834]
push eax
push str.__s__shortcut_has_invalid_target_file__s_
mov ecx, 0x649e50
call fcn.004918f0
add esp, 0xc
lea esi, [ebp - 0x2050]
call fcn.0049d8e0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1824]
call fcn.0049da20
mov byte [ebp - 4], 0
mov ecx, esi
call fcn.0049d9f0
jmp 0x46026c
mov ecx, dword [ebp - 0x1828]
push ecx
mov edx, dword [ebp - 0x1834]
push edx
push str.__s__shortcut_has_invalid_target_file__s_
mov ecx, 0x649e50
call fcn.004918f0
add esp, 0xc
jmp 0x46026c
mov byte [ebp - 0x181d], 1
mov dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0x181d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.004fa103
mov esp, ebp
pop ebp
ret 4
push str.Get_shortcut_Target_fail___
mov ecx, 0x649e50
call fcn.004918f0
add esp, 4
xor al, al
jmp 0x460279
push str.__Get_shortcut_name_fail___
mov ecx, 0x649e50
call fcn.004918f0
add esp, 4
xor al, al
jmp 0x460279