Function at 0x4def40
Capabilities:
Copy file
Delete file
Get common file path
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x8f
push 0
push 0
dec ecx
jne 0x4def49
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 0x11], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405b5c
mov eax, dword [ebp - 8]
call fcn.00405b5c
xor eax, eax
push ebp
push 0x4df426
push dword fs:[eax]
mov dword fs:[eax], esp
mov bl, 1
lea eax, [ebp - 0x10]
call fcn.004056dc
push 0
push 0x80
push 3
push 0
push 0
push 0xc0000000
mov eax, dword [ebp - 8]
call fcn.00405b6c
push eax
call sub.kernel32.dll_CreateFileA_1
cmp eax, 0xffffffff
je 0x4defb7
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x4df09d
call sub.kernel32.dll_GetLastError_1
cmp eax, 0x20
je 0x4defca
cmp eax, 5
jne 0x4df09d
cmp byte [ebp - 0x11], 0
je 0x4df01d
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00405774
lea eax, [ebp - 8]
mov edx, 0x4df440
call fcn.004059a8
push 0x20
mov eax, dword [ebp - 8]
call fcn.00405b6c
push eax
call sub.kernel32.dll_SetFileAttributesA
mov eax, dword [ebp - 8]
call fcn.00405b6c
push eax
call sub.kernel32.dll_DeleteFileA
mov eax, dword [ebp - 8]
call fcn.0040af30
test al, al
je 0x4df09d
xor ebx, ebx
jmp 0x4df3cb
push 0
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x424]
mov eax, dword [0x4f3424]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x4df450
call fcn.00481428
mov eax, dword [ebp - 0x424]
push eax
lea edx, [ebp - 0x430]
mov eax, dword [ebp - 8]
call fcn.0040b324
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x42c], eax
mov byte [ebp - 0x428], 0xb
lea edx, [ebp - 0x42c]
xor ecx, ecx
pop eax
call fcn.0040bbec
mov eax, dword [ebp - 0x420]
movzx ecx, word [0x4df490]
mov dl, 1
call fcn.00448a1c
cmp eax, 4
je 0x4def87
xor ebx, ebx
jmp 0x4df3cb
push 0
lea eax, [ebp - 0x9a]
push eax
mov eax, dword [ebp - 4]
call fcn.00405b6c
push eax
call sub.lz32.dll_LZOpenFileA
mov esi, eax
test esi, esi
jl 0x4df1e3
push 0x1012
lea eax, [ebp - 0x122]
push eax
mov eax, dword [ebp - 8]
call fcn.00405b6c
push eax
call sub.lz32.dll_LZOpenFileA
mov edi, eax
test edi, edi
jl 0x4df170
push edi
push esi
call sub.lz32.dll_LZCopy
test eax, eax
jge 0x4df168
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0x438]
mov eax, dword [0x4f3424]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x4df49c
call fcn.00481428
mov eax, dword [ebp - 0x438]
push eax
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x450], eax
mov byte [ebp - 0x44c], 0
mov eax, dword [ebp - 4]
mov dword [ebp - 0x448], eax
mov byte [ebp - 0x444], 0xb
mov eax, dword [ebp - 8]
mov dword [ebp - 0x440], eax
mov byte [ebp - 0x43c], 0xb
lea edx, [ebp - 0x450]
mov ecx, 2
pop eax
call fcn.0040bbec
mov eax, dword [ebp - 0x434]
call fcn.00448c24
xor ebx, ebx
push edi
call sub.lz32.dll_LZClose
jmp 0x4df1db
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 0x458]
mov eax, dword [0x4f3424]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x4df4c4
call fcn.00481428
mov eax, dword [ebp - 0x458]
push eax
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x468], eax
mov byte [ebp - 0x464], 0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x460], eax
mov byte [ebp - 0x45c], 0xb
lea edx, [ebp - 0x468]
mov ecx, 1
pop eax
call fcn.0040bbec
mov eax, dword [ebp - 0x454]
call fcn.00448c24
xor ebx, ebx
push esi
call sub.lz32.dll_LZClose
jmp 0x4df24e
lea eax, [ebp - 0x46c]
push eax
mov edx, 0x4df4c4
lea ecx, [ebp - 0x470]
mov eax, dword [0x4f3424]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
call fcn.00481428
mov eax, dword [ebp - 0x470]
push eax
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x468], eax
mov byte [ebp - 0x464], 0
mov eax, dword [ebp - 4]
mov dword [ebp - 0x460], eax
mov byte [ebp - 0x45c], 0xb
lea edx, [ebp - 0x468]
mov ecx, 1
pop eax
call fcn.0040bbec
mov eax, dword [ebp - 0x46c]
call fcn.00448c24
xor ebx, ebx
test bl, bl
je 0x4df3cb
cmp dword [ebp - 0x10], 0
je 0x4df3cb
mov byte [0x4f92e4], 1
mov eax, dword [0x4f3380]
mov byte [eax], 6
lea edx, [ebp - 0x474]
mov eax, dword [ebp - 8]
call fcn.0040b324
mov edx, dword [ebp - 0x474]
mov eax, dword [0x4f335c]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 5
mov eax, dword [ebp - 0x10]
call fcn.00405b6c
push eax
mov eax, dword [ebp - 8]
call fcn.00405b6c
push eax
call sub.kernel32.dll_MoveFileExA
test eax, eax
jne 0x4df3cb
push 0x122
lea eax, [ebp - 0x24f]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea eax, [ebp - 0x47c]
lea edx, [ebp - 0x24f]
mov ecx, 0x12d
call fcn.0040594c
mov eax, dword [ebp - 0x47c]
lea ecx, [ebp - 0x478]
mov edx, 0x4df4e8
call fcn.004bdcb8
mov edx, dword [ebp - 0x478]
lea eax, [ebp - 0x41c]
call fcn.0040384c
lea eax, [ebp - 0x41c]
call fcn.004035e8
call fcn.004031e8
test eax, eax
je 0x4df337
lea eax, [ebp - 0x41c]
call fcn.004035dc
call fcn.004031e8
mov edx, 0x4df4fc
lea eax, [ebp - 0x41c]
call fcn.00405e8c
call fcn.00404190
call fcn.004031e8
cmp dword [ebp - 0x10], 0
je 0x4df367
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.004bfc00
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x41c]
call fcn.00405e8c
call fcn.004038fc
call fcn.00403054
jmp 0x4df381
mov edx, 0x4df510
lea eax, [ebp - 0x41c]
call fcn.00405e8c
call fcn.004038fc
call fcn.00403054
mov dl, 0x3d
lea eax, [ebp - 0x41c]
call fcn.00404154
call fcn.004038fc
call fcn.00403054
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.004bfc00
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x41c]
call fcn.00405e8c
call fcn.00404190
call fcn.00403054
lea eax, [ebp - 0x41c]
call fcn.00403914
call fcn.00403054
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4df42d
lea eax, [ebp - 0x47c]
mov edx, 5
call fcn.00405700
lea eax, [ebp - 0x458]
mov edx, 2
call fcn.00405700
lea eax, [ebp - 0x438]
mov edx, 3
call fcn.00405700
lea eax, [ebp - 0x424]
mov edx, 2
call fcn.00405700
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00405700
ret