Function at 0x459a10
Capabilities:
Copy file
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x4867f0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov al, byte [esp + 0x60]
test al, al
mov dword [esp + 0x50], 1
je 0x459a5b
mov eax, dword [esp + 0x68]
push eax
push ecx
lea edx, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
call fcn.0045c3b0
add esp, 8
lea ecx, [esp + 0x30]
call fcn.004752e0
mov eax, dword [esp + 0x5c]
push eax
mov byte [esp + 0x54], 2
call fcn.004579e0
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 4
test eax, eax
jne 0x459ab3
mov ecx, dword [esp + 0x5c]
push 0
push ecx
call fcn.004592c0
add esp, 8
test eax, eax
jne 0x459ab3
call ebp
push eax
lea ecx, [esp + 0x60]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer]
push eax
push str.CopyFolder______CreateDirectory__s__failed._Error__d
push 0x48ae58
call fcn.004572b0
add esp, 0x10
push 0x48a794
lea ecx, [esp + 0x5c]
call dword [0x48a380]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_5]
mov edx, dword [esp + 0x58]
push 0
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x58], 3
call sub.MFC71U.DLL_CDHtmlEventSink::FindDHtmlEventEntry
test eax, eax
je 0x459cdc
lea esp, [esp]
lea ecx, [esp + 0x30]
call sub.MFC71U.DLL_COleControlContainer::FindItem
mov edi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
call sub.MFC71U.DLL_CFileDialog::GetFileName
mov esi, eax
push 0x48d1e8
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x5c], 4
call fcn.00401441
push esi
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x68], 5
call fcn.004013d6
add esp, 0x18
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 6
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], 3
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x30]
call sub.MFC71U.DLL_CDockBar::IsDockBar
test eax, eax
jne 0x459ccb
mov edx, dword [esp + 0x30]
push 0x10
lea ecx, [esp + 0x34]
call dword [edx + 0x40]
test eax, eax
je 0x459c30
mov ebx, dword [esp + 0x64]
test bl, bl
je 0x459ccb
mov eax, dword [esp + 0x10]
push 0
push eax
call fcn.004592c0
add esp, 8
test eax, eax
jne 0x459bd0
call ebp
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer]
push eax
push str.CopyFolder_____CreateDirectory__s__failed._Error__d
push 0x48ae58
call fcn.004572b0
add esp, 0x10
push 0x400
lea ecx, [esp + 0x34]
call sub.MFC71U.DLL_CDocTemplate::MatchDocType
test eax, eax
jne 0x459ccb
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
push ecx
push edx
push ebx
push eax
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
mov eax, esp
mov dword [esp + 0x44], esp
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x6c], 7
call sub.MFC71U.DLL_CFile::GetFilePath
mov byte [esp + 0x68], 3
call fcn.00459a10
add esp, 0x18
jmp 0x459ccb
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x34]
call sub.MFC71U.DLL_CFile::GetFilePath
mov edx, dword [esp + 0x10]
mov eax, dword [eax]
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x20]
inc bl
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
test bl, bl
je 0x459cab
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x34]
call sub.MFC71U.DLL_CFile::GetFilePath
mov esi, eax
mov byte [esp + 0x50], 8
call ebp
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer]
mov ecx, dword [esi]
push eax
push ecx
push str.CopyFolder_____CopyFile__s___s__failed._Error__d
push 0x48ae58
call fcn.004572b0
add esp, 0x14
lea ecx, [esp + 0x24]
mov byte [esp + 0x50], 3
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov edx, dword [esp + 0x10]
push 0x80
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov al, byte [esp + 0x6c]
test al, al
je 0x459ccb
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
test edi, edi
jne 0x459af0
lea ecx, [esp + 0x30]
call sub.MFC71U.DLL_CFile::Close
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x30]
mov byte [esp + 0x50], 1
call sub.MFC71U.DLL_CFileDialog::CFileDialog
lea ecx, [esp + 0x58]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x5c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
xor al, al
mov dword fs:[0], ecx
pop ebx
add esp, 0x44
ret