Function at 0x4517c9
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Get file version info
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [ebp + 0xc]
push ebx
push esi
xor esi, esi
cmp eax, esi
push edi
je 0x451a4a
mov edi, dword [ebp + 0x10]
cmp edi, esi
je 0x451a4a
cmp word [eax], si
je 0x451a4a
cmp word [edi], si
je 0x451a4a
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push edi
call ebx
cmp eax, 0xffffffff
je 0x45181d
test al, 0x10
je 0x45181d
push 0x28f
push 6
jmp 0x451a51
push edi
call fcn.00451a5f
cmp dword [ebp + 0x14], 2
pop ecx
mov dword [ebp - 8], 1
jne 0x451900
mov edx, dword [ebp + 8]
cmp edx, esi
je 0x451900
cmp word [edx], si
je 0x451900
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x216]
mov word [ebp - 0x218], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
lea eax, [ebp - 0x218]
push edx
push eax
call fcn.0046634f
add esp, 0xc
lea eax, [ebp - 0x218]
push esi
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov edi, eax
cmp edi, esi
je 0x451900
lea eax, [edi + 1]
push eax
call fcn.005ed45a
cmp eax, esi
pop ecx
mov dword [ebp - 4], eax
je 0x4518f7
lea eax, [edi + 1]
push eax
push esi
push dword [ebp - 4]
call fcn.00466010
add esp, 0xc
lea eax, [ebp - 0x218]
push dword [ebp - 4]
push edi
push esi
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x4518f7
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], esi
push eax
lea eax, [ebp - 0x10]
push eax
push str.StringFileInfo040904b0Comments
push dword [ebp - 4]
mov dword [ebp - 0xc], esi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4518f7
push 2
push 0x6801e8
push dword [ebp - 0x10]
call fcn.00466bdc
add esp, 0xc
test eax, eax
jne 0x4518f7
mov dword [ebp - 8], esi
push dword [ebp - 4]
call fcn.005ed483
pop ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 4], esi
cmp eax, esi
je 0x451981
cmp word [eax], si
je 0x451981
mov edi, dword [ebp + 0x10]
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x45192b
push 0x2c4
push 4
jmp 0x451a51
push edi
call ebx
cmp eax, 0xffffffff
je 0x451941
test al, 1
je 0x451941
and al, 0xfe
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
push 0x80
push 3
push esi
push 1
push 0xc0000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x451967
push 0x2d8
jmp 0x4519e1
push dword [ebp - 8]
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push eax
call fcn.00450cb5
add esp, 0x10
mov dword [ebp - 4], eax
jmp 0x451a28
push dword [ebp + 0x10]
call ebx
mov ebx, 0x80
push esi
push ebx
push 4
push esi
mov edi, 0xc0000000
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push edi
mov dword [ebp - 0xc], eax
push dword [ebp + 0x10]
call esi
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x4519ec
mov eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
je 0x4519c5
test al, 1
je 0x4519c5
and al, 0xfe
push eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0
push ebx
push 3
push 0
push 1
push edi
push dword [ebp + 0x10]
call esi
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x4519ec
push 0x2fb
push 4
call fcn.00450b92
pop ecx
pop ecx
jmp 0x451a3c
push 0
push 0
push dword [ebp + 8]
call fcn.0045179a
add esp, 0xc
test eax, eax
jne 0x451a0f
push 0x300
push 0xe
call fcn.00450b92
pop ecx
pop ecx
jmp 0x451a26
push dword [ebp - 8]
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00450cb5
add esp, 0x10
mov dword [ebp - 4], eax
xor esi, esi
cmp dword [ebp + 8], 0xffffffff
je 0x451a37
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], esi
jne 0x451a45
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 4]
jmp 0x451a5a
push 0x288
push 1
call fcn.00450b92
pop ecx
xor eax, eax
pop ecx
pop edi
pop esi
pop ebx
leave
ret