Function at 0x404c10
Capabilities:
Copy file
Delete file
Get common file path

Disassembly:
sub esp, 0x9ac
mov al, byte [0x41ba64]
push ebx
push ebp
push esi
xor esi, esi
push edi
test al, al
mov dword [esp + 0x24], esi
mov dword [0x41ba18], esi
mov edi, 2
jne 0x404dc4
mov eax, dword [esp + 0x9d0]
mov ecx, dword [esp + 0x9cc]
mov ebp, dword [esp + 0x9c8]
mov ebx, dword [esp + 0x9c4]
mov edx, dword [esp + 0x9c0]
push eax
push ecx
push ebp
push ebx
push edx
mov dword [0x41ba78], esi
mov dword [0x41ba74], esi
call fcn.00402f40
add esp, 0x14
cmp eax, esi
je 0x404cb0
test eax, 0x80000000
je 0x404c89
mov dword [0x41ba3c], 1
cmp dword [0x41ba34], esi
jne 0x405007
call fcn.004018a0
push eax
call fcn.004060a0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9ac
ret
call fcn.00404bb0
test eax, eax
je 0x404cc2
call fcn.00404bb0
test eax, eax
jne 0x404cb9
cmp dword [0x41ba78], esi
je 0x404cec
cmp dword [0x41ba74], edi
jne 0x404cec
cmp dword [0x41ba34], esi
jne 0x404db0
call fcn.004018a0
push eax
call fcn.004060a0
add esp, 4
cmp dword [0x41ba34], esi
jne 0x404db0
cmp dword [0x41ba74], edi
je 0x404db0
mov eax, dword [0x41b200]
push 0x3f3
push 0x64
push 0x3f2
push eax
call fcn.00406e80
push str.Bytes_remaining_on_this_file:
lea ecx, [esp + 0x1d0]
push str._s_0
push ecx
call fcn.00408948
mov eax, dword [0x41b200]
lea edx, [esp + 0x1d8]
push edx
push 0x3f6
push eax
call fcn.00406ee0
call fcn.00406f10
lea ecx, [esp + 0x38]
push ecx
push ebp
call fcn.0040974d
add esp, 0x30
cmp eax, 0xffffffff
jne 0x404eb6
push str.ERROR:_File___s__could_not_be_found_or_opened.
lea edx, [esp + 0x1c0]
push 0x417e80
push edx
call fcn.00408948
lea eax, [esp + 0x1c8]
push ebx
lea ecx, [esp + 0xc4]
push eax
push ecx
call fcn.00408948
lea edx, [esp + 0xcc]
push edx
call fcn.004060a0
add esp, 0x1c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9ac
ret
push ebp
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9ac
ret
mov ebx, dword [esp + 0x9c4]
lea eax, [esp + 0x1bc]
push ebx
push 0x41ba80
push str._s_s
push eax
call fcn.00408948
mov ebp, dword [esp + 0x9d8]
add esp, 0x10
lea ecx, [esp + 0x1bc]
push esi
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x404e52
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_File___s__could_not_be_found_or_opened.
lea edx, [esp + 0x1c4]
push str._s___d_
push edx
call fcn.00408948
lea eax, [esp + 0x1cc]
push ebx
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.00408948
lea edx, [esp + 0xd0]
push edx
call fcn.004060a0
add esp, 0x20
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9ac
ret
lea eax, [esp + 0x10]
push eax
push ebp
call fcn.0040974d
add esp, 8
cmp eax, 0xffffffff
jne 0x404eb6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_File___s__could_not_be_found_or_opened.
lea ecx, [esp + 0x1c4]
push str._s___d_
push ecx
call fcn.00408948
lea edx, [esp + 0x1cc]
push ebx
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.00408948
lea ecx, [esp + 0xd0]
push ecx
call fcn.004060a0
add esp, 0x20
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9ac
ret
lea edx, [esp + 0x34]
push edx
call fcn.004089ad
push eax
push 0x417f28
push 0x417f24
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [esp + 0x134]
push 0x1002
lea ecx, [esp + 0x38]
push eax
push ecx
call sub.LZ32.dll_LZOpenFileA
lea edx, [esp + 0x134]
push edi
push edx
push ebp
mov esi, eax
call sub.LZ32.dll_LZOpenFileA
mov edi, eax
test edi, edi
jl 0x404fbb
test esi, esi
jl 0x404fbf
push esi
push edi
call sub.LZ32.dll_LZCopy
test eax, eax
jge 0x404f6a
push eax
lea eax, [esp + 0x38]
push esi
push eax
push ebp
push ebx
push str.ERROR:_An_error_during_file_decompression.
lea ecx, [esp + 0x1d4]
push str._s____s___s___s___d:_d_
push ecx
call fcn.00408948
lea edx, [esp + 0x1dc]
push edx
call fcn.004060a0
add esp, 0x24
push edi
call sub.LZ32.dll_LZClose
push esi
call sub.LZ32.dll_LZClose
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9ac
ret
push edi
call sub.LZ32.dll_LZClose
push esi
call sub.LZ32.dll_LZClose
push 0
lea ecx, [esp + 0x38]
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [0x41ba18]
mov ecx, dword [0x41ba10]
pop edi
add ecx, eax
mov eax, dword [esp + 0x20]
pop esi
pop ebp
mov dword [0x41ba10], ecx
mov dword [0x41ba18], 0
pop ebx
add esp, 0x9ac
ret
mov eax, edi
jmp 0x404fc1
mov eax, esi
lea ecx, [esp + 0x34]
push eax
push ecx
push ebp
push ebx
push str.ERROR:_An_error_during_LZ_file_open.
lea edx, [esp + 0x1d0]
push str._s____s___s___s___d_
push edx
call fcn.00408948
lea eax, [esp + 0x1d8]
push eax
call fcn.004060a0
add esp, 0x20
push edi
call sub.LZ32.dll_LZClose
push esi
call sub.LZ32.dll_LZClose
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9ac
ret