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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x944
mov eax, dword [0x434044]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
push 0x80
xor ebx, ebx
push eax
mov edi, ecx
mov dword [ebp - 0x93c], eax
mov dword [ebp - 0x944], ebx
call esi
push edi
call fcn.00406773
test al, al
je 0x4064ea
push dword [ebp + 0xc]
push dword [ebp - 0x93c]
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x944], eax
jmp 0x406747
lea eax, [ebp - 0x210]
push edi
push eax
call fcn.00417615
lea eax, [ebp - 0x210]
push eax
call fcn.00417e13
mov edi, 0x206
push edi
mov word [ebp + eax*2 - 0x212], 0x5f
lea eax, [ebp - 0x416]
push ebx
push eax
mov word [ebp - 0x418], bx
call fcn.00417990
add esp, 0x18
push ebx
lea eax, [ebp - 0x8b0]
push eax
lea eax, [ebp - 0x210]
push eax
call sub.LZ32.dll_LZOpenFileW
cmp eax, 0xffffffff
mov dword [ebp - 0x940], eax
jne 0x40660f
push edi
lea eax, [ebp - 0x61e]
push ebx
push eax
mov word [ebp - 0x620], bx
call fcn.00417990
add esp, 0xc
lea eax, [ebp - 0x620]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x40660f
push edi
lea eax, [ebp - 0x826]
push ebx
push eax
mov word [ebp - 0x828], bx
call fcn.00417990
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
lea edi, [ebp - 0x828]
xor ebx, ebx
call fcn.00406f10
mov eax, edi
push eax
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0x418]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 1
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x80
lea eax, [ebp - 0x418]
push eax
call esi
push 0xffffffffffffffff
call sub.LZ32.dll_LZClose
push ebx
lea eax, [ebp - 0x8b0]
push eax
lea eax, [ebp - 0x418]
push eax
call sub.LZ32.dll_LZOpenFileW
mov dword [ebp - 0x940], eax
push 0x1001
lea eax, [ebp - 0x938]
push eax
push dword [ebp - 0x93c]
call sub.LZ32.dll_LZOpenFileW
mov edi, eax
cmp edi, 0xffffffff
jne 0x40667d
push dword [ebp - 0x93c]
lea eax, [ebp - 0x210]
push eax
push str.LZCopy_LZERROR_BADINHANDLE_error___can_not_create_target_file._n_____s_____s__n
call fcn.00403b05
add esp, 0xc
push 5
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 0x940]
call sub.LZ32.dll_LZClose
push edi
call sub.LZ32.dll_LZClose
cmp word [ebp - 0x418], bx
je 0x406676
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
jmp 0x406762
push edi
push dword [ebp - 0x940]
call sub.LZ32.dll_LZCopy
cmp eax, ebx
jge 0x406716
cmp eax, 0xfffffffa
je 0x4066fa
cmp eax, 0xfffffffb
je 0x4066e6
cmp eax, 0xfffffffd
je 0x4066d2
cmp eax, 0xfffffffe
je 0x4066be
cmp eax, 0xffffffff
jne 0x406720
push dword [ebp - 0x93c]
lea eax, [ebp - 0x210]
push eax
push str.LZCopy_LZERROR_BADINHANDLE_error_n_____s_____s__n
jmp 0x40670c
push dword [ebp - 0x93c]
lea eax, [ebp - 0x210]
push eax
push str.LZCopy_LZERROR_BADOUTHANDLE_error_n_____s_____s__n
jmp 0x40670c
push dword [ebp - 0x93c]
lea eax, [ebp - 0x210]
push eax
push str.LZCopy_LZERROR_READ_error_n_____s_____s__n
jmp 0x40670c
push dword [ebp - 0x93c]
lea eax, [ebp - 0x210]
push eax
push str.LZCopy_LZERROR_GLOBALLOC_error_n_____s_____s__n
jmp 0x40670c
push dword [ebp - 0x93c]
lea eax, [ebp - 0x210]
push eax
push str.LZCopy_LZERROR_GLOBLOCK_error_n_____s_____s__n
call fcn.00403b05
add esp, 0xc
jmp 0x406720
mov dword [ebp - 0x944], 1
push dword [ebp - 0x940]
call sub.LZ32.dll_LZClose
push edi
call sub.LZ32.dll_LZClose
cmp word [ebp - 0x418], bx
je 0x406747
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x944], ebx
je 0x40675c
push 0x80
push dword [ebp - 0x93c]
call esi
mov eax, dword [ebp - 0x944]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004175dc
leave
ret 8