Function at 0x417f50
Capabilities:
Check if file exists
Delete file
Get file attributes
Get file size
Move file
Set file attributes
Timestomp file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b194b
push eax
mov dword fs:[0], esp
sub esp, 0xb5c
push ebx
push ebp
push esi
xor esi, esi
push edi
push esi
call fcn.00413b20
mov ebp, dword [esp + 0xb80]
add esp, 4
cmp ebp, esi
je 0x41875b
cmp word [ebp], si
je 0x41875b
mov eax, dword [esp + 0xb80]
cmp eax, esi
je 0x41875b
cmp word [eax], si
je 0x41875b
cmp dword [0x4f58bc], esi
jne 0x417fbf
push 0x28da
push 2
jmp 0x418762
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push ebp
call edi
test al, 0x10
mov dword [esp + 0x54], eax
je 0x417fdc
push 0x28e2
push 0x1d
jmp 0x418762
mov eax, dword [esp + 0xb80]
push eax
call edi
mov ebx, eax
cmp ebx, 0xffffffff
je 0x417ffe
test bl, 0x10
je 0x417ffe
push 0x28ec
push 0x1e
jmp 0x418762
mov ecx, dword [0x4bc794]
mov eax, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xb90]
mov dword [esp + 0xb74], esi
cmp ecx, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], esi
je 0x41804a
mov ecx, dword [esp + 0xb94]
mov dword [esp + 0x20], eax
cmp ecx, esi
jne 0x41804e
mov dword [esp + 0x20], esi
cmp ebx, 0xffffffff
jne 0x418057
mov dword [esp + 0x20], esi
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0x405]
mov byte [esp + 0x404], 0
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0xb88]
push ebp
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x3c], edx
call fcn.004135c0
add esp, 4
cmp eax, esi
mov dword [esp + 0x50], eax
jne 0x4184a5
mov ecx, dword [esp + 0xb9c]
mov eax, 5
cmp ecx, esi
je 0x4180a7
mov eax, 7
push esi
push 0x80
push 3
push esi
push eax
push SysReAllocStringLen
push ebp
call fcn.00429640
mov ebp, eax
add esp, 0x1c
cmp ebp, 0xffffffff
mov dword [esp + 0x3c], ebp
je 0x4185ad
push esi
push esi
push esi
push esi
push esi
push esi
push esi
push ebp
call fcn.00413f90
add esp, 0x20
test eax, eax
jne 0x4185c4
cmp ebx, 0xffffffff
setne al
mov esi, eax
test esi, esi
je 0x4181a2
mov edx, dword [esp + 0xb80]
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x5c]
mov dword [esp + 0x58], 0
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x58]
push ecx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x41818b
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x418133
mov eax, dword [esp + 0x74]
test eax, eax
je 0x41818b
mov eax, dword [0x4f5e7c]
mov edi, dword [esp + 0xb80]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0x4e1afc
push edi
call fcn.00429330
add esp, 0x10
test eax, eax
je 0x41817c
mov edx, dword [esp + 0x10]
push 0
push edx
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x418173
mov dword [esp + 0x18], 1
jmp 0x41818b
push 0x2973
push 0x28
jmp 0x418183
push 0x297a
push 0x24
call fcn.00413b00
add esp, 8
test bl, 1
je 0x4181a2
mov eax, dword [esp + 0xb80]
and ebx, 0xfffffffe
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, dword [esp + 0xb80]
push 0
push 0x80
push 4
push 0
push 0
push 0xc0000000
push ecx
call fcn.00429640
add esp, 0x1c
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x4185cd
test esi, esi
je 0x4181e5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0
test eax, eax
je 0x4181ed
mov dword [esp + 0x14], 1
test esi, esi
mov dword [esp + 0x44], 1
je 0x418371
mov eax, dword [esp + 0x18]
xor esi, esi
or ebx, 0xffffffff
or ebp, 0xffffffff
cmp eax, esi
je 0x418270
mov edx, dword [esp + 0x10]
push esi
push 0x80
push 4
push esi
push 7
push SysReAllocStringLen
push edx
call fcn.00429640
mov ebp, eax
add esp, 0x1c
cmp ebp, 0xffffffff
je 0x418274
cmp dword [esp + 0x20], esi
je 0x41826c
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], esi
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, esi
jne 0x418251
cmp dword [esp + 0x2c], esi
je 0x418268
cmp dword [esp + 0xb90], 1
jne 0x41826c
push ebp
call fcn.00413320
add esp, 4
test eax, eax
je 0x41826c
mov dword [esp + 0x20], esi
mov ebx, ebp
jmp 0x418274
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0xb84], esi
jne 0x418361
cmp ebx, 0xffffffff
je 0x418361
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0x7d]
mov byte [esp + 0x7c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x7c]
push ecx
push ebx
stosb byte es:[edi], al
call fcn.004173a0
add esp, 8
test eax, eax
je 0x418361
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x404], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0xb88]
mov dword [esp + 0x40c], ecx
mov ecx, 0x66
lea esi, [esp + 0xc4]
lea edi, [esp + 0x44c]
mov dword [esp + 0x410], edx
test eax, eax
mov dword [esp + 0x44], 0
rep movsd dword es:[edi], dword [esi]
jne 0x418361
mov eax, dword [esp + 0x3fc]
test eax, eax
jbe 0x418361
push eax
call fcn.004a2973
mov ecx, dword [esp + 0x400]
mov edx, eax
mov esi, ecx
xor eax, eax
mov edi, edx
mov dword [esp + 0x3c], edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x400]
lea eax, [esp + 0x30]
push eax
push ecx
push edx
push ebx
mov dword [esp + 0x40], 0
call fcn.00414130
add esp, 0x14
cmp ebp, 0xffffffff
je 0x41836d
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebp, dword [esp + 0x3c]
mov ecx, 0xf7
xor eax, eax
lea edi, [esp + 0x78d]
mov byte [esp + 0x78c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x78c]
push edx
stosb byte es:[edi], al
call fcn.00417890
add esp, 4
test eax, eax
je 0x4185d6
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x404]
push eax
push ecx
call fcn.004179e0
add esp, 8
test eax, eax
je 0x4185df
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x408]
push eax
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x794]
push ecx
push edx
push eax
push ebp
mov dword [esp + 0x64], 0
call fcn.00418790
mov ecx, dword [esp + 0x64]
add esp, 0x18
test ecx, ecx
je 0x418409
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x418409
mov dword [esp + 0x14], 1
test eax, eax
je 0x4185ee
mov bl, byte [esp + 0xb98]
test bl, 1
je 0x418469
lea ecx, [esp + 0x44]
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x30]
push edx
xor edi, edi
push eax
push ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x30]
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x41846f
mov esi, dword [esp + 0x1c]
xor edi, edi
test bl, 4
je 0x418487
lea ecx, [esp + 0x34]
lea edx, [esp + 0x28]
push ecx
push edx
push ebp
call fcn.00428e80
add esp, 0xc
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0xba0], edi
je 0x41849e
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
xor ebx, ebx
jmp 0x4185ff
xor eax, eax
cmp ebx, 0xffffffff
setne al
cmp eax, esi
je 0x418547
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x5c]
mov dword [esp + 0x58], esi
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xb80]
lea eax, [esp + 0x58]
push eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x41853b
cmp dword [esp + 0x78], esi
jne 0x4184ea
cmp dword [esp + 0x74], esi
je 0x41853b
mov ecx, dword [0x4f5e7c]
lea edx, [esp + 0x10]
push ecx
push edx
push 0x4e1afc
push edi
call fcn.00429330
add esp, 0x10
test eax, eax
je 0x41852c
mov eax, dword [esp + 0x10]
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x418523
mov dword [esp + 0x18], 1
jmp 0x41853b
push 0x2922
push 0x28
jmp 0x418533
push 0x2929
push 0x24
call fcn.00413b00
add esp, 8
cmp dword [esp + 0x18], esi
jne 0x41854e
mov dword [esp + 0x14], esi
jmp 0x418556
mov edi, dword [esp + 0xb80]
mov dword [esp + 0x14], 1
test byte [esp + 0xb98], 4
je 0x418573
lea ecx, [esp + 0x34]
lea edx, [esp + 0x28]
push ecx
push edx
push ebp
call fcn.00429050
add esp, 0xc
mov eax, dword [esp + 0xba0]
push eax
push 0xffffffffffffffff
push esi
push edi
push ebp
call fcn.00412440
add esp, 0x14
test eax, eax
je 0x418596
mov dword [esp + 0x24], esi
mov ebx, esi
xor edi, edi
jmp 0x41860b
push 0x293d
push 0x24
call fcn.00413b00
mov ebx, dword [esp + 0x2c]
add esp, 8
xor edi, edi
jmp 0x41860b
push 0x2955
push 3
call fcn.00413b00
mov ebx, dword [esp + 0x2c]
add esp, 8
xor edi, edi
jmp 0x41860b
push 0x295c
push 0x2a
jmp 0x4185e6
push 0x2990
push 4
jmp 0x4185e6
push 0x29e7
push 7
jmp 0x4185e6
push 0x29ee
push 8
call fcn.00413b00
add esp, 8
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
xor edi, edi
cmp esi, 0xffffffff
je 0x41860b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0xb88], edi
jne 0x418625
mov eax, dword [esp + 0x38]
cmp eax, edi
je 0x418625
push eax
call fcn.004a299c
add esp, 4
cmp ebx, edi
jne 0x4186e1
cmp dword [esp + 0x50], edi
jne 0x41866b
cmp dword [0x4f5e70], edi
je 0x41866b
mov esi, dword [esp + 0xb80]
lea ecx, [esp + 0x404]
push ecx
push esi
call fcn.0041aaf0
add esp, 8
test eax, eax
jne 0x418672
push 0x2a21
push 0x1c
call fcn.00413b00
add esp, 8
or ebx, 0xffffffff
jmp 0x4186e8
mov esi, dword [esp + 0xb80]
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x418689
mov edx, dword [esp + 0x34]
push edx
push eax
push esi
call fcn.00429100
add esp, 0xc
test byte [esp + 0xb98], 2
je 0x41869f
mov eax, dword [esp + 0x54]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [esp + 0x18], edi
je 0x41872e
cmp dword [esp + 0x20], edi
je 0x4186c3
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xb94]
push 0x103
push ecx
push edx
jmp 0x418726
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x41872e
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00429150
add esp, 4
jmp 0x41872e
mov esi, dword [esp + 0xb80]
cmp dword [esp + 0x14], edi
je 0x4186f5
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esp + 0x18], edi
je 0x41872e
mov edx, dword [esp + 0x10]
push 1
push esi
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x41872e
mov eax, dword [esp + 0xb8c]
or ebx, 0xffffffff
cmp eax, edi
je 0x41872e
mov ecx, dword [esp + 0x10]
push 0x103
push ecx
push eax
call fcn.00438675
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x418743
push eax
call fcn.004a299c
add esp, 4
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x10]
mov dword [esp + 0xb74], 0xffffffff
call fcn.00447cd0
mov eax, ebx
jmp 0x41876f
push 0x28d4
push 1
call fcn.00413b00
add esp, 8
mov eax, 1
mov ecx, dword [esp + 0xb6c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb68
ret