Function at 0x40d71e
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
push esi
push edi
xor edi, edi
push edi
push edi
push edi
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateDCA]
mov ebx, eax
push ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 8
push ebx
mov dword [ebp - 8], eax
call esi
push 0xa
push ebx
mov dword [ebp - 0xc], eax
call esi
mov esi, eax
push esi
push dword [ebp - 0xc]
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
cmp eax, edi
mov dword [ebp - 0x10], eax
jne 0x40d775
lea eax, [ebp - 1]
jmp 0x40d8ad
push eax
push dword [ebp - 8]
call dword [sym.imp.GDI32.dll_SelectObject]
test eax, eax
jne 0x40d78b
lea eax, [ebp - 1]
jmp 0x40d8ad
push 0xcc0020
push esi
push dword [ebp - 0xc]
push edi
push edi
push ebx
push esi
push dword [ebp - 0xc]
push edi
push edi
push dword [ebp - 8]
call dword [sym.imp.GDI32.dll_StretchBlt]
test eax, eax
jne 0x40d7b2
lea eax, [ebp - 1]
jmp 0x40d8ad
lea eax, [ebp - 0x5c]
push eax
push 0x18
push dword [ebp - 0x10]
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
jne 0x40d7cd
lea eax, [ebp - 1]
jmp 0x40d8ad
mov eax, dword [ebp - 0x4a]
imul eax, dword [ebp - 0x4c]
cmp ax, 1
jne 0x40d7e1
push 1
jmp 0x40d87c
push 4
pop ebx
cmp ax, bx
jbe 0x40d87d
push 8
pop ebx
cmp ax, bx
jbe 0x40d87d
push 0x10
pop ebx
cmp ax, bx
jbe 0x40d87d
cmp ax, 0x18
ja 0x40d87a
push 0x18
pop ebx
push 0x28
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
cmp bx, 0x18
mov dword [esi], 0x28
mov eax, dword [ebp - 0x58]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 8], eax
mov ax, word [ebp - 0x4c]
mov word [esi + 0xc], ax
mov ax, word [ebp - 0x4a]
mov word [esi + 0xe], ax
jae 0x40d848
push 1
mov cl, bl
pop eax
shl eax, cl
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
push 8
add eax, 7
pop ecx
cdq
idiv ecx
movzx ecx, bx
mov dword [esi + 0x10], edi
mov dword [esi + 0x24], edi
imul eax, ecx
imul eax, dword [esi + 8]
push eax
push edi
mov dword [esi + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
cmp ebx, edi
jne 0x40d891
lea eax, [ebp - 1]
jmp 0x40d8ad
push 0x20
pop ebx
push 1
mov cl, bl
pop eax
shl eax, cl
lea eax, [eax*4 + 0x28]
push eax
jmp 0x40d80c
movzx eax, word [esi + 8]
push edi
push esi
push ebx
push eax
push edi
push dword [ebp - 0x10]
push dword [ebp - 8]
call dword [sym.imp.GDI32.dll_GetDIBits]
test eax, eax
jne 0x40d8bd
lea eax, [ebp - 1]
mov ecx, dword [ebp + 8]
push eax
push edi
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
jmp 0x40d991
mov word [ebp - 0x24], 0x4d42
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
lea eax, [ecx + eax*4]
mov ecx, dword [esi]
mov word [ebp - 0x1e], di
mov word [ebp - 0x1c], di
lea eax, [eax + ecx + 0xe]
mov dword [ebp - 0x22], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi]
lea eax, [ecx + eax*4 + 0xe]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x1a], eax
lea eax, [ebp - 1]
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
lea eax, [ebp - 1]
lea ecx, [ebp - 0x44]
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
lea eax, [ebp - 0x24]
push 0xe
push eax
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x44]
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push 0x28
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x44]
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push dword [esi + 0x14]
lea ecx, [ebp - 0x34]
push ebx
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x44]
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push dword [ebp - 0x10]
call dword [sym.imp.GDI32.dll_DeleteObject]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [ebp - 0x14]
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
call esi
push dword [ebp - 8]
call esi
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x44]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret