Function at 0x402c6e
Capabilities:
Copy file
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
mov eax, 0x41de34
call fcn.0040699c
sub esp, 0x14
push ebx
push esi
push edi
lea ecx, [ebp - 0x14]
push dword [ebp + 0xc]
call fcn.0041948a
push dword [ebp + 0x10]
and dword [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.0041948a
xor ebx, ebx
lea ecx, [ebp - 0x18]
inc ebx
push ebx
push 0x5c
mov byte [ebp - 4], bl
call fcn.004148fb
lea eax, [ebp - 0x20]
push ebx
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00414b88
push dword [ebp - 0x18]
mov eax, dword [eax]
mov byte [ebp - 4], 3
push eax
call fcn.004078e2
pop ecx
test eax, eax
pop ecx
je 0x402d1d
push ebx
push 0x2f
lea ecx, [ebp + 0x10]
call fcn.004148fb
lea eax, [ebp - 0x1c]
push ebx
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.00414b88
push dword [ebp + 0x10]
mov eax, dword [eax]
push eax
call fcn.004078e2
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x1c]
setne byte [ebp + 0xf]
call fcn.0041941c
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 3
call fcn.0041941c
cmp byte [ebp + 0xf], 0
je 0x402d1d
mov byte [ebp + 0xf], bl
jmp 0x402d21
and byte [ebp + 0xf], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.0041941c
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], bl
call fcn.0041941c
cmp byte [ebp + 0xf], 0
mov esi, 0x426254
je 0x402d4c
push esi
lea ecx, [ebp - 0x14]
call fcn.0041976b
push ebx
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.004148fb
lea eax, [ebp - 0x1c]
push ebx
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call fcn.00414b88
push dword [ebp - 0x18]
mov eax, dword [eax]
mov byte [ebp - 4], 6
push eax
call fcn.004078e2
pop ecx
test eax, eax
pop ecx
je 0x402dcb
push ebx
push 0x2f
lea ecx, [ebp + 0x10]
call fcn.004148fb
lea eax, [ebp - 0x20]
push ebx
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 7
call fcn.00414b88
push dword [ebp + 0x10]
mov eax, dword [eax]
push eax
call fcn.004078e2
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x20]
setne byte [ebp + 0xf]
call fcn.0041941c
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 6
call fcn.0041941c
cmp byte [ebp + 0xf], 0
je 0x402dcb
mov byte [ebp + 0xf], bl
jmp 0x402dcf
and byte [ebp + 0xf], 0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.0041941c
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], bl
call fcn.0041941c
cmp byte [ebp + 0xf], 0
je 0x402df5
push esi
lea ecx, [ebp - 0x10]
call fcn.0041976b
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.0040e2a0
mov esi, dword [ebp + 0x14]
mov edi, eax
neg edi
sbb edi, edi
pop ecx
inc edi
pop ecx
je 0x402e19
test esi, esi
jne 0x402e19
mov esi, ebx
jmp 0x402f14
push dword [ebp + 8]
lea ecx, [ebp - 0x14]
call fcn.0041976b
push 0
push dword [ebp - 0x14]
call fcn.00406dcf
pop ecx
test eax, eax
pop ecx
jge 0x402e3b
xor esi, esi
jmp 0x402f14
test esi, esi
mov eax, esi
jne 0x402e44
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x10]
call fcn.0041976b
test edi, edi
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
je 0x402e9b
test esi, esi
je 0x402e9b
push 0
push dword [ebp - 0x14]
call fcn.00406dcf
pop ecx
pop ecx
push 0
push dword [ebp - 0x10]
test eax, eax
jge 0x402e83
call fcn.00406dcf
mov esi, eax
pop ecx
neg esi
sbb esi, esi
pop ecx
inc esi
jmp 0x402f14
call fcn.00406dcf
pop ecx
test eax, eax
pop ecx
jne 0x402e9b
push dword [ebp - 0x10]
call edi
test eax, eax
je 0x402e12
push 0
push dword [ebp - 0x10]
call fcn.00406dcf
pop ecx
test eax, eax
pop ecx
jne 0x402f04
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and al, 0xfc
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [ebp - 0x10]
call edi
test eax, eax
jne 0x402f04
lea eax, [ebp - 0x10]
push str..old
push eax
lea eax, [ebp + 8]
push eax
call fcn.00419624
push dword [ebp + 8]
mov byte [ebp - 4], 8
call edi
push dword [ebp + 8]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push dword [ebp + 8]
call fcn.0040274f
pop ecx
mov byte [ebp - 4], bl
lea ecx, [ebp + 8]
call fcn.0041941c
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, eax
and byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.0041941c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0041941c
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret