Function at 0x45f757
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x3c
mov eax, 0x4adb27
call fcn.004711ef
mov edi, dword [ebp + 0x214]
mov dword [ebp - 0x20], ecx
mov esi, 0x4f1850
mov ecx, esi
call fcn.00439d00
xor ebx, ebx
mov dword [ebp - 0x2c], eax
cmp eax, ebx
jne 0x45f7a1
push 8
pop eax
jmp 0x45fbe2
mov ecx, esi
call fcn.00439ced
mov dword [ebp - 0x24], eax
cmp eax, ebx
je 0x45f799
push edi
lea ecx, [ebp - 0x10]
call fcn.00403c4d
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], ebx
call fcn.0041558e
lea ecx, [ebp - 0x10]
call fcn.004155f6
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx - 0xc]
cmp eax, ebx
jne 0x45f7ea
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040290e
mov eax, esi
jmp 0x45fbe2
cmp eax, 0x80
jle 0x45f7f6
push 9
pop esi
jmp 0x45f7d8
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x45f805
push 3
jmp 0x45f7f3
push dword [ebp - 0x10]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call edi
test eax, eax
je 0x45f825
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x45f825
push 2
jmp 0x45f7f3
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x10]
push eax
call fcn.0045ca96
test eax, eax
je 0x45f839
push 5
jmp 0x45f7f3
push dword [ebp - 0x10]
call edi
test eax, eax
jne 0x45f885
lea ecx, [ebp - 0x48]
call fcn.00432f1c
lea eax, [ebp - 0x18]
push eax
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 1
call fcn.00403c4d
lea ecx, [ebp - 0x48]
call fcn.004360fd
lea ecx, [ebp - 0x48]
cmp eax, ebx
jne 0x45f87c
call fcn.004360a7
push 7
jmp 0x45f7f3
mov byte [ebp - 4], 0
call fcn.004360a7
mov ecx, esi
call fcn.00439cc6
mov ecx, eax
call fcn.0045bab5
cmp eax, ebx
je 0x45f8bb
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
test eax, eax
je 0x45f8bb
lea ecx, [ebp - 0x10]
call fcn.00414b85
push eax
call fcn.0045df20
pop ecx
test eax, eax
je 0x45f8bb
push 0x11
jmp 0x45f7f3
push str.:_Recyle.Bin
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x45f8d4
push 0x12
jmp 0x45f7f3
mov edi, dword [ebp - 0x20]
mov eax, dword [edi + 0x108]
cmp eax, ebx
jne 0x45fae1
push 0x208
lea eax, [ebp]
push ebx
push eax
call fcn.004701a0
add esp, 0xc
push 0x104
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push dword [ebp - 0x10]
lea eax, [ebp]
push eax
push str.CheckSetupTargetPath
call fcn.00404d3e
add esp, 0xc
push dword [ebp - 0x10]
lea eax, [ebp]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsSameRootW]
test eax, eax
jne 0x45f9a6
mov ecx, edi
call fcn.0045bab5
cmp eax, ebx
je 0x45f988
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
test eax, eax
je 0x45f988
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], ebx
jge 0x45f952
push 0x80070057
call fcn.00402932
movzx eax, word [eax]
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push 1
push eax
call fcn.00440411
mov ecx, edi
call fcn.0045d2a2
cmp eax, ebx
je 0x45f988
push ebx
push ebx
push 0xa2
call fcn.00402e62
mov ecx, eax
call fcn.00402ef3
push 0x10
jmp 0x45f7f3
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], ebx
jl 0x45f948
movzx eax, word [eax]
push eax
mov ecx, edi
call fcn.0045bc00
test eax, eax
je 0x45f9a6
push 0xf
jmp 0x45f7f3
mov esi, 0x4baba4
push esi
lea ecx, [ebp - 0x14]
call fcn.004025d8
mov eax, dword [ebp - 0x14]
push dword [eax - 0xc]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.0041f073
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.00410409
lea ecx, [ebp - 0x14]
call fcn.00410409
mov ecx, edi
call fcn.0045bdc5
test eax, eax
jne 0x45fa71
push dword [ebp - 0x14]
lea ecx, [ebp - 0x1c]
call fcn.0040cdca
test eax, eax
lea eax, [ebp - 0x10]
je 0x45fa46
push esi
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.004039cd
add esp, 0xc
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov ecx, dword [ebp - 0x18]
test eax, eax
setne bl
add ecx, 0xfffffff0
call fcn.0040290e
test bl, bl
je 0x45fa6e
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040290e
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0040290e
push 0xd
jmp 0x45f7f3
push eax
call fcn.00453388
pop ecx
test eax, eax
jne 0x45fa71
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040290e
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0040290e
push 0xe
jmp 0x45f7f3
mov edi, dword [ebp - 0x20]
push dword [ebp - 0x14]
lea ecx, [ebp - 0x1c]
call fcn.0040cdca
push ecx
mov dword [ebp - 0x18], esp
test eax, eax
je 0x45fab9
mov eax, esp
push esi
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.004039cd
add esp, 0xc
call fcn.00454557
pop ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
test eax, eax
jne 0x45fac6
call fcn.0040290e
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0040290e
jmp 0x45f875
lea eax, [ebp - 0x10]
mov ecx, esp
push eax
call fcn.00403c4d
jmp 0x45fa94
call fcn.0040290e
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.0040290e
mov esi, 0x4f1850
xor ebx, ebx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x20]
call fcn.00403c4d
lea eax, [ebp - 0x18]
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.0045ca4e
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 5
cmp dword [edi - 0xc], ebx
je 0x45fb27
push edi
push 0x104
lea ecx, [ebp - 0x20]
call fcn.00415e37
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x20]
call fcn.0040b353
mov ebx, dword [ebp - 0x20]
push ebx
mov ecx, esi
call fcn.00439d44
test eax, eax
je 0x45fb4d
lea ecx, [edi - 0x10]
call fcn.0040290e
lea ecx, [ebx - 0x10]
call fcn.0040290e
push 0xb
jmp 0x45f7f3
push ebx
mov ecx, esi
call fcn.0043c642
test eax, eax
je 0x45fb70
lea ecx, [edi - 0x10]
call fcn.0040290e
lea ecx, [ebx - 0x10]
call fcn.0040290e
push 0xc
jmp 0x45f7f3
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
jl 0x45f948
movzx eax, word [eax]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x4c]
mov esi, edx
mov dword [ebp - 0x24], eax
shrd eax, esi, 0x14
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
push eax
shr esi, 0x14
call dword [ecx + 0x30]
cdq
cmp esi, edx
ja 0x45fbc5
jb 0x45fbae
cmp dword [ebp - 0x28], eax
jae 0x45fbc5
lea ecx, [edi - 0x10]
call fcn.0040290e
lea ecx, [ebx - 0x10]
call fcn.0040290e
push 6
jmp 0x45f7f3
lea ecx, [edi - 0x10]
call fcn.0040290e
lea ecx, [ebx - 0x10]
call fcn.0040290e
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040290e
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 + 0x208]
xor ecx, ebp
call fcn.0047021a
add ebp, 0x20c
leave
ret 4