Function at 0x4025d0
Capabilities:
Copy file
Delete file
Move file

Disassembly:
sub esp, 0x45c
lea eax, [esp + 4]
push ebx
push esi
push edi
push ebp
push 0x4082b0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov esi, dword [esp + 0x47c]
cmp esi, 1
jne 0x402606
lea eax, [esp + 0x14]
push str.Drivers_
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [esp + 0x478]
lea eax, [esp + 0x14]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x32c]
lea ecx, [esp + 0x14]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x402654
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
push edi
call fcn.004016d0
cmp eax, 1
je 0x402654
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
lea eax, [esp + 0x118]
push 0x4081a0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esp + 0x470]
lea ecx, [esp + 0x118]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x2a4]
push 0
lea edx, [esp + 0x11c]
push ecx
push edx
call sub.LZ32.dll_LZOpenFileA
mov ebx, eax
test ebx, ebx
jge 0x4026aa
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
lea eax, [esp + 0x14]
push 0x4082b0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp esi, 1
jne 0x4026cf
lea eax, [esp + 0x14]
push str.Drivers_
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x14]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x21c]
push 0x1001
lea ecx, [esp + 0x18]
push eax
push ecx
call sub.LZ32.dll_LZOpenFileA
mov ebp, eax
test ebp, ebp
jge 0x40270e
push ebx
call sub.LZ32.dll_LZClose
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
push ebp
push ebx
call sub.LZ32.dll_LZCopy
mov dword [esp + 0x10], eax
push ebx
call sub.LZ32.dll_LZClose
push ebp
call sub.LZ32.dll_LZClose
cmp dword [esp + 0x10], 0
jge 0x40273c
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
mov ebx, dword [esp + 0x474]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40283e
lea eax, [esp + 0x14]
push 0x4082b0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp esi, 1
jne 0x402778
lea eax, [esp + 0x14]
push str.Drivers_
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x118]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x118]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x14]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x14]
push 1
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00402ff0
add esp, 0xc
cmp eax, 1
jne 0x40280f
lea eax, [esp + 0x14]
push 4
push 0
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 1
je 0x4027e0
call edi
lea eax, [esp + 0x14]
push 4
lea ecx, [esp + 0x11c]
push eax
push ecx
call esi
cmp eax, 1
je 0x4027f8
call edi
xor eax, eax
pop ebp
mov dword [0x4082a4], 1
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
test eax, eax
jne 0x40282e
lea eax, [esp + 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x45c
ret
xor eax, eax
pop ebp
mov dword [0x4082a4], 1
pop edi
pop esi
pop ebx
add esp, 0x45c
ret