Function at 0x407d10
Capabilities:
Copy file
Create directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
push 0xffffffffffffffff
push 0x40cc58
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x158
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x2c], esi
push 0x13e
mov dword [esp + 0x174], 1
call sub.MFC42.DLL_operatornew
add esp, 4
mov ebx, eax
lea eax, [esp + 0x178]
lea ecx, [esp + 0x10]
push 0x4108cc
push eax
push ecx
mov dword [esp + 0x28], ebx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], edi
call fcn.0040bb3a
lea ebp, [esi + 0x60]
push 0
mov ecx, ebp
call fcn.004018c0
push ecx
lea edx, [esp + 0x17c]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.00408750
push eax
push 0
mov ecx, ebp
call fcn.00401890
push 1
mov ecx, ebp
call fcn.004018e0
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
cmp edi, 0xffffffff
mov byte [esp + 0x170], 2
je 0x407fd3
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x40]
push 0
push eax
call esi
test eax, eax
je 0x407e19
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x40]
push 0
push eax
call esi
test eax, eax
jne 0x407df0
test byte [ebx], 0x10
jne 0x407f80
lea esi, [ebx + 0x2c]
lea ecx, [esp + 0x17c]
push esi
lea edx, [esp + 0x18]
push ecx
push edx
call sub.MFC42.DLL_operator
mov edi, dword [eax]
lea eax, [esp + 0x178]
push esi
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x17c], 3
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
lea ecx, [esp + 0x10]
sete bl
call fcn.0040bb3a
lea ecx, [esp + 0x14]
mov byte [esp + 0x170], 2
call fcn.0040bb3a
test bl, bl
push esi
je 0x407ef9
lea edx, [esp + 0x17c]
lea eax, [esp + 0x34]
push edx
push eax
call sub.MFC42.DLL_operator
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push ecx
push 0x4108bc
push edx
mov byte [esp + 0x17c], 4
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x30]
mov byte [esp + 0x170], 2
call fcn.0040bb3a
mov eax, dword [esp + 0x18]
push 0
push 0x32
push eax
call sub.MFC42.DLL_AfxMessageBox
cmp eax, 4
je 0x407e25
cmp eax, 5
jne 0x408230
mov ecx, ebp
call fcn.00401900
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
jmp 0x407fbc
lea ecx, [esp + 0x180]
lea edx, [esp + 0x2c]
push ecx
push edx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
lea ecx, [esp + 0x50]
push ecx
push eax
mov byte [esp + 0x178], 5
call sub.MFC42.DLL_CFile::GetStatus
lea ecx, [esp + 0x28]
mov byte [esp + 0x170], 2
call fcn.0040bb3a
lea edx, [esp + 0x17c]
push esi
lea eax, [esp + 0x24]
push edx
push eax
mov byte [esp + 0x6c], 0x20
call sub.MFC42.DLL_operator
mov eax, dword [eax]
lea ecx, [esp + 0x50]
push ecx
push eax
mov byte [esp + 0x178], 6
call sub.MFC42.DLL_CFile::SetStatus
lea ecx, [esp + 0x20]
mov byte [esp + 0x170], 2
call fcn.0040bb3a
mov ecx, ebp
call fcn.00401900
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
jmp 0x407fbc
mov esi, 0x4108b8
lea eax, [ebx + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x407fac
test cl, cl
je 0x407fa8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x407fac
add eax, 2
add esi, 2
test cl, cl
jne 0x407f88
xor eax, eax
jmp 0x407fb1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407fbc
mov ecx, ebp
call fcn.00401900
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x407dd7
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [esp + 0x178]
push 0x4108cc
lea ecx, [esp + 0x20]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea ecx, [esp + 0x1c]
mov ebp, eax
call fcn.0040bb3a
cmp ebp, 0xffffffff
je 0x4081b1
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push 0
push 0
lea edx, [esp + 0x40]
push 0
push edx
call esi
test eax, eax
je 0x40804a
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea edx, [esp + 0x40]
push 0
push edx
call esi
test eax, eax
jne 0x408021
test byte [ebx], 0x10
je 0x40819a
lea edi, [ebx + 0x2c]
mov esi, 0x4108b4
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408081
test cl, cl
je 0x40807d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408081
add eax, 2
add esi, 2
test cl, cl
jne 0x40805d
xor eax, eax
jmp 0x408086
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40819a
mov esi, 0x4108b8
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4080b9
test cl, cl
je 0x4080b5
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4080b9
add eax, 2
add esi, 2
test cl, cl
jne 0x408095
xor eax, eax
jmp 0x4080be
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40819a
lea eax, [esp + 0x17c]
lea ecx, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x178]
mov byte [esp + 0x170], 7
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
push edi
lea ecx, [esp + 0x18]
mov byte [esp + 0x174], 8
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x14]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x41012c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
push edi
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
push 0x41012c
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov byte [esp + 0x17c], 9
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x178], 8
call fcn.00407d10
test eax, eax
mov byte [esp + 0x170], 7
lea ecx, [esp + 0x10]
je 0x40821a
call fcn.0040bb3a
lea ecx, [esp + 0x14]
mov byte [esp + 0x170], 2
call fcn.0040bb3a
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x408008
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
je 0x4081be
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x18]
mov byte [esp + 0x170], 1
call fcn.0040bb3a
lea ecx, [esp + 0x178]
mov byte [esp + 0x170], 0
call fcn.0040bb3a
lea ecx, [esp + 0x17c]
mov dword [esp + 0x170], 0xffffffff
call fcn.0040bb3a
mov eax, 1
mov ecx, dword [esp + 0x168]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x164
ret 8
call fcn.0040bb3a
lea ecx, [esp + 0x14]
mov byte [esp + 0x170], 2
call fcn.0040bb3a
lea ecx, [esp + 0x18]
mov byte [esp + 0x170], 1
call fcn.0040bb3a
lea ecx, [esp + 0x178]
mov byte [esp + 0x170], 0
call fcn.0040bb3a
lea ecx, [esp + 0x17c]
mov dword [esp + 0x170], 0xffffffff
call fcn.0040bb3a
xor eax, eax
jmp 0x4081ff