Function at 0x402b30
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 0x402b66
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 0x402bb4
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
push edi
call fcn.004016d0
cmp eax, 1
je 0x402bb4
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 0x402c0a
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 0x402c2f
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 0x402c6e
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 0x402c9c
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 0x402d9e
lea eax, [esp + 0x14]
push 0x4082b0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp esi, 1
jne 0x402cd8
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 0
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00402ff0
add esp, 0xc
cmp eax, 1
jne 0x402d6f
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 0x402d40
call edi
lea eax, [esp + 0x14]
push 4
lea ecx, [esp + 0x11c]
push eax
push ecx
call esi
cmp eax, 1
je 0x402d58
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 0x402d8e
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