Function at 0x1800236a0
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x188]
sub rsp, 0x248
mov qword [rbp + 0x78], 0xfffffffffffffffe
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
mov r13d, r9d
mov r14, r8
mov rsi, rdx
mov r12, rcx
cmp qword [rcx + 0x170], 0
je 0x180023ffc
test rdx, rdx
je 0x180023ffc
cmp qword [r8 + 0x10], 1
jl 0x180023ffc
mov ecx, 0x98
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x18002375b
mov rcx, rax
call qword [sym.imp.Hg3DExchangeHU.dll_public:_void___cdecl_CHg3DExchangeMng::constructor_void____ptr64]
mov rbx, rax
jmp 0x18002375d
xor ebx, ebx
mov qword [rbp - 0x68], rbx
test rbx, rbx
je 0x180023ffc
lea rdx, [0x1800a89f0]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
nop
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.Hg3DExchangeHU.dll_public:_class_CHg3DExchangeBase____ptr64___cdecl_CHg3DExchangeMng::GetExchange_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const____ptr64____ptr64]
mov rbx, rax
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
test rbx, rbx
je 0x1800237a9
xor edx, edx
mov rcx, rbx
call qword [sym.imp.Hg3DExchangeHU.dll_public:_void___cdecl_CHg3DExchangeBase::SetVisibleProgress_int____ptr64]
mov rdi, qword [r14 + 0x10]
mov qword [rsp + 0x50], rdi
mov edx, 0x36ce
mov rcx, r12
call qword [sym.imp.mfc100u.dll_CCmdTarget::GetCommandMap]
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1800237f8
test r13d, r13d
je 0x1800237f8
mov rax, qword [rbp + 0x1b0]
cmp dword [rax], 0
jne 0x1800237f8
movzx r9d, di
shl r9d, 0x10
xor r8d, r8d
mov edx, 0x401
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
xorpd xmm6, xmm6
movsd qword [rbp + 0x60], xmm6
movsd xmm0, qword [0x1800acea0]
movsd qword [rbp + 0x68], xmm0
lea rax, vtable.CVector.0
mov qword [rbp + 0x58], rax
movsd qword [rbp + 0x70], xmm6
movapd xmm7, xmm6
movsd qword [rbp], xmm6
movsd qword [rbp + 8], xmm0
mov qword [rbp - 8], rax
movsd qword [rbp + 0x10], xmm6
movapd xmm11, xmm6
movapd xmm9, xmm6
movapd xmm8, xmm6
movsd qword [rbp - 0x60], xmm6
mov ecx, 0x190
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x18002386f
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DEntityList::constructor_class_CHg3DData____ptr64____ptr64]
mov r15, rax
jmp 0x180023872
xor r15d, r15d
mov qword [rsp + 0x58], r15
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], 1
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x40]
mov rdx, r15
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::AttachEntityList_class_CHg3DEntityList____ptr64__int_const____ptr64__int_const____ptr64____ptr64]
xor r13d, r13d
mov dword [rsp + 0x48], r13d
xor edi, edi
mov qword [rbp - 0x50], rdi
cmp dword [rsp + 0x50], edi
jle 0x180023e0a
movsd xmm10, qword [0x1800aa9c0]
movsd xmm13, qword [0x1800ace90]
movsd xmm12, qword [0x1800ace80]
cmp dword [r12 + reloc.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____], 0
jne 0x180023e0a
test rbx, rbx
je 0x18002390e
cmp dword [rbp + 0x1a8], 0
je 0x18002390e
mov rax, qword [rbp + 0x1b0]
cmp dword [rax], 0
jne 0x18002390e
movsxd r8, r13d
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
test rdi, rdi
js 0x180023e03
cmp rdi, qword [r14 + 0x10]
jge 0x180023e03
mov rax, qword [r14 + 8]
mov rcx, qword [rax + rdi*8]
mov edi, dword [rcx]
mov rsi, qword [r12 + 0x170]
mov rcx, qword [rsi + 0xa80]
test rcx, rcx
je 0x180023da8
test edi, edi
js 0x180023da8
call sym.Hg3DUiHU.dll_public:_int___cdecl_CHgDrawingList::GetCountPage_void_const___ptr64
cmp edi, eax
jg 0x180023da8
mov r10, qword [rsi + 0xa80]
test r10, r10
je 0x180023da8
or r11d, 0xffffffff
or r9d, r11d
xor r8d, r8d
xor edx, edx
mov rbx, qword [r10 + 0x18]
test ebx, ebx
jle 0x180023d9f
test r8d, r8d
jns 0x18002398d
movsxd rax, r8d
cmp rax, rbx
jge 0x1800239ce
test rdx, rdx
js 0x180023dfc
cmp rdx, rbx
jge 0x180023dfc
mov rax, qword [r10 + 0x10]
mov rcx, qword [rax + rdx*8]
test rcx, rcx
je 0x1800239ce
cmp qword [rcx + 0x20], 0
je 0x1800239ce
inc r11d
cmp qword [rcx + 0x80], 0
je 0x1800239c9
cmp dword [rcx + 0x68], 0
jne 0x1800239c9
inc r9d
cmp edi, r9d
je 0x1800239df
inc r8d
inc rdx
cmp r8d, ebx
jge 0x180023d9f
jmp 0x180023980
test r11d, r11d
js 0x180023d9f
mov edx, r11d
mov rcx, rsi
call sym.Hg3DUiHU.dll_public:_class_CHgDrawingItem____ptr64___cdecl_CHgDrawingTreeListCtrl::GetDrawingItem_int____ptr64
mov rbx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x180023d9f
cmp qword [rax + 0x20], 0
je 0x180023d9f
mov eax, 0x88888889
imul r13d
add edx, r13d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xf
cmp r13d, edx
jne 0x180023a8d
movapd xmm0, xmm9
xorpd xmm0, xmm13
subsd xmm0, xmm12
addsd xmm11, xmm0
movsd qword [rbp + 0x20], xmm6
movsd qword [rbp + 0x28], xmm11
lea rax, vtable.CVector.0
mov qword [rbp + 0x18], rax
movsd qword [rbp + 0x30], xmm6
lea r8, [rbp + 0x18]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x58]
call fcn.180024640
movsd xmm7, qword [rax + 8]
movsd qword [rbp], xmm7
movsd xmm0, qword [rax + 0x10]
movsd qword [rbp + 8], xmm0
movsd xmm1, qword [rax + 0x18]
movsd qword [rbp + 0x10], xmm1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x44], 0
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x44]
mov rdx, r15
mov rsi, qword [rbp + 0x198]
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::AttachEntityList_class_CHg3DEntityList____ptr64__int_const____ptr64__int_const____ptr64____ptr64]
mov qword [rsp + 0x78], 0
mov qword [rbp - 0x80], 0
mov qword [rbp - 0x78], 0
mov dword [rbp - 0x70], 0
mov r15, qword [rbx + 0x20]
mov rcx, r15
call qword [sym.imp.Hg3DEntityHU.dll_public:_int___cdecl_CHg3DEntityList::GetCountEttType_void_const___ptr64]
mov r14d, eax
xor r13d, r13d
test eax, eax
jle 0x180023c2e
nop
mov edx, r13d
mov rcx, r15
call qword [sym.imp.Hg3DEntityHU.dll_public:_class_CArrayEntity____ptr64___cdecl_CHg3DEntityList::GetEttArr_int_const___ptr64]
mov r12, rax
test rax, rax
je 0x180023c16
mov rcx, rax
call qword [sym.imp.Hg3DEntityHU.dll_public:_struct___POSITION____ptr64___cdecl_CArrayEntity::GetStartPosition_void_const___ptr64]
mov qword [rbp - 0x58], rax
test rax, rax
je 0x180023c16
nop
lea rdx, [rbp - 0x58]
mov rcx, r12
call qword [sym.imp.Hg3DEntityHU.dll_public:_class_CEttBase____ptr64___cdecl_CArrayEntity::GetNextValue_struct___POSITION____ptr64____ptr64_const___ptr64]
mov rdi, rax
test rax, rax
je 0x180023c0b
mov rbx, qword [rsi]
mov rcx, rax
call qword [sym.imp.Hg3DEntityHU.dll_public:_int___cdecl_CEttBase::GetEttType_void_const___ptr64]
mov edx, eax
mov r8d, 1
mov rcx, rsi
call qword [rbx + ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >]
mov rsi, rax
mov rbx, qword [rbp + 0x198]
mov r10, qword [rbx]
mov r9d, 1
mov r8, rdi
mov rdx, rax
mov rcx, rbx
call qword [r10 + 0x148]
mov r11, qword [rbx]
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
xor r9d, r9d
lea r8d, [r9 + 1]
mov rdx, rsi
mov rcx, rbx
call qword [r11 + 0xd0]
mov r11, qword [rbp - 0x80]
mov rbx, r11
cmp r11, qword [rbp - 0x78]
jb 0x180023be8
lea rdx, [r11 + 1]
lea rcx, [rsp + 0x78]
call fcn.180024400
test al, al
je 0x180023de6
mov r11, qword [rbp - 0x80]
mov rax, qword [rsp + 0x78]
lea rcx, [rax + rbx*8]
test rcx, rcx
je 0x180023bfd
mov qword [rcx], rsi
mov r11, qword [rbp - 0x80]
inc r11
mov qword [rbp - 0x80], r11
mov rsi, qword [rbp + 0x198]
cmp qword [rbp - 0x58], 0
jne 0x180023b30
inc r13d
cmp r13d, r14d
jl 0x180023b00
mov rbx, qword [rsp + 0x68]
mov r12, qword [rbp + 0x190]
movapd xmm1, xmm6
movsd qword [rbp - 0x40], xmm6
movsd qword [rbp - 0x38], xmm6
lea rdi, vtable.CVector.0
mov qword [rbp - 0x48], rdi
movsd qword [rbp - 0x30], xmm6
movapd xmm0, xmm6
movsd qword [rbp - 0x20], xmm6
movapd xmm2, xmm6
movsd qword [rbp - 0x18], xmm6
mov qword [rbp - 0x28], rdi
movsd qword [rbp - 0x10], xmm6
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x180023c8d
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x48]
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DEntityList::GetLimit_class_CVector____ptr64__class_CVector____ptr64_const___ptr64]
movsd xmm1, qword [rbp - 0x40]
movsd xmm2, qword [rbp - 0x18]
movsd xmm0, qword [rbp - 0x20]
cmp dword [r12 + 0x194], 0
je 0x180023ce0
ucomisd xmm8, xmm6
jp 0x180023cb8
jne 0x180023cb8
movapd xmm8, xmm1
subsd xmm8, xmm0
andpd xmm8, xmm10
movsd qword [rbp - 0x60], xmm8
jmp 0x180023ce0
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x48]
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x78]
mov rcx, r12
call sym.Hg3DUiHU.dll_private:_void___cdecl_CHgExportDrawing::ResizeForSameScale_class_ATL::CAtlArray_class_CEttBase____ptr64__class_ATL::CElementTraits_class_CEttBase____ptr64______ptr64__double_const____ptr64__class_CVector____ptr64__class_CVector____ptr64____ptr64
movsd xmm1, qword [rbp - 0x40]
movsd xmm2, qword [rbp - 0x18]
movsd xmm0, qword [rbp - 0x38]
subsd xmm0, xmm2
andpd xmm0, xmm10
comisd xmm0, xmm9
jbe 0x180023cfa
movapd xmm9, xmm0
movsd qword [rbp + 0x40], xmm1
movsd qword [rbp + 0x48], xmm2
mov qword [rbp + 0x38], rdi
movsd qword [rbp + 0x50], xmm6
lea r8, [rbp + 0x38]
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 8]
call fcn.18001bca0
nop
addsd xmm7, qword [rbp - 0x20]
subsd xmm7, qword [rbp - 0x40]
addsd xmm7, xmm12
movsd qword [rbp], xmm7
xor ebx, ebx
mov rdx, qword [rbp - 0x80]
test rdx, rdx
je 0x180023d74
cmp rbx, rdx
jae 0x180023df1
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + rbx*8]
test rcx, rcx
je 0x180023d6c
mov rax, qword [rcx]
lea rdx, [rbp + 0x80]
call qword [rax + CDataExchange::CDataExchange]
mov rdx, qword [rbp - 0x80]
inc rbx
cmp rbx, rdx
jb 0x180023d4a
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::CleanMemory_void____ptr64]
nop
mov qword [rbp + 0x80], rdi
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x48], rdi
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x180023db1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x180023db1
mov rsi, qword [rbp + 0x198]
jmp 0x180023dc2
mov rsi, qword [rbp + 0x198]
jmp 0x180023dc7
mov r15, qword [rsp + 0x58]
mov r14, qword [rbp + 0x1a0]
mov r13d, dword [rsp + 0x48]
mov rbx, qword [rsp + 0x60]
inc r13d
mov dword [rsp + 0x48], r13d
mov rdi, qword [rbp - 0x50]
inc rdi
mov qword [rbp - 0x50], rdi
cmp r13d, dword [rsp + 0x50]
jge 0x180023e0a
jmp 0x1800238d0
mov ecx, 0x8007000e
call fcn.180003950
nop
mov ecx, 0x80070057
call fcn.180003950
nop
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
mov dword [rbp + 0x190], 1
mov dword [rsp + 0x44], 0
mov rax, qword [rsi]
lea r9, [rbp + 0x190]
lea r8, [rsp + 0x44]
xor edx, edx
mov rcx, rsi
call qword [rax + Ordinal_203]
xor r14d, r14d
mov dword [rbp + 0x190], r14d
mov rax, qword [r12]
mov qword [rsp + 0x28], r14
mov r13, qword [rbp + 0x1b0]
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x190]
lea r8d, [r14 + 1]
lea rdx, [rsp + 0x70]
mov rcx, r12
call qword [rax + 0x338]
nop
lea r9, [rsp + 0x70]
mov r8, qword [r12 + 0x168]
mov rdx, rsi
mov rdi, qword [rbp - 0x68]
mov rcx, rdi
call qword [sym.imp.Hg3DExchangeHU.dll_public:_int___cdecl_CHg3DExchangeMng::Export_class_CHg3DData____ptr64__class_CHg3DView____ptr64__class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const____ptr64____ptr64]
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::InitAllEtt_void____ptr64]
mov dword [rsp + 0x44], 1
mov dword [rsp + 0x40], 1
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CHg3DData::DetachEntityList_int_const____ptr64__int_const____ptr64____ptr64]
test r15, r15
je 0x180023eca
mov rax, qword [r15]
lea edx, [r14 + 1]
mov rcx, r15
call qword [rax + 0x18]
cmp dword [rbp + 0x1a8], 0
je 0x180023f38
cmp dword [r13], 0
jne 0x180023f38
test rbx, rbx
je 0x180023ef6
movsxd r8, dword [rsp + 0x50]
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
lea r8, str.Print_Drawing_:_Complete.
lea rdx, str.Eng_Hg3D
lea rcx, [rsp + 0x68]
call fcn.180032230
nop
mov rbx, qword [rax]
mov edx, 0x36d5
mov rcx, r12
call qword [sym.imp.mfc100u.dll_CCmdTarget::GetCommandMap]
mov rcx, rax
mov rdx, rbx
call qword [sym.imp.mfc100u.dll_COleServerItem::XOleObject::SetMoniker]
nop
lea rcx, [rsp + 0x68]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
mov rcx, rdi
call qword [sym.imp.Hg3DExchangeHU.dll_public:_void___cdecl_CHg3DExchangeMng::destructor_void____ptr64]
mov rcx, rdi
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
cmp dword [r12 + 0x12c], 0
je 0x180023ff0
cmp dword [r12 + reloc.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____], 0
jne 0x180023ff0
lea rcx, [rsp + 0x58]
call qword [sym.imp.HgUtilGeometryU.dll_public:_static_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CUtilGeometric::GetPathExe_void_]
nop
lea rdx, str.HgPlotU.exe
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_COleCurrency::operator_]
lea rcx, [rsp + 0x50]
call qword [0x18009c008]
nop
mov r9, qword [rsp + 0x70]
mov r8, qword [r12 + 0x178]
lea rdx, str._Print____s____s___Y_
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CMFCRibbonRecentFilesList::FillList]
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r14
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
nop
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
nop
lea r11, [rsp + 0x248]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret