Function at 0x14001e1d0
Capabilities:
Copy file
Create directory
Get common file path

Disassembly:
push rsi
push rdi
push r12
sub rsp, 0x520
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov qword [rsp + CMonikerFile::Attach], rbx
mov rax, qword [0x1404e41f8]
xor rax, rsp
mov qword [rsp + 0x510], rax
mov r12, r8
mov rsi, rcx
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x68], r8
lea rdx, [rcx + 0x630]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
lea r8, [0x1403ff83c]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xb8]
call fcn.140002470
nop
lea r8, [rsi + 0x638]
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.140014560
nop
lea r8, [0x1403ff3c8]
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.140002470
nop
lea r8, [rsi + 0x648]
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140014560
nop
lea rcx, [rsp + 0x90]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x98]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0xb8]
call qword [sym.imp.mfc90u.dll_CView::CView]
cmp dword [0x1404e50fc], 0
jne 0x14001e6e7
mov dword [0x1404e50fc], 1
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14001e3dd
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14001e3dd
lea r8, [0x1403ff3c8]
lea rdx, [rsi + 0x638]
lea rcx, [rsp + 0x40]
call fcn.140002470
nop
lea r8, [rsi + 0x648]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140014560
nop
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.14001dbd0
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
lea r8, [0x1403ff83c]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xa8]
call fcn.140002470
nop
lea r8, [rsp + 0x38]
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.140014560
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
nop
lea rcx, [rsp + 0xb0]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0xa8]
call qword [sym.imp.mfc90u.dll_CView::CView]
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov edx, 0x5c
lea rcx, [rsi + 0x220]
call qword [sym.imp.MSVCR90.dll_wcsrchr]
mov rdx, rax
lea rcx, [rsp + 0x60]
call qword [0x1403f4480]
nop
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.140014560
nop
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
xor r8d, r8d
lea rcx, [rsi + 0x220]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea r8, str.index.dat
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x88]
call fcn.140002470
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
mov r8d, 0x1001
lea rcx, [rsp + 0xc0]
call sub.mfc90u.dll_CDynLinkLibrary::CDynLinkLibrary_1
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CDocObjectServer::XOleObject::GetExtent]
mov ebx, eax
add ebx, ebx
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
mov r8d, ebx
lea rcx, [rsp + 0xc0]
call sub.mfc90u.dll_CDaoRecordset::SetParamValue
mov r8d, 2
lea rdx, [0x1403f654c]
lea rcx, [rsp + 0xc0]
call sub.mfc90u.dll_CDaoRecordset::SetParamValue
lea rcx, [rsi + 0x640]
call qword [sym.imp.mfc90u.dll_CDocObjectServer::XOleObject::GetExtent]
mov edi, eax
add edi, edi
lea rcx, [rsi + 0x640]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
mov r8d, edi
lea rcx, [rsp + 0xc0]
call sub.mfc90u.dll_CDaoRecordset::SetParamValue
lea rcx, [rsp + 0xc0]
call sub.mfc90u.dll_CFrameWnd::CanEnterHelpMode
nop
lea rcx, [rsp + 0xc0]
call sub.mfc90u.dll_CDialogTemplate::CDialogTemplate
nop
jmp 0x14001e513
lea rcx, [rsp + 0x48]
call qword [0x1403f4428]
nop
lea rdx, [rsi + 0x220]
lea rcx, [rsp + 0x68]
call qword [0x1403f4480]
lea rdx, [rsp + 0x48]
mov rcx, rax
call fcn.14001d700
lea rdx, [0x1403f57dc]
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CDaoTableDef::classCDaoTableDef]
test eax, eax
je 0x14001e6b5
lea rdx, [0x1403f5c5d]
lea rcx, [rsp + 0x40]
call qword [0x1403f3fc8]
nop
xor ebx, ebx
mov word [rsp + reloc.mfc90u.dll_CScrollView::CScrollView], bx
xor edx, edx
mov r8d, COleVariant::COleVariant
lea rcx, [rsp + reloc.mfc90u.dll_CSharedFile::CSharedFile]
call sub.MSVCR90.dll_memset
mov edx, SerializeElements<class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > >
lea rcx, [rsp + reloc.mfc90u.dll_CScrollView::CScrollView]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rdx, [rsp + reloc.mfc90u.dll_CScrollView::CScrollView]
lea rcx, [rsp + 0x58]
call qword [0x1403f4480]
nop
mov word [rsp + 0xf0], bx
xor edx, edx
mov r8d, COleVariant::COleVariant
lea rcx, [rsp + 0xf2]
call sub.MSVCR90.dll_memset
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
lea rdx, [rsp + 0xf0]
movzx ecx, word [rax]
mov word [rdx], cx
add rax, 2
add rdx, 2
test cx, cx
jne 0x14001e5e1
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x68]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
mov r9, rax
lea r8, [rsp + 0xf0]
lea rdx, [0x1403ffb80]
lea rcx, [rsp + 0xf0]
call fcn.14001d8c0
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CStatusBar::GetThisMessageMap]
test al, al
sete al
test al, al
je 0x14001e69d
lea r8, [0x1403ff83c]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.140002470
nop
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rbx, rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_CopyFileW]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CView::CView]
test r12, r12
jne 0x14001e70a
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor eax, eax
jmp 0x14001e795
mov edx, 0x5c
mov rcx, r12
call qword [sym.imp.MSVCR90.dll_wcsrchr]
mov rdx, rax
lea rcx, [rsp + 0x78]
call qword [0x1403f4480]
nop
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x80]
call fcn.140014560
lea rcx, [rsp + 0x80]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CopyFileW]
inc dword [0x1404e50fc]
lea rcx, [rsp + 0x80]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor eax, eax
mov rcx, qword [rsp + 0x510]
xor rcx, rsp
call fcn.1403addc0
mov rbx, qword [rsp + 0x548]
add rsp, 0x520
pop r12
pop rdi
pop rsi
ret