Function at 0x417ee0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x90
mov dword [esp], 0
call dword [sym.imp.user32.dll_GetDC]
sub esp, 4
mov dword [ebp - 0x74], eax
mov dword [esp + 4], 0xc
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
xor edx, edx
mov dword [ebp - 0x6c], eax
sub esp, 8
xor eax, eax
mov dword [ebp + eax - 0x50], edx
add eax, 4
cmp eax, 0x18
jb 0x417f1a
mov dword [ebp - 0x60], 0x28
mov esi, dword [sym.imp.gdi32.dll_CreateDIBitmap]
mov dword [ebp - 0x5c], 0xa
mov dword [ebp - 0x58], 0xa
mov dword [ebp - 0x54], 0x200001
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x74]
mov dword [esp], edi
call esi
sub esp, 0x18
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x90
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 4], str.CreateDIBitmap_should_fail_n
mov dword [esp], eax
call fcn.00401820
mov dword [esp], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call esi
sub esp, 0x18
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x92
xor eax, eax
test ebx, ebx
lea ebx, [ebp - 0x60]
sete al
mov dword [esp + 4], str.CreateDIBitmap_should_fail_n
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [ebp - 0x74], edi
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x9a
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov eax, dword [sym.imp.gdi32.dll_DeleteObject]
mov dword [esp], edi
mov dword [ebp - 0x68], eax
call eax
mov edx, 0x10
sub esp, 4
mov word [ebp - 0x52], dx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov edi, dword [ebp - 0x74]
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xa1
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov eax, dword [ebp - 0x68]
call eax
mov ecx, 1
sub esp, 4
mov word [ebp - 0x52], cx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov edi, dword [ebp - 0x74]
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xa8
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov eax, dword [ebp - 0x68]
call eax
mov edi, dword [ebp - 0x74]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
sub esp, 4
mov edi, eax
mov eax, 0x20
mov word [ebp - 0x52], ax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [ebp - 0x70], edi
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xb2
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov ecx, ebx
mov edx, 1
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov eax, dword [ebp - 0x68]
call eax
mov eax, 0x10
sub esp, 4
mov word [ebp - 0x52], ax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov edi, dword [ebp - 0x70]
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xb9
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov ecx, ebx
mov edx, 1
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov eax, dword [ebp - 0x68]
call eax
mov eax, 1
sub esp, 4
mov word [ebp - 0x52], ax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov edi, dword [ebp - 0x70]
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xc0
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, 1
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov eax, dword [ebp - 0x68]
call eax
mov eax, dword [ebp - 0x58]
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x74]
mov dword [esp], ecx
call dword [sym.imp.gdi32.dll_CreateCompatibleBitmap]
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
sub esp, 0xc
mov edi, eax
call fcn.00413550
mov edx, dword [sym.imp.gdi32.dll_SelectObject]
mov dword [ebp - 0x78], edi
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x70]
mov dword [esp], edi
mov dword [ebp - 0x80], edx
call edx
mov dword [ebp - 0x7c], eax
sub esp, 8
mov eax, 0x20
mov word [ebp - 0x52], ax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [ebp - 0x70], edi
mov dword [esp], edi
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xcd
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov edi, dword [ebp - 0x68]
call edi
mov eax, 0x10
sub esp, 4
mov word [ebp - 0x52], ax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov ecx, dword [ebp - 0x70]
mov dword [esp], ecx
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xd4
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov edi, dword [ebp - 0x68]
call edi
mov edx, 1
sub esp, 4
mov word [ebp - 0x52], dx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov ecx, dword [ebp - 0x70]
mov dword [esp], ecx
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xdb
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, edi
call fcn.00413550
mov dword [esp], edi
mov edi, dword [ebp - 0x68]
call edi
mov eax, dword [ebp - 0x7c]
sub esp, 4
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x70]
mov dword [esp], ecx
mov edx, dword [ebp - 0x80]
call edx
mov eax, dword [ebp - 0x78]
sub esp, 8
mov dword [esp], eax
mov dword [ebp - 0x68], edi
call edi
mov ecx, dword [ebp - 0x70]
sub esp, 4
mov dword [esp], ecx
call dword [sym.imp.gdi32.dll_DeleteDC]
mov ecx, 0x20
sub esp, 4
mov word [ebp - 0x52], cx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0
call esi
sub esp, 0x18
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xe5
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
mov edx, 1
mov eax, edi
mov ecx, ebx
call fcn.00413550
mov dword [esp], edi
mov edi, dword [ebp - 0x68]
call edi
mov edi, 1
mov dword [ebp - 0x64], 0xffffffff
xor edx, edx
mov word [ebp - 0x52], di
sub esp, 4
xor eax, eax
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x58], 1
mov dword [ebp + eax - 0x28], edx
add eax, 4
cmp eax, 0x1c
jb 0x418579
lea edx, [ebp - 0x38]
lea edi, [ebp - 0x64]
mov dword [ebp - 0x38], 0x28
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], 0x180001
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 8], 4
mov eax, dword [ebp - 0x74]
mov dword [esp], eax
call esi
sub esp, 0x18
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xf8
xor eax, eax
test ebx, ebx
setne al
mov dword [esp + 4], str.CreateDIBitmap_failed_n
mov dword [esp], eax
call fcn.00401820
lea edx, [ebp - 0x38]
mov eax, 0x20
mov dword [ebp - 0x64], 0xdeadbeef
mov word [ebp - 0x2a], ax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov esi, dword [ebp - 0x74]
mov dword [esp], esi
call dword [sym.imp.gdi32.dll_GetDIBits]
sub esp, 0x1c
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0xfd
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], str.Reading_a_32_bit_pixel_from_a_DDB_returned__08lx_n
cmp eax, 0xffffff
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov dword [esp], ebx
mov eax, dword [ebp - 0x68]
call eax
sub esp, 4
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [sym.imp.user32.dll_ReleaseDC]
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret