Function at 0x40fb60
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x424f75
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
push esi
mov esi, dword [ebp + 0xc]
push edi
push 0
mov edi, esi
call fcn.0040f980
add esp, 4
test eax, eax
jl 0x40fcf7
mov edi, dword [ebp + 0x10]
push 1
call fcn.0040f980
add esp, 4
test eax, eax
jl 0x40fcf7
cmp word [ebp + 0x14], 0xffff
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 2
mov word [ebp - 0x1c], 0x614
je 0x40fbcd
mov word [ebp - 0x1c], 0xe14
push ebx
mov ebx, dword [sym.imp.MSVCR71.dll_wcslen]
push 2
push esi
call ebx
add eax, 2
add esp, 4
push eax
call dword [sym.imp.MSVCR71.dll_calloc]
mov esi, eax
mov eax, dword [ebp + 0xc]
push eax
push esi
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 0x10
push 2
push edi
mov dword [ebp - 0x24], esi
call ebx
add eax, 2
add esp, 4
push eax
call dword [sym.imp.MSVCR71.dll_calloc]
mov esi, eax
push edi
push esi
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 0x10
lea ecx, [ebp - 0x2c]
push ecx
mov dword [ebp - 0x20], esi
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov edx, dword [ebp - 0x24]
mov edi, dword [sym.imp.MSVCR71.dll_free]
push edx
mov esi, eax
call edi
mov eax, dword [ebp - 0x20]
push eax
call edi
add esp, 8
test esi, esi
pop ebx
jne 0x40fc55
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
push 1
push 2
lea ecx, [ebp - 0xc8]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov dword [ebp - 4], 0
push esi
lea ecx, [ebp - 0xc8]
push str.VmountCopyFile_failed_with_error
push ecx
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0xc8]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov byte [ebp - 4], 1
cmp dword [eax + 0x18], 0x10
jb 0x40fca9
mov eax, dword [eax + 4]
jmp 0x40fcac
add eax, 4
push str.Vmount2.Vmount2Service
push eax
push 0x80004005
push 0x42658c
call fcn.00409570
mov esi, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc8]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
pop edi
mov eax, esi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
push str.Vmount2.Vmount2Service
push str.Cannot_copy_unregistered_file
push 0x80004005
push 0x42658c
call fcn.00409570
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10