Function at 0x408110
Capabilities:
Copy file
Create directory

Disassembly:
mov eax, 0x42063c
call fcn.00417780
sub esp, 0x48
and dword [ebp - 0x14], 0
push ebx
push esi
push edi
mov dword [ebp - 0x20], ecx
push 1
lea eax, [ebp + 8]
pop esi
lea ecx, [ebp - 0x10]
push eax
mov dword [ebp - 4], esi
call sub.MFC42.DLL_CString::CString_5
push esi
push 0x5c
pop edi
lea ecx, [ebp - 0x18]
push edi
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString_2
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CString::Right
push dword [eax]
mov esi, dword [sym.imp.MSVCRT.dll__mbscmp]
push dword [ebp - 0x18]
call esi
mov ebx, eax
pop ecx
neg ebx
pop ecx
sbb bl, bl
lea ecx, [ebp - 0x1c]
inc bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x4081b7
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x10]
mov eax, dword [eax - 8]
dec eax
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 4
call sub.MFC42.DLL_CString::operator_2
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
push edi
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::ReverseFind
cmp eax, 0xffffffff
jne 0x4081cc
xor edi, edi
jmp 0x408465
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx - 8]
sub ecx, eax
lea eax, [ebp - 0x1c]
dec ecx
push ecx
push eax
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::operator_2
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
push 1
push edi
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_2
lea eax, [ebp - 0x1c]
push 1
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 6
call sub.MFC42.DLL_CString::Right
push dword [eax]
push dword [ebp - 0x18]
call esi
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x1c]
setne bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x40824b
push 0x429174
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::operator
push 1
push edi
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_2
lea eax, [ebp - 0x1c]
push 1
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 7
call sub.MFC42.DLL_CString::Right
push dword [eax]
push dword [ebp - 0x18]
call esi
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x1c]
setne bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x40829b
push 0x429174
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::operator
lea eax, [ebp - 0x10]
push 0x429174
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 8
call sub.MFC42.DLL_CString::operator_1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
xor edi, edi
push edi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x408465
lea ecx, [ebp - 0x54]
call sub.MFC42.DLL_CFileFind::CFileFind
mov esi, 0x4293cc
lea eax, [ebp + 8]
push esi
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 9
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xa
call sub.MFC42.DLL_CFileFind::FindFile
lea ecx, [ebp - 0x1c]
mov ebx, eax
mov byte [ebp - 4], 9
call sub.MFC42.DLL_CString::CString
lea eax, [ebp + 8]
push esi
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xb
call sub.MFC42.DLL_CFileFind::FindFile
lea ecx, [ebp - 0x1c]
mov esi, eax
mov byte [ebp - 4], 9
call sub.MFC42.DLL_CString::CString
cmp esi, edi
je 0x40844e
cmp ebx, edi
je 0x40844e
lea ecx, [ebp - 0x54]
call sub.MFC42.DLL_CFileFind::FindNextFileA
test byte [ebp - 0x14], 1
push 9
mov ebx, eax
pop esi
mov dword [ebp - 4], esi
je 0x408375
and dword [ebp - 0x14], 0xfffffffe
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
test byte [ebp - 0x14], 2
mov dword [ebp - 4], esi
je 0x40838a
and dword [ebp - 0x14], 0xfffffffd
lea ecx, [ebp - 0x30]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x54]
call sub.MFC42.DLL_CFileFind::IsDots
test eax, eax
jne 0x40834b
mov eax, dword [ebp - 0x54]
push 0x10
lea ecx, [ebp - 0x54]
call dword [eax + 0x40]
cmp eax, edi
je 0x4083ee
push ecx
lea eax, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call sub.MFC42.DLL_CString::CString_5
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x54]
push eax
mov byte [ebp - 4], 0xe
call sub.MFC42.DLL_CFileFind::GetFileName
push ecx
mov byte [ebp - 4], 0xf
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
lea eax, [ebp + 8]
push eax
push ecx
call sub.MFC42.DLL_operator_1
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x10
call fcn.00408110
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1c]
jmp 0x408444
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x54]
push eax
call sub.MFC42.DLL_CFileFind::GetFileName
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x11
call sub.MFC42.DLL_operator_1
mov esi, dword [eax]
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x12
call sub.MFC42.DLL_CFileFind::GetFilePath
mov eax, dword [eax]
push edi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::CString
jmp 0x40834b
lea ecx, [ebp - 0x54]
call sub.MFC42.DLL_CFileFind::Close
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.004174ba
push 1
pop edi
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
and byte [ebp - 4], 0
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 8