Function at 0x40e950
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x457bc1
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x4749e0]
xor eax, esp
mov dword [esp + 0xb8], eax
push ebp
push esi
push edi
mov eax, dword [0x4749e0]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov eax, dword [esp + 0xf8]
xor ebp, ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0xd4], ebp
mov dword [eax], ebp
mov ecx, 8
mov esi, str.__overrideFile_
lea edi, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
movsw word es:[edi], word [esi]
mov dword [esp + 0xaa], eax
mov dword [esp + 0xae], eax
mov dword [esp + 0xb2], eax
mov dword [esp + 0xb6], eax
mov dword [esp + 0xba], eax
mov dword [esp + 0xbe], eax
mov dword [esp + 0xc2], eax
mov word [esp + 0xc6], ax
lea eax, [esp + 0x88]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x40ea00
sub eax, edx
push 0xffffffffffffffff
lea ecx, [esp + 0xe0]
sar eax, 1
push ecx
mov ecx, eax
lea esi, [esp + 0x58]
call fcn.004115f0
mov byte [esp + 0xd4], 1
mov edx, dword [esp + 0x64]
add edx, 0xffffffff
mov eax, esi
push edx
push eax
xor ecx, ecx
lea esi, [esp + 0x20]
call fcn.004115f0
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x58]
mov byte [esp + 0xdc], 2
call fcn.004016d0
mov edi, 8
mov byte [esp + 0xd4], 1
cmp dword [esp + 0x30], edi
jb 0x40ea76
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00416414
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
mov esi, 7
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push ebp
lea eax, [esp + 0x74]
mov word [ecx + 4], bp
call fcn.004016d0
call fcn.0040ded0
cmp eax, ebp
jne 0x40eae4
mov edx, dword [esp + 0x10]
mov dword [edx], ebp
push 0xffffffffffffffff
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x14], ebp
push ebp
lea eax, [esp + 0x58]
mov ecx, ebx
mov word [ebx + 4], bp
call fcn.004016d0
cmp dword [esp + 0x68], edi
jb 0x40ead4
mov eax, dword [esp + 0x54]
push eax
call fcn.00416414
add esp, 4
cmp dword [esp + 0xf4], edi
mov dword [esp + 0x68], esi
jmp 0x40ed05
push 0x208
call fcn.0041640f
add esp, 4
mov edi, eax
push edi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push ebp
mov dword [esp + 0x88], esi
push 0x460c30
lea esi, [esp + 0x74]
mov dword [esp + 0x88], ebp
mov word [esp + 0x78], bp
call fcn.00403640
mov ecx, esi
mov byte [esp + 0xd4], 3
call fcn.0040df50
mov eax, edi
mov dword [esp + 0x4c], 7
mov dword [esp + 0x48], ebp
mov word [esp + 0x38], bp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x40eb50
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x3c]
call fcn.00403640
push 1
push 0x461284
mov ecx, esi
mov byte [esp + 0xdc], 4
call fcn.00408f70
cmp dword [esp + 0x84], 8
mov edx, dword [esp + 0x70]
jae 0x40eb92
lea edx, [esp + 0x70]
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x40eb97
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x3c]
call fcn.00408f70
push 0xa
push str..Overrides
lea ecx, [esp + 0x3c]
call fcn.00408f70
mov eax, dword [esp + 0x38]
mov esi, 8
cmp dword [esp + 0x4c], esi
jae 0x40ebd4
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40ec0a
cmp dword [esp + 0x4c], esi
mov eax, dword [esp + 0x38]
jae 0x40ebed
lea eax, [esp + 0x38]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [esp + 0x4c], esi
mov eax, dword [esp + 0x38]
jae 0x40ec03
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x38]
jae 0x40ec18
lea ecx, [esp + 0x38]
cmp dword [esp + 0x68], esi
mov eax, dword [esp + 0x54]
jae 0x40ec26
lea eax, [esp + 0x54]
push 1
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40ec72
cmp dword [esp + 0x4c], esi
mov edx, dword [esp + 0x10]
mov dword [edx], 1
mov edx, dword [esp + 0x38]
jae 0x40ec4c
lea edx, [esp + 0x38]
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x40ec51
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x58]
call fcn.00403640
mov esi, 8
jmp 0x40ec78
mov eax, dword [esp + 0x10]
mov dword [eax], ebp
push edi
call fcn.00416414
add esp, 4
push 0xffffffffffffffff
mov edi, 7
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x14], ebp
push ebp
lea eax, [esp + 0x58]
mov ecx, ebx
mov word [ebx + 4], bp
call fcn.004016d0
cmp dword [esp + 0x4c], esi
jb 0x40ecb1
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00416414
add esp, 4
cmp dword [esp + 0x84], esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ebp
mov word [esp + 0x38], bp
jb 0x40ecd4
mov edx, dword [esp + 0x70]
push edx
call fcn.00416414
add esp, 4
cmp dword [esp + 0x68], esi
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebp
mov word [esp + 0x70], bp
jb 0x40ecfa
mov eax, dword [esp + 0x54]
push eax
call fcn.00416414
add esp, 4
cmp dword [esp + 0xf4], esi
mov dword [esp + 0x68], edi
mov word [esp + 0x54], bp
mov dword [esp + 0x64], ebp
jb 0x40ed20
mov ecx, dword [esp + 0xe0]
push ecx
call fcn.00416414
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.004321fe
add esp, 0xc8
ret 0x20