Function at 0x413f37
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1080
call fcn.0042b9a0
mov eax, dword [0x4516e0]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov eax, ecx
mov edi, ebx
mov dword [ebp - 0x1078], eax
mov dword [ebp - 0x107c], edi
call fcn.00414776
mov dword [ebp - 0x1080], eax
test eax, eax
jg 0x413f7c
xor eax, eax
jmp 0x4142d3
xor eax, eax
push 0x40e
mov word [ebp - 0xe44], ax
lea eax, [ebp - 0xe42]
push ebx
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0xe44]
push esi
push 0x448d64
mov esi, 0x207
push esi
push eax
call fcn.00420412
lea ecx, [ebp - 0xe44]
add esp, 0x10
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x413fbe
sub ecx, edx
sar ecx, 1
cmp word [ebp + ecx*2 - 0xe46], 0x5c
je 0x413fed
push esi
lea eax, [ebp - 0xe44]
push 0x448d58
push eax
call fcn.00421006
add esp, 0xc
lea ecx, [ebp - 0xe44]
call fcn.0041ae20
test eax, eax
je 0x413f75
cmp dword [ebp - 0x1080], ebx
jle 0x4142d1
mov esi, dword [ebp - 0x1078]
push 0x230
lea eax, [ebp - 0x1074]
push 0
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x1074]
mov ecx, esi
push eax
push ebx
call fcn.004147c6
xor eax, eax
push 0x40e
push eax
mov word [ebp - 0x41c], ax
lea eax, [ebp - 0x41a]
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x1070]
push eax
lea eax, [ebp - 0xe44]
push eax
push str._s_s
lea eax, [ebp - 0x41c]
push 0x207
push eax
call fcn.00420412
add esp, 0x14
test byte [ebp - 0xe68], 0x10
je 0x4140af
push 0x44a7b8
lea eax, [ebp - 0x1070]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x4142be
lea ecx, [ebp - 0x41c]
call fcn.0041ae20
jmp 0x4142be
lea ecx, [ebp - 0x41c]
call fcn.0041ae20
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4140fb
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4140fb
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
push 0x40e
push eax
mov word [ebp - 0xa34], ax
lea eax, [ebp - 0xa32]
push eax
call fcn.00422860
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [ebp - 0x41c]
push eax
push str._s__d
lea eax, [ebp - 0xa34]
push 0x207
push eax
call fcn.00420412
add esp, 0x14
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41419f
mov ecx, str.IDR_ZIP_MAJOR
mov eax, str.IDR_ZIP_7ZA
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414181
test dx, dx
je 0x41417d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414181
add eax, 4
add ecx, 4
test dx, dx
jne 0x41415b
xor eax, eax
jmp 0x414186
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41419f
push ecx
lea edx, [ebp - 0x1070]
call fcn.004149a6
pop ecx
test eax, eax
jne 0x4142be
push ebx
mov ecx, esi
call fcn.004148b2
mov esi, eax
test esi, esi
je 0x4142b8
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x624], ax
lea eax, [ebp - 0x622]
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x41c]
push eax
push str._s.bak
lea eax, [ebp - 0x624]
push 0x103
push eax
call fcn.00420412
add esp, 0x10
test edi, edi
je 0x414228
push 1
lea eax, [ebp - 0x624]
push eax
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x414228
push esi
call fcn.0041f658
pop ecx
jmp 0x4142b8
lea eax, [ebp - 0xa34]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0xe48]
lea eax, [ebp - 0xa34]
push eax
mov ecx, esi
call fcn.00413d00
pop ecx
push esi
mov dword [ebp - 0x107c], eax
call fcn.0041f658
cmp dword [ebp - 0x107c], 0
pop ecx
je 0x4142ab
lea eax, [ebp - 0xa34]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4142ab
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea eax, [ebp - 0x41c]
push 1
push eax
lea eax, [ebp - 0xa34]
push eax
call esi
test eax, eax
jne 0x4142ab
test edi, edi
je 0x4142a3
push 1
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x624]
push eax
call esi
lea eax, [ebp - 0xa34]
jmp 0x4142b1
lea eax, [ebp - 0x624]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [ebp - 0x1078]
inc ebx
cmp ebx, dword [ebp - 0x1080]
jl 0x414012
mov edi, dword [ebp - 0x107c]
mov eax, edi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041e635
mov esp, ebp
pop ebp
ret 4