Function at 0x180022080
Capabilities:
Copy file

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rax - 0x57]
sub rsp, 0xa0
mov qword [rbp - 0x39], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rdi, r9
mov r13, r8
mov r12, rdx
mov rsi, rcx
mov rcx, qword [rcx + 0x170]
call qword [sym.imp.HgUiU.dll_public:_class_CHgTreeListItem____ptr64___cdecl_CHgTreeListCtrl::GetSelectedItem_void____ptr64]
mov rbx, rax
mov rdx, rdi
mov rcx, qword [rsi + 0x170]
call sym.Hg3DUiHU.dll_public:_class_CHgTreeListItem____ptr64___cdecl_CHgDrawingTreeListCtrl::GetItemByDrawingItem_class_CHgDrawingItem____ptr64____ptr64
xor r14d, r14d
mov r9d, r14d
cmp rbx, rax
setne r9b
mov dword [rbp + 0x77], r9d
cmp dword [rdi + 0x6c], r14d
jne 0x1800220f1
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc100u.dll_CEnumArray::CEnumArray]
nop
xor r8d, r8d
mov rdx, qword [rdi + 0x70]
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc100u.dll_CArchivePropExchange::ExchangeBlobProp]
test eax, eax
je 0x18002215b
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc100u.dll_CDockSite::CDockSite]
lea rdx, [rbp + 0x5f]
mov rcx, rdi
call sym.Hg3DUiHU.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CHgDrawingItem::GetPathDrawing_void____ptr64
mov r11, qword [rbp + 0x7f]
xor r8d, r8d
mov rdx, qword [r11]
mov rcx, qword [rbp + 0x5f]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea rcx, [rbp + 0x5f]
test eax, eax
jne 0x180022150
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
xor eax, eax
jmp 0x180022293
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
jmp 0x18002228e
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc100u.dll_CDockSite::CDockSite]
mov r11, qword [rdi + 0x70]
cmp dword [r11 - 0x10], 0
je 0x1800221b3
cmp dword [rdi + 0x78], 2
je 0x1800221b3
mov dword [rbp + 0x5f], 1
lea r8, [rbp + 0x5f]
lea rdx, [rbp + 0x77]
mov rcx, rdi
call sym.Hg3DUiHU.dll_public:_void___cdecl_CHgDrawingItem::ExportDrawing_int_const____ptr64__int_const____ptr64____ptr64
lea rdx, [rbp - 0x41]
mov rcx, rdi
call sym.Hg3DUiHU.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CHgDrawingItem::GetPathDrawing_void____ptr64
mov r11, qword [rbp + 0x7f]
xor r8d, r8d
mov rdx, qword [r11]
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea rcx, [rbp - 0x41]
jmp 0x18002213f
xorpd xmm0, xmm0
movsd qword [rbp - 9], xmm0
movsd qword [rbp - 1], xmm0
lea rax, vtable.CVector.0
mov qword [rbp - 0x11], rax
movsd qword [rbp + 7], xmm0
movsd qword [rbp - 0x29], xmm0
movsd qword [rbp - 0x21], xmm0
mov qword [rbp - 0x31], rax
movsd qword [rbp - 0x19], xmm0
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1800221fb
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x11]
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DEntityList::GetLimit_class_CVector____ptr64__class_CVector____ptr64_const___ptr64]
lea rax, [rbp - 0x21]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x29]
lea r8, [rbp - 1]
lea rdx, [rbp - 9]
mov rcx, r13
call qword [sym.imp.Hg3DExchangeHU.dll_public:_void___cdecl_CHg3DExchangeDwg::SetLimits_double_const____ptr64__double_const____ptr64__double_const____ptr64__double_const____ptr64____ptr64]
mov rcx, r12
call qword [sym.imp.Hg3DEntityHU.dll_public:_class_CHg3DEntityList____ptr64___cdecl_CHg3DData::GetEntityList_void_const___ptr64]
mov rbx, rax
mov dword [rbp + 0x5f], r14d
mov dword [rbp + 0x77], r14d
lea r9, [rbp + 0x5f]
lea r8, [rbp + 0x77]
mov rdx, qword [rdi + 0x20]
mov rcx, r12
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::AttachEntityList_class_CHg3DEntityList____ptr64__int_const____ptr64__int_const____ptr64____ptr64]
mov rdx, qword [rbp + 0x7f]
lea rcx, [rbp + 0x5f]
call qword [0x18009c538]
mov r10, qword [r13]
mov r9, qword [rsi + 0x168]
mov r8, rax
mov rdx, r12
mov rcx, r13
call qword [r10 + reloc.WS2_32.dll_htonl]
mov rcx, r12
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::InitAllEtt_void____ptr64]
mov dword [rbp + 0x5f], r14d
mov dword [rbp + 0x77], r14d
lea r9, [rbp + 0x5f]
lea r8, [rbp + 0x77]
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::AttachEntityList_class_CHg3DEntityList____ptr64__int_const____ptr64__int_const____ptr64____ptr64]
nop
mov eax, 1
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret