Function at 0x10037670
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100dc2bf
mov eax, dword fs:[0]
push eax
sub esp, 0x3bc
mov eax, dword [0x10145188]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
push str..png
lea ecx, [ebp - 0x364]
mov dword [ebp - 4], ebx
call dword [0x100ec95c]
push 0x100ee700
lea ecx, [ebp + 8]
mov byte [ebp - 4], 1
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
jne 0x10037798
push 1
push ebx
push ebx
push ebx
push 6
push str.gT_rT
push 0x100fadf4
push ebx
lea ecx, [ebp - 0x35c]
call dword [sym.imp.mfc100u.dll_CFileDialog::CFileDialog]
lea ecx, [ebp - 0x35c]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc100u.dll_CFileDialog::DoModal]
lea ecx, [ebp - 0x35c]
cmp eax, 2
jne 0x10037715
mov byte [ebp - 4], 1
call dword [0x100ec7b8]
jmp 0x10037ab2
lea eax, [ebp - 0x368]
push eax
call dword [sym.imp.mfc100u.dll_CFileDialog::GetFileExt]
push eax
lea ecx, [ebp - 0x364]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x368]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Trim]
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::MakeLower]
lea ecx, [ebp - 0x368]
push ecx
lea ecx, [ebp - 0x35c]
call dword [sym.imp.mfc100u.dll_CFileDialog::GetPathName]
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x368]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x35c]
mov byte [ebp - 4], 1
call dword [0x100ec7b8]
mov edx, dword [edi + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.mfc100u.dll_CDC::FromHandle]
mov esi, eax
lea ecx, [ebp - 0x384]
mov dword [ebp - 0x374], esi
call dword [sym.imp.mfc100u.dll_CDC::CDC]
mov byte [ebp - 4], 5
cmp esi, ebx
jne 0x100377c9
xor eax, eax
jmp 0x100377cc
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [ebp - 0x384]
call dword [sym.imp.mfc100u.dll_CDC::Attach]
mov dword [ebp - 0x36c], ebx
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
mov byte [ebp - 4], 6
mov eax, dword [edi + 0xfc]
sub eax, dword [edi + 0xf4]
mov ecx, dword [edi + 0xf8]
sub ecx, dword [edi + 0xf0]
push eax
mov eax, dword [esi + 4]
push ecx
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [ebp - 0x370]
call dword [sym.imp.mfc100u.dll_CGdiObject::Attach]
mov eax, dword [ebp - 0x36c]
cmp eax, ebx
je 0x1003783d
mov ecx, dword [ebp - 0x380]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [ebp - 0x394]
call dword [sym.imp.mfc100u.dll_CDC::CDC]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x380]
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [ebp - 0x394]
call dword [sym.imp.mfc100u.dll_CDC::Attach]
mov eax, dword [edi + 0xdc]
cmp eax, ebx
jne 0x10037875
xor eax, eax
jmp 0x10037878
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x390]
push eax
call dword [sym.imp.mfc100u.dll_CDC::SelectGdiObject]
mov edx, dword [edi + 0xf4]
mov esi, dword [edi + 0xf0]
mov eax, dword [edi + 0xfc]
mov ecx, dword [edi + 0xf8]
push 0xcc0020
push edx
push esi
sub eax, edx
mov edx, dword [ebp - 0x390]
push edx
push eax
mov eax, dword [ebp - 0x380]
sub ecx, esi
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
lea ecx, [ebp - 0x394]
call dword [sym.imp.mfc100u.dll_CDC::DeleteDC]
or eax, 0xffffffff
push 0x10148900
mov dword [ebp - method.ATL::CImage.virtual_0], vtable.ATL::CImage.0
mov dword [ebp - 0x3c0], ebx
mov dword [ebp - 0x3bc], ebx
mov dword [ebp - 0x3b8], ebx
mov dword [ebp - 0x3b4], ebx
mov dword [ebp - 0x3b0], ebx
mov word [ebp - 0x3ac], bx
mov dword [ebp - 0x3a8], eax
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], ebx
mov dword [ebp - 0x39c], ebx
mov dword [ebp - 0x398], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [0x10148918]
push 0x10148900
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x36c]
lea esi, [ebp - 0x3c8]
mov dword [ebp - 0x3c4], ecx
call fcn.10039500
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::GetManager]
push eax
push 0x100fadfc
lea ecx, [ebp - 0x368]
call dword [0x100ec78c]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x368]
push edx
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
lea ecx, [ebp - 0x368]
sete byte [ebp - 0x35d]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
cmp byte [ebp - 0x35d], bl
je 0x100379b1
mov ecx, 0x100ee12c
jmp 0x10037a17
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::GetManager]
push eax
push 0x100fae00
lea ecx, [ebp - 0x368]
call dword [0x100ec78c]
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x368]
push ecx
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
lea ecx, [ebp - 0x368]
sete byte [ebp - 0x35d]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
cmp byte [ebp - 0x35d], bl
je 0x10037a12
mov edx, dword [ebp + 8]
push edx
mov ecx, 0x100ee13c
jmp 0x10037a1b
mov ecx, 0x100ee14c
mov eax, dword [ebp + 8]
push eax
lea edx, [ebp - 0x3c8]
call fcn.10039250
lea ecx, [ebp - 0x384]
call dword [sym.imp.mfc100u.dll_CDC::DeleteDC]
lea ecx, [ebp - 0x370]
call dword [sym.imp.mfc100u.dll_CGdiObject::DeleteObject]
mov ecx, dword [ebp - 0x374]
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [edi + 0xf0]
mov edx, dword [edi + 0xf4]
mov dword [edi + 0xf8], ecx
lea ecx, [ebp - 0x3c8]
mov dword [edi + 0xfc], edx
mov byte [edi + 0x1c9], bl
call fcn.10039880
mov byte [ebp - 4], 6
mov esi, dword [reloc.mfc100u.dll_CDC::CDC]
lea ecx, [ebp - 0x394]
call esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x370]
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
call fcn.10007160
lea ecx, [ebp - 0x384]
mov byte [ebp - 4], 1
call esi
lea ecx, [ebp - 0x364]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp + 8]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100d0962
mov esp, ebp
pop ebp
ret 4