Function at 0x1800255f0
Capabilities:
Capture screenshot

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x78]
sub rsp, 0x178
mov qword [rbp + 0x40], 0xfffffffffffffffe
movaps xmmword [rsp + 0x160], xmm6
mov rax, qword [0x1800f1020]
xor rax, rsp
mov qword [rbp + 0x58], rax
mov r15, r9
mov rbx, rcx
mov r9, qword [rbp + 0xe0]
mov qword [rbp + 0x38], r9
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0x30], rax
call sym.Hg3DUiHU.dll_private:_void___cdecl_CHgImageBoxCtrl::CreateViews_class_CHg3DData____ptr64__class_CWnd____ptr64__class_CRect_const____ptr64____ptr64
mov rcx, qword [rbx + 0x140]
mov rbx, qword [rbx + 0x148]
mov qword [rsp + 0x60], rbx
test rcx, rcx
je 0x180025dcd
test rbx, rbx
je 0x180025dcd
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetDC]
mov rcx, rax
call qword [sym.imp.mfc100u.dll_CMFCToolBar::FindDropIndex]
mov qword [rbp - 0x20], rax
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DData____ptr64___cdecl_CHg3DCtrl::GetHg3DData_void____ptr64]
mov rsi, rax
mov qword [rbp - 0x58], rax
test rax, rax
je 0x180025dcd
xor r13d, r13d
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r13
mov dword [rbp - 0x28], r13d
mov r14d, r13d
mov qword [rbp - 0x78], r13
mov r12d, r13d
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], r13
mov dword [rbp - 0x60], r13d
mov rax, qword [rbp + 0xf0]
mov dword [rsp + 0x50], r13d
cmp dword [rax], r13d
je 0x1800259af
movsd xmm0, qword [0x1800aa918]
movsd qword [rsp + 0x68], xmm0
movsd qword [rsp + 0x58], xmm0
movsd qword [rbp + 0x28], xmm0
movsd qword [rbp - 0x80], xmm0
movsd qword [rsp + 0x70], xmm0
movsd qword [rsp + 0x78], xmm0
lea r9, [rsp + 0x68]
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 8]
call fcn.1800393d0
mov rdi, rax
lea r9, [rbp - 0x80]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x18]
call fcn.1800393d0
mov rbx, rax
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
mov rcx, rax
call qword [sym.imp.Hg3DHU.dll_public:_class_CViewSetting____ptr64___cdecl_CHg3DView::GetViewSetting_void_const___ptr64]
mov rcx, rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, rdi
mov rdx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_void___cdecl_CViewSetting::SetColorViewBackground_class_CHgColor_const____ptr64__class_CHgColor_const____ptr64__int__enum_CViewSetting::nDView_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x18]
call fcn.180039510
nop
lea rcx, [rbp + 8]
call fcn.180039510
mov dword [rsp + 0x50], r13d
mov rax, qword [r15 + 8]
mov esi, r13d
mov qword [rsp + 0x68], r13
test eax, eax
jle 0x180025ab3
xorpd xmm6, xmm6
nop word [rax + rax]
mov dword [rsp + 0x58], r13d
cmp rsi, rax
jae 0x1800259a4
mov rdx, qword [r15]
mov rdi, qword [rbp - 0x58]
mov rax, qword [rdi]
lea r9, [rsp + 0x58]
lea r8, [rbp - 0x40]
mov rdx, qword [rdx + rsi*8]
mov rcx, rdi
call qword [rax + 0xe8]
test eax, eax
je 0x18002586f
mov edi, r13d
mov rbx, r13
mov ecx, dword [rbp - 0x38]
test ecx, ecx
jle 0x180025955
nop word [rax + rax]
cmp rbx, qword [rbp - 0x38]
jae 0x180025978
mov rax, qword [rbp - 0x40]
mov rsi, qword [rax + rbx*8]
test rsi, rsi
je 0x18002585c
mov dword [rsp + 0x58], r13d
movsd qword [rsp + 0x78], xmm6
movsd qword [rsp + 0x70], xmm6
movsd qword [rbp - 0x80], xmm6
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 8]
call fcn.1800393d0
nop
lea r8, [rsp + 0x58]
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_void___cdecl_IEttBase::SetColor_class_CEttBase____ptr64__class_CHgColor_const____ptr64__int_const____ptr64_]
nop
lea rcx, [rbp + 8]
call fcn.180039510
mov rcx, rsi
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_int___cdecl_IEttBase::Create_class_CEttBase____ptr64_]
mov ecx, dword [rbp - 0x38]
inc edi
inc rbx
cmp edi, ecx
jl 0x1800257f0
mov rsi, qword [rsp + 0x68]
jmp 0x180025955
cmp rsi, qword [r15 + 8]
jae 0x180025999
mov rcx, qword [r15]
mov rbx, qword [rdi]
mov rcx, qword [rcx + rsi*8]
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_int___cdecl_IEttBase::GetEttType_class_CEttBase_const____ptr64_]
mov edx, eax
mov r8d, 1
mov rcx, rdi
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 rbx, rax
test rax, rax
je 0x180025955
cmp rsi, qword [r15 + 8]
jae 0x18002598e
mov r8, qword [r15]
mov r10, qword [rdi]
mov r9d, 1
mov r8, qword [r8 + rsi*8]
mov rdx, rax
mov rcx, rdi
call qword [r10 + 0x148]
mov dword [rsp + 0x58], r13d
movsd qword [rsp + 0x78], xmm6
movsd qword [rsp + 0x70], xmm6
movsd qword [rbp - 0x80], xmm6
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x18]
call fcn.1800393d0
nop
lea r8, [rsp + 0x58]
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_void___cdecl_IEttBase::SetColor_class_CEttBase____ptr64__class_CHgColor_const____ptr64__int_const____ptr64_]
nop
lea rcx, [rbp - 0x18]
call fcn.180039510
mov rcx, rbx
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_int___cdecl_IEttBase::Create_class_CEttBase____ptr64_]
mov rdi, r12
cmp r12, qword [rbp - 0x68]
jb 0x180025942
lea rdx, [r12 + 1]
lea rcx, [rbp - 0x78]
call fcn.180024400
test al, al
je 0x180025983
mov r12, qword [rbp - 0x70]
mov r14, qword [rbp - 0x78]
lea rax, [r14 + rdi*8]
test rax, rax
je 0x18002594e
mov qword [rax], rbx
inc r12
mov qword [rbp - 0x70], r12
mov ecx, dword [rsp + 0x50]
inc ecx
mov dword [rsp + 0x50], ecx
inc rsi
mov qword [rsp + 0x68], rsi
mov rax, qword [r15 + 8]
cmp ecx, eax
jge 0x180025ab3
jmp 0x1800257a0
mov ecx, 0x80070057
call fcn.180003950
int3
mov ecx, 0x8007000e
call fcn.180003950
int3
mov ecx, 0x80070057
call fcn.180003950
int3
mov ecx, 0x80070057
call fcn.180003950
int3
mov ecx, 0x80070057
call fcn.180003950
int3
mov rax, qword [r15 + 8]
mov rdi, r13
test eax, eax
jle 0x180025ab8
nop
cmp rdi, rax
jae 0x180025aa8
mov rcx, qword [r15]
mov rbx, qword [rsi]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_int___cdecl_IEttBase::GetEttType_class_CEttBase_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 rbx, rax
test rax, rax
je 0x180025a94
cmp rdi, qword [r15 + 8]
jae 0x180025a89
mov r8, qword [r15]
mov r10, qword [rsi]
mov r9d, 1
mov r8, qword [r8 + rdi*8]
mov rdx, rax
mov rcx, rsi
call qword [r10 + 0x148]
mov rcx, rbx
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_int___cdecl_IEttBase::Create_class_CEttBase____ptr64_]
mov rax, r12
mov qword [rbp - 0x58], rax
cmp r12, qword [rbp - 0x68]
jb 0x180025a51
lea rdx, [r12 + 1]
lea rcx, [rbp - 0x78]
call fcn.180024400
test al, al
je 0x180025a7e
mov r12, qword [rbp - 0x70]
mov r14, qword [rbp - 0x78]
mov rax, qword [rbp - 0x58]
lea rax, [r14 + rax*8]
test rax, rax
je 0x180025a5d
mov qword [rax], rbx
inc r12
mov qword [rbp - 0x70], r12
mov ecx, dword [rsp + 0x50]
inc ecx
mov dword [rsp + 0x50], ecx
inc rdi
mov rax, qword [r15 + 8]
cmp ecx, eax
jge 0x180025ab3
jmp 0x1800259c0
mov ecx, 0x8007000e
call fcn.180003950
int3
mov ecx, 0x80070057
call fcn.180003950
nop
test r14, r14
je 0x180025aa3
mov rcx, r14
call qword [sym.imp.MSVCR100.dll_free]
nop
jmp 0x180025dbe
mov ecx, 0x80070057
call fcn.180003950
int3
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
mov rcx, rax
call qword [sym.imp.Hg3DHU.dll_public:_void___cdecl_CHg3DView::Redraw_void____ptr64]
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x480]
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
mov rcx, rax
call qword [sym.imp.Hg3DHU.dll_public:_class_CSystemSetting____ptr64___cdecl_CHg3DView::GetSystemSetting_void____ptr64]
test rax, rax
je 0x180025b07
movsd xmm1, qword [str.ffffff]
mov rcx, rax
call qword [sym.imp.Hg3DEntityHU.dll_public:_void___cdecl_CSystemSettingBase::SetRatioZoomInOut_double____ptr64]
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
mov rcx, rax
xor edx, edx
call qword [sym.imp.Hg3DHU.dll_public:_void___cdecl_CHg3DView::ZoomInOut_int____ptr64]
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x50], r13
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
lea rdx, [rbp + 0x48]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r15, qword [rbp + 0x38]
mov eax, dword [r15 + 0xc]
sub eax, dword [r15 + 4]
mov dword [rsp + 0x58], eax
mov eax, dword [r15 + 8]
sub eax, dword [r15]
mov dword [rsp + 0x50], eax
mov rcx, rbx
call qword [sym.imp.Hg3DHU.dll_public:_class_CHg3DView____ptr64___cdecl_CHg3DCtrl::GetHg3DView_void____ptr64]
mov rcx, rax
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
call qword [sym.imp.Hg3DHU.dll_unsigned_char____ptr64___cdecl_Hg3D_CaptureView_class_CHg3DView____ptr64__int_const____ptr64__int_const____ptr64_]
mov rbx, rax
mov qword [rbp - 0x48], r13
lea rax, vtable.CBitmap.0
mov qword [rbp - 0x50], rax
mov ecx, dword [r15 + 0xc]
sub ecx, dword [r15 + 4]
mov dword [rsp + 0x68], ecx
mov ecx, dword [r15 + 8]
sub ecx, dword [r15]
mov dword [rsp + 0x60], ecx
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r9, rbx
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.Hg3DHU.dll_int___cdecl_Hg3D_CreateBitmapByImageData_class_CDC____ptr64__int_const____ptr64__int_const____ptr64__unsigned_char_const____ptr64__class_CBitmap____ptr64_]
test rbx, rbx
je 0x180025bc8
mov rcx, rbx
call qword [sym.imp.mfc100u.dll_delete__]
mov edi, r13d
mov rbx, r13
mov esi, dword [rbp - 0x70]
test esi, esi
jle 0x180025c0f
cmp rbx, r12
jae 0x180025c04
cmp qword [r14 + rbx*8], 0
je 0x180025bf9
mov rcx, qword [r14 + rbx*8]
test rcx, rcx
je 0x180025bf5
mov rax, qword [rcx]
mov edx, 1
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [r14 + rbx*8], r13
inc edi
inc rbx
cmp edi, esi
jl 0x180025bd5
jmp 0x180025c0f
mov ecx, 0x80070057
call fcn.180003950
int3
test r14, r14
je 0x180025c24
mov rcx, r14
call qword [sym.imp.MSVCR100.dll_free]
mov r14, r13
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], r13
lea rcx, [rbp - 0x40]
call qword [sym.imp.Hg3DEntityHU.dll_public:_static_void___cdecl_IEttBase::DeleteArray_class_ATL::CAtlArray_class_CEttBase____ptr64__class_ATL::CElementTraits_class_CEttBase____ptr64______ptr64_]
lea rcx, [rbp - 0x18]
call qword [sym.imp.mfc100u.dll_CDaoRecordView::CDaoRecordView]
nop
mov rsi, qword [rbp - 0x20]
test rsi, rsi
mov rcx, r13
je 0x180025c51
mov rcx, qword [rsi + 8]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rbp - 0x18]
call qword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::Append]
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.mfc100u.dll_CDataBoundProperty::RemoveSource]
mov rdi, rax
lea rcx, [rbp + 8]
call qword [sym.imp.mfc100u.dll_CDaoRecordView::CDaoRecordView]
nop
test rsi, rsi
mov rcx, r13
je 0x180025c8c
mov rcx, qword [rsi + 8]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rbp + 8]
call qword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::Append]
mov ebx, r13d
mov edx, dword [r15 + 8]
sub edx, dword [r15]
mov r8d, dword [r15 + 0xc]
sub r8d, dword [r15 + 4]
mov rax, qword [rbp + 0xf8]
cmp dword [rax], ebx
je 0x180025cc8
add edx, 3
add r8d, 3
mov ebx, 1
mov rcx, qword [rsi + 8]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rcx, qword [rbp + 0x30]
mov qword [rcx], rax
mov rcx, rax
call qword [sym.imp.mfc100u.dll_CMFCRibbonStatusBar::FindElement]
test rax, rax
mov rdx, r13
je 0x180025cee
mov rdx, qword [rax + 8]
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.mfc100u.dll_CDataBoundProperty::RemoveSource]
mov rsi, rax
mov r8d, dword [r15 + 0xc]
sub r8d, dword [r15 + 4]
mov r9d, dword [r15 + 8]
sub r9d, dword [r15]
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], r13d
mov rcx, qword [rbp - 0x10]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r8d
mov r8d, ebx
mov edx, ebx
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.GDI32.dll_BitBlt]
test rsi, rsi
mov rdx, r13
je 0x180025d45
mov rdx, qword [rsi + 8]
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.mfc100u.dll_CDataBoundProperty::RemoveSource]
lea rcx, [rbp + 8]
call qword [sym.imp.mfc100u.dll_DDX_FieldLBIndex]
nop
lea rcx, [rbp + 8]
call qword [sym.imp.mfc100u.dll_CCommandLineInfo::CCommandLineInfo]
lea rcx, [rbp - 0x50]
call qword [sym.imp.mfc100u.dll_DDX_FieldText_1]
test rdi, rdi
je 0x180025d77
mov r13, qword [rdi + 8]
mov rdx, r13
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.mfc100u.dll_CDataBoundProperty::RemoveSource]
lea rcx, [rbp - 0x18]
call qword [sym.imp.mfc100u.dll_DDX_FieldLBIndex]
nop
lea rcx, [rbp - 0x18]
call qword [sym.imp.mfc100u.dll_CCommandLineInfo::CCommandLineInfo]
nop
lea rax, vtable.CBitmap.0
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x50]
call fcn.180013b70
nop
test r14, r14
je 0x180025dbe
mov rcx, r14
call qword [sym.imp.MSVCR100.dll_free]
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x180025dcd
call qword [sym.imp.MSVCR100.dll_free]
mov rcx, qword [rbp + 0x58]
xor rcx, rsp
call fcn.180030d20
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret