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

Disassembly:
sub esp, 0x9ac
mov al, byte [0x419ee4]
push ebx
push ebp
push esi
xor esi, esi
push edi
test al, al
mov dword [esp + 0x24], esi
mov dword [0x419e98], esi
mov edi, 2
jne 0x4028e4
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 [0x43b904], esi
mov dword [0x43b900], esi
call fcn.00404640
add esp, 0x14
cmp eax, esi
je 0x4027d0
test eax, 0x80000000
je 0x4027a9
mov dword [0x419ebc], 1
cmp dword [0x419eb4], esi
jne 0x402b0d
call fcn.00402fa0
push eax
call fcn.00405ef0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9ac
ret
call fcn.004026d0
test eax, eax
je 0x4027e2
call fcn.004026d0
test eax, eax
jne 0x4027d9
cmp dword [0x43b904], esi
je 0x40280c
cmp dword [0x43b900], edi
jne 0x40280c
cmp dword [0x419eb4], esi
jne 0x4028d0
call fcn.00402fa0
push eax
call fcn.00405ef0
add esp, 4
cmp dword [0x419eb4], esi
jne 0x4028d0
cmp dword [0x43b900], edi
je 0x4028d0
mov eax, dword [0x419680]
push 0x3f3
push 0x64
push 0x3f2
push eax
call fcn.00407760
push str.Bytes_remaining_on_this_file:
lea ecx, [esp + 0x1d0]
push str._s_0
push ecx
call fcn.004080ec
mov eax, dword [0x419680]
lea edx, [esp + 0x1d8]
push edx
push 0x3f6
push eax
call fcn.004077c0
call fcn.004077f0
lea ecx, [esp + 0x38]
push ecx
push ebp
call fcn.00408225
add esp, 0x30
cmp eax, 0xffffffff
jne 0x4029d6
push str.ERROR:_File___s__could_not_be_found_or_opened.
lea edx, [esp + 0x1c0]
push 0x415074
push edx
call fcn.004080ec
lea eax, [esp + 0x1c8]
push ebx
lea ecx, [esp + 0xc4]
push eax
push ecx
call fcn.004080ec
lea edx, [esp + 0xcc]
push edx
call fcn.00405ef0
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 0x43b920
push 0x415128
push eax
call fcn.004080ec
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 0x402972
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.004080ec
lea eax, [esp + 0x1cc]
push ebx
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.004080ec
lea edx, [esp + 0xd0]
push edx
call fcn.00405ef0
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.00408225
add esp, 8
cmp eax, 0xffffffff
jne 0x4029d6
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.004080ec
lea edx, [esp + 0x1cc]
push ebx
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.004080ec
lea ecx, [esp + 0xd0]
push ecx
call fcn.00405ef0
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.0040814b
push eax
push 0x41511c
push 0x415118
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [esp + 0x134]
push 0x1000
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 0x402ac1
test esi, esi
jl 0x402ac5
push esi
push edi
call sub.LZ32.dll_LZCopy
test eax, eax
jge 0x402a70
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.004080ec
lea edx, [esp + 0x1dc]
push edx
call fcn.00405ef0
add esp, 0x24
lea eax, [esp + 0x34]
push eax
jmp 0x402afb
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 [0x419e98]
mov ecx, dword [0x419e90]
pop edi
add ecx, eax
mov eax, dword [esp + 0x20]
pop esi
pop ebp
mov dword [0x419e90], ecx
mov dword [0x419e98], 0
pop ebx
add esp, 0x9ac
ret
mov eax, edi
jmp 0x402ac7
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.004080ec
lea eax, [esp + 0x1d8]
push eax
call fcn.00405ef0
add esp, 0x20
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
call sub.LZ32.dll_LZClose
push esi
call sub.LZ32.dll_LZClose
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9ac
ret