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

Disassembly:
sub esp, 0x22c
push esi
mov esi, dword [esp + 0x234]
test esi, esi
je 0x8c7259
cmp byte [esi], 0
je 0x8c7259
push ebx
push ebp
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x35]
mov byte [esp + 0x34], 0
mov byte [esp + 0x138], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x139]
push 0xa39394
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x24], 0xa39394
mov dword [esp + 0x28], 0xa39388
mov dword [esp + 0x2c], 0xa3937c
mov dword [esp + 0x30], 0xa39370
mov dword [esp + 0x34], 0xa39364
call fcn.008c9470
push 0xa39388
call fcn.008c9470
push 0xa3937c
call fcn.008c9470
push 0xa39370
call fcn.008c9470
push 0xa39364
call fcn.008c9470
mov eax, dword [esp + 0x258]
add esp, 0x14
add eax, 0xfffffffe
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x10], eax
or ebp, 0xffffffff
jmp 0x8c6f6f
mov eax, dword [esp + 0x10]
or ebp, 0xffffffff
jmp 0x8c6f6f
mov eax, dword [esp + 0x10]
cmp ebp, 0xffffffff
jne 0x8c6f95
mov ecx, dword [eax]
push ecx
push esi
push 0xa39354
call fcn.008c94e0
add esp, 4
lea edx, [esp + 0x3c]
push eax
push edx
call fcn.00858bf5
add esp, 0x10
jmp 0x8c6fb5
mov eax, dword [eax]
push ebp
push eax
push esi
push 0xa39344
call fcn.008c94e0
add esp, 4
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.00858bf5
add esp, 0x14
push 0
push 0
push 3
push 0
push 0
lea edx, [esp + 0x48]
push 0xc0000000
push edx
call dword [sym.imp.kernel32.dll_CreateFileA]
mov ebx, eax
call dword [sym.imp.kernel32.dll_GetLastError]
push ebx
mov edi, eax
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp edi, 0x20
je 0x8c7221
cmp edi, 2
je 0x8c6ff8
inc ebp
cmp ebp, 0x63
jle 0x8c6f6b
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
inc eax
add edx, 4
cmp eax, 5
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
jl 0x8c6f62
lea eax, [esp + 0x20]
mov dword [esp + 0x18], 5
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
mov dword [esp + 0x10], ecx
jl 0x8c720b
lea ebx, [ecx + 1]
or ebp, 0xffffffff
jmp 0x8c7056
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
or ebp, 0xffffffff
lea ebx, [ecx + 1]
jmp 0x8c7056
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp ecx, 0xffffffff
jne 0x8c70a8
mov edi, dword [eax]
cmp ebp, ecx
jne 0x8c70f0
push edi
push esi
push 0xa39354
call fcn.008c94e0
add esp, 4
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00858bf5
add esp, 0x10
push edi
push ebx
push esi
push 0xa39334
call fcn.008c94e0
add esp, 4
lea ecx, [esp + 0x144]
push eax
push ecx
call fcn.00858bf5
add esp, 0x14
jmp 0x8c716b
mov edi, dword [eax]
cmp ebp, 0xffffffff
jne 0x8c712a
push edi
push ecx
push esi
push 0xa39324
call fcn.008c94e0
add esp, 4
lea edx, [esp + 0x40]
push eax
push edx
call fcn.00858bf5
add esp, 0x14
push edi
push ebx
push esi
push 0xa39314
call fcn.008c94e0
add esp, 4
push eax
lea eax, [esp + 0x148]
push eax
call fcn.00858bf5
add esp, 0x14
jmp 0x8c716b
push ebp
push edi
push esi
push 0xa39344
call fcn.008c94e0
add esp, 4
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.00858bf5
add esp, 0x14
push ebp
push edi
push ebx
push esi
push 0xa39300
call fcn.008c94e0
add esp, 4
lea edx, [esp + 0x148]
push eax
push edx
jmp 0x8c7163
push ebp
push edi
push ecx
push esi
push 0xa392ec
call fcn.008c9470
add esp, 4
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00858bf5
add esp, 0x18
push ebp
push edi
push ebx
push esi
push 0xa392d8
call fcn.008c9470
add esp, 4
lea ecx, [esp + 0x148]
push eax
push ecx
call fcn.00858bf5
add esp, 0x18
push 0
push 0
push 3
push 0
push 0
lea edx, [esp + 0x48]
push 0xc0000000
push edx
call dword [sym.imp.kernel32.dll_CreateFileA]
mov edi, eax
call dword [sym.imp.kernel32.dll_GetLastError]
cmp edi, 0xffffffff
je 0x8c71f5
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jne 0x8c71ac
lea ecx, [esp + 0x34]
push ecx
jmp 0x8c71e5
lea edx, [esp + 0x138]
push 1
lea eax, [esp + 0x38]
push edx
push eax
call dword [sym.imp.kernel32.dll_MoveFileExA]
test eax, eax
jne 0x8c71eb
call dword [sym.imp.kernel32.dll_GetLastError]
lea ecx, [esp + 0x138]
push 0
lea edx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.kernel32.dll_CopyFileA]
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
inc ebp
cmp ebp, 0x63
jle 0x8c704e
mov eax, dword [esp + 0x10]
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jge 0x8c703e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, 4
dec ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jne 0x8c7025
push 0xa39394
call fcn.008c93d0
push 0xa39388
call fcn.008c93d0
push 0xa3937c
call fcn.008c93d0
push 0xa39370
call fcn.008c93d0
push 0xa39364
call fcn.008c93d0
add esp, 0x14
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x22c
ret