Function at 0x40eec0
Capabilities:
Copy file
Create directory
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x17c
mov dword [ebp - 0x15c], 1
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetFileAttributesA
sub esp, 4
test al, 0x10
je 0x40f0e2
mov dword [esp + 4], 0
mov ecx, dword [ebp + 0xc]
mov dword [esp], ecx
call sub.KERNEL32.dll_CreateDirectoryA
sub esp, 8
test al, al
jne 0x40ef1b
call sub.KERNEL32.dll_GetLastError
mov edx, 0
cmp eax, 0xb7
jne 0x40f11a
mov edi, dword [ebp + 8]
cld
mov ecx, 0xffffffff
mov al, 0
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea esi, [eax + 2]
mov dword [esp], esi
call fcn.004131ff
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0044e850
lea eax, [ebp - 0x158]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.KERNEL32.dll_FindFirstFileA
sub esp, 8
mov dword [ebp - 0x160], eax
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov edx, 0
cmp dword [ebp - 0x160], 0xffffffff
je 0x40f11a
lea esi, [ebp - 0x12c]
mov edi, 0x464140
mov ecx, 2
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
je 0x40f09d
lea esi, [ebp - 0x12c]
mov edi, 0x464147
mov ecx, 3
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
je 0x40f09d
mov edi, dword [ebp + 8]
mov ecx, 0xffffffff
mov al, 0
repne scasb al, byte es:[edi]
mov edx, ecx
not edx
lea edi, [ebp - 0x12c]
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea ebx, [eax + edx]
mov dword [esp], ebx
call fcn.004131ff
mov esi, eax
lea eax, [ebp - 0x12c]
mov dword [esp + 0x10], eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0x46414a
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0044e850
mov edi, dword [ebp + 0xc]
cld
mov ecx, 0xffffffff
mov al, 0
repne scasb al, byte es:[edi]
mov edx, ecx
not edx
lea edi, [ebp - 0x12c]
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edi, [eax + edx]
mov dword [esp], edi
call fcn.004131ff
mov ebx, eax
lea eax, [ebp - 0x12c]
mov dword [esp + 0x10], eax
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0x46414a
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0044e850
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0040eec0
test eax, eax
setne al
movzx eax, al
neg eax
and dword [ebp - 0x15c], eax
mov dword [esp], esi
call sub.msvcrt.dll_free
mov dword [esp], ebx
call sub.msvcrt.dll_free
lea eax, [ebp - 0x158]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x160]
mov dword [esp], eax
call sub.KERNEL32.dll_FindNextFileA
sub esp, 8
test al, al
jne 0x40ef89
mov ecx, dword [ebp - 0x160]
mov dword [esp], ecx
call sub.KERNEL32.dll_FindClose
sub esp, 4
call sub.KERNEL32.dll_GetLastError
mov edx, 0
cmp eax, 0x12
jne 0x40f11a
jmp 0x40f114
mov dword [esp + 8], 1
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sub.KERNEL32.dll_CopyFileA
sub esp, 0xc
test al, al
jne 0x40f114
call sub.KERNEL32.dll_GetLastError
mov edx, 0
cmp eax, 0xb7
jne 0x40f11a
mov edx, dword [ebp - 0x15c]
mov eax, edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret