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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x439bc0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x28]
call fcn.00438450
pop ecx
mov eax, dword [ebp - 0x28]
mov edx, 0x439bd8
call fcn.00434be8
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0xc]
call fcn.00438450
pop ecx
cmp dword [0x441788], 0
jne 0x439b9d
cmp ebx, 0x18
ja case.0x4398ab.0
mov bl, byte [ebx + 0x4398b2]
jmp dword [ebx*4 + 0x4398cb]
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x10]
call fcn.00438450
pop ecx
cmp dword [0x441788], 0
jne 0x439b9d
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x28]
call fcn.004382f4
pop ecx
mov eax, dword [ebp - 0x28]
mov edx, 0x439c00
call fcn.00405df4
test eax, eax
sete al
and eax, 0x7f
push eax
mov eax, dword [ebp - 0x10]
call fcn.00403834
push eax
mov eax, dword [ebp - 0xc]
call fcn.00403834
push eax
call sub.kernel32.dll_CopyFileA
neg eax
sbb eax, eax
neg eax
mov byte [0x441794], al
jmp 0x439b9d
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x10]
call fcn.00438450
pop ecx
cmp dword [0x441788], 0
jne 0x439b9d
mov eax, dword [ebp - 0x10]
call fcn.00403834
push eax
mov eax, dword [ebp - 0xc]
call fcn.00403834
push eax
call sub.kernel32.dll_MoveFileA
neg eax
sbb eax, eax
neg eax
mov byte [0x441794], al
jmp 0x439b9d
mov eax, dword [ebp - 0xc]
call fcn.00403834
push eax
call sub.kernel32.dll_DeleteFileA
neg eax
sbb eax, eax
neg eax
mov byte [0x441794], al
jmp 0x439b9d
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040604c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
setge byte [0x441794]
cmp byte [0x441794], 0
je 0x439b9d
mov eax, dword [ebp - 0x24]
call fcn.00406194
call fcn.00406458
fstp qword [ebp - 0x20]
wait
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x10]
call fcn.004382f4
pop ecx
xor eax, eax
push ebp
push 0x439a10
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
call fcn.00407c0c
fstp qword [ebp - 0x18]
wait
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x439a26
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x10]
call fcn.004382f4
pop ecx
xor eax, eax
push ebp
push 0x439a5a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
call fcn.00407bbc
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x18]
wait
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x439a73
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.004064c4
mov edx, eax
mov eax, dword [ebp - 0x24]
call fcn.004061e4
test eax, eax
sete byte [0x441794]
mov eax, dword [ebp - 0x24]
call fcn.00406114
jmp 0x439b9d
mov eax, dword [ebp - 0xc]
call fcn.0040623c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x439abb
mov byte [0x441794], 0
jmp 0x439b9d
mov byte [ebp - 1], 1
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x28]
call fcn.004382f4
pop ecx
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x10]
call fcn.00405d4c
jmp 0x439b64
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
cmp eax, 0x48
jg 0x439afa
je 0x439b1e
sub eax, 0x2b
je 0x439b04
sub eax, 2
je 0x439b0a
sub eax, 0x14
je 0x439b3a
jmp 0x439b48
sub eax, 0x52
je 0x439b10
dec eax
je 0x439b2c
jmp 0x439b48
mov byte [ebp - 1], 1
jmp 0x439b52
mov byte [ebp - 1], 0
jmp 0x439b52
push ebp
mov eax, 1
call fcn.00439824
pop ecx
jmp 0x439b52
push ebp
mov eax, 2
call fcn.00439824
pop ecx
jmp 0x439b52
push ebp
mov eax, 4
call fcn.00439824
pop ecx
jmp 0x439b52
push ebp
mov eax, 0x20
call fcn.00439824
pop ecx
jmp 0x439b52
mov dword [0x441788], 0xd
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, 1
call fcn.004038b4
mov eax, dword [ebp - 0x10]
call fcn.00403670
test eax, eax
jg 0x439adc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.00406250
test eax, eax
sete byte [0x441794]
jmp 0x439b9d
cmp dword [0x441788], 0
jne 0x439b9d
mov dword [0x441788], 0xe
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x439bc7
lea eax, [ebp - 0x28]
call fcn.004034fc
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0040351c
ret