Function at 0x4042c0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x4a289c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x318
mov eax, dword [0x4cbba0]
xor eax, esp
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x320], eax
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x14]
mov dword [esp + 0x32c], 0
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::Empty]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::Empty]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov eax, dword [0x4cbdc0]
push eax
lea ecx, [esp + 0x20]
push str._sconfig_
push ecx
mov byte [esp + 0x338], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0xc
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
mov ecx, esi
call fcn.00403f60
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::IsEmpty]
test al, al
mov esi, dword [esp + 0x334]
mov edi, dword [sym.imp.MSVCR71.dll__splitpath]
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileA]
jne 0x404422
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0x224]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call edi
add esp, 0x14
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x120]
push ecx
push esi
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
push str._s_sshare_d_s
push ecx
mov byte [esp + 0x344], 3
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x18
push 0
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call ebp
lea ecx, [esp + 0xc]
mov byte [esp + 0x32c], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::IsEmpty]
test al, al
jne 0x4044ba
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x128]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call edi
add esp, 0x14
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea eax, [esp + 0x20]
push eax
push esi
lea ecx, [esp + 0x128]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push str._s_stransmit_d_s
push eax
mov byte [esp + 0x344], 4
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x18
push 0
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call ebp
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, dword [esp + 0x324]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x31c]
pop esi
pop ebp
xor ecx, esp
call fcn.004a17d1
add esp, 0x324
ret 4