Function at 0x41c2d0
Capabilities:
Capture screenshot
Enumerate gui resources

Disassembly:
sub esp, 0x258
mov eax, dword [0x48a348]
xor eax, esp
mov dword [esp + 0x250], eax
mov eax, dword [0x48b140]
push ebx
push ebp
mov ebp, 1
push edi
mov dword [esi + 0x74], 0
cmp eax, ebp
je 0x41c305
cmp eax, 2
jne 0x41c4c5
mov eax, dword [esi + 0xe0d8]
test eax, eax
je 0x41c4c5
cmp dword [eax + 8], 0
jne 0x41c32a
mov dword [esi + 0xe10c], ebp
mov dword [esi + 0xe110], ebp
jmp 0x41c4c5
push 0x9c
lea eax, [esp + 0x14]
push 0
push eax
call fcn.00463710
mov ebx, dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
add esp, 0xc
lea eax, [esp + 0x10]
push eax
xor edx, edx
push 0xffffffffffffffff
mov ecx, 0x9c
push edx
mov word [esp + 0x40], cx
mov word [esp + 0x42], dx
call ebx
push str.USER32
mov dword [esp + 0x3c], 0x1c0000
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.EnumDisplayDevicesA
push eax
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x41c4b6
push 0x1a8
lea ecx, [esp + 0xb4]
push 0
push ecx
call fcn.00463710
add esp, 0xc
xor ebp, ebp
push ebp
lea edx, [esp + 0xb4]
push edx
push ebp
push ebp
mov dword [esp + 0xc0], 0x1a8
mov byte [esp + 0x20], 0
call edi
test eax, eax
je 0x41c4b1
lea ebx, [ebx]
mov ecx, str.mv_video_hook_driver2
lea eax, [esp + 0xd4]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x41c400
test dl, dl
je 0x41c3fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x41c400
add eax, 2
add ecx, 2
test dl, dl
jne 0x41c3e0
xor eax, eax
jmp 0x41c405
sbb eax, eax
sbb eax, 0xffffffff
push 0
test eax, eax
je 0x41c422
lea eax, [esp + 0xb4]
push eax
inc ebp
push ebp
push 0
call edi
test eax, eax
jne 0x41c3d0
jmp 0x41c4b1
push 0
lea ecx, [esp + 0xbc]
push ecx
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateDCA]
lea edx, [esp + 0x10]
push edx
mov dword [esi + 0xdbec], eax
push 0xffffffffffffffff
lea eax, [esp + 0xbc]
push eax
call ebx
cmp dword [esi + 0xdbec], 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x70], edx
mov edi, 1
je 0x41c46d
mov dword [esi + 0x74], edi
mov ecx, esi
call fcn.0043a080
lea ecx, [esi + 4]
call fcn.00410350
mov dword [esi + 0xe1fc], eax
mov dword [esi + 0xe1f8], edi
cmp eax, 2
jne 0x41c49d
cmp dword [esi + 0xe1f4], edi
jle 0x41c4b1
mov dword [esi + 0xe1f8], eax
jmp 0x41c4b1
cmp eax, 3
jne 0x41c4b1
cmp dword [esi + 0xe1f4], 1
jle 0x41c4b1
mov dword [esi + 0xe1f8], eax
mov ebp, 1
mov eax, dword [esp + 0xc]
test eax, eax
je 0x41c4c5
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esi + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x68]
call edx
test eax, eax
je 0x41c4e8
cmp dword [esi + 0x64], 0
jne 0x41c4e8
push esi
push 0x41c230
call dword [sym.imp.USER32.dll_EnumWindows]
mov eax, dword [esi + 0xdbec]
test eax, eax
jne 0x41c660
push str.._vncdesktop.cpp_:_No_driver_used__n
xor ecx, ecx
mov eax, 0x48c4e8
call fcn.00401000
add esp, 4
mov ecx, esi
call fcn.0043a080
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x41c521
cmp dword [esi + 0x2c], eax
je 0x41c547
test eax, eax
je 0x41c52b
cmp dword [esi + 0x2c], 0
je 0x41c547
test eax, eax
jne 0x41c53c
cmp dword [esi + 0x2c], 0
je 0x41c538
mov eax, 2
jmp 0x41c549
test eax, eax
je 0x41c547
cmp dword [esi + 0x2c], 0
mov eax, 3
jne 0x41c549
mov eax, ebp
mov edi, 2
mov dword [esi + 0xe1fc], eax
mov dword [esi + 0xe1f8], ebp
cmp eax, edi
jne 0x41c56e
cmp dword [esi + 0xe1f4], ebp
jle 0x41c581
mov dword [esi + 0xe1f8], edi
jmp 0x41c581
cmp eax, 3
jne 0x41c581
cmp dword [esi + 0xe1f4], ebp
jle 0x41c581
mov dword [esi + 0xe1f8], eax
mov ebx, 3
cmp dword [esi + 0xe1f8], ebx
jne 0x41c594
mov dword [esi + 0xe1f8], ebp
cmp dword [esi + 0xe1f8], ebp
jne 0x41c5ca
push 0
push 0
lea eax, [esi + 0xe164]
push eax
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateDCA]
mov ecx, dword [esi + 0xe184]
mov edx, dword [esi + 0xe188]
mov dword [esi + 0xdbec], eax
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x70], edx
cmp dword [esi + 0xe1f8], edi
jne 0x41c600
push 0
push 0
lea eax, [esi + 0xe198]
push eax
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateDCA]
mov ecx, dword [esi + 0xe1b8]
mov edx, dword [esi + 0xe1bc]
mov dword [esi + 0xdbec], eax
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x70], edx
cmp dword [esi + 0xe1f8], ebx
jne 0x41c628
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, dword [esi + 0xe1f0]
mov dword [esi + 0xdbec], eax
mov eax, dword [esi + 0xe1ec]
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
mov eax, dword [esi + 0xdbec]
test eax, eax
jne 0x41c660
push str.._vncdesktop.cpp_:_Failed_m_rootdc__n
mov eax, 0x48c4e8
xor ecx, ecx
call fcn.00401000
add esp, 4
xor eax, eax
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.0045dc1f
add esp, 0x258
ret
cmp dword [esi + 0xe1f8], 3
jne 0x41c6a9
mov ecx, dword [esi + 0xe0d8]
test ecx, ecx
je 0x41c685
cmp dword [ecx + 8], 0
jne 0x41c6a9
mov dword [esi + 0xe10c], ebp
mov dword [esi + 0xe110], ebp
mov edx, dword [esi + 0xe1c0]
mov edi, dword [esi + 0xe1c4]
xor eax, eax
xor ecx, ecx
mov dword [esi + 0xdc0c], eax
mov dword [esi + 0xdc10], ecx
mov dword [esi + 0xdc14], edx
jmp 0x41c6d9
push 0xa
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edx, dword [esi + 0xdbec]
push 8
push edx
mov edi, eax
xor ebp, ebp
xor ebx, ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [esi + 0xdc0c], ebp
mov dword [esi + 0xdc10], ebx
mov dword [esi + 0xdc14], eax
mov eax, edi
push eax
mov dword [esi + 0xdc18], edi
mov ecx, dword [esi + 0xdc14]
push ecx
push str.._vncdesktop.cpp_:_bitmap_dimensions_are__d_x__d_n
mov ecx, 9
mov eax, 0x48c4e8
call fcn.00401000
mov edx, dword [esi + 0xdbec]
add esp, 0xc
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esi + 0xdbe8], eax
test eax, eax
jne 0x41c74c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.._vncdesktop.cpp_:_failed_to_create_compatibleDC__d__n
xor ecx, ecx
mov eax, 0x48c4e8
call fcn.00401000
add esp, 8
xor eax, eax
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.0045dc1f
add esp, 0x258
ret
mov eax, dword [esi + 0xdbec]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x26
push eax
call edi
test al, 1
jne 0x41c78f
push 0x10
push 0x47d010
push str.vncDesktop_:_root_device_doesnt_support_BitBlt_nWinVNC_cannot_be_used_with_this_graphic_device_driver
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.0045dc1f
add esp, 0x258
ret
mov ecx, dword [esi + 0xdbe8]
push 0x26
push ecx
call edi
test al, al
js 0x41c7cc
push 0x10
push 0x47d010
push str.vncDesktop_:_memory_device_doesnt_support_GetDIBits_nWinVNC_cannot_be_used_with_this_graphics_device_driver
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.0045dc1f
add esp, 0x258
ret
mov edx, dword [esi + 0xdc18]
mov eax, dword [esi + 0xdc14]
mov ecx, dword [esi + 0xdbec]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esi + 0xdbf0], eax
test eax, eax
jne 0x41c802
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.._vncdesktop.cpp_:_failed_to_create_memory_bitmap__d__n
jmp 0x41c723
push str.._vncdesktop.cpp_:_created_memory_bitmap_n
mov ecx, 9
mov eax, 0x48c4e8
call fcn.00401000
add esp, 4
push 0x430
lea ebp, [esi + 0xdc1c]
push 0
push ebp
call fcn.00463710
mov eax, dword [esi + 0xdbf0]
mov ecx, dword [esi + 0xdbe8]
mov ebx, dword [sym.imp.GDI32.dll_GetDIBits]
add esp, 0xc
xor edx, edx
push edx
lea edi, [esi + 0xdc20]
push edi
push edx
push 1
push edx
push eax
push ecx
mov dword [edi], 0x28
mov word [esi + 0xdc2e], dx
call ebx
test eax, eax
jne 0x41c86e
push str.._vncdesktop.cpp_:_unable_to_get_display_format_n
jmp 0x41c637
mov edx, dword [esi + 0xdbf0]
mov eax, dword [esi + 0xdbe8]
push 0
push edi
push 0
push 1
push 0
push edx
push eax
call ebx
test eax, eax
mov eax, 0x48c4e8
jne 0x41c89a
push str.._vncdesktop.cpp_:_unable_to_get_display_colour_info_n
jmp 0x41c63c
push str.._vncdesktop.cpp_:_got_bitmap_format_n
mov ecx, 9
call fcn.00401000
mov eax, dword [esi + 0xdc28]
mov ecx, dword [esi + 0xdbe8]
cdq
xor eax, edx
add esp, 4
sub eax, edx
push 0x26
neg eax
push ecx
mov dword [esi + 0xdc28], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
shr eax, 8
push 1
not eax
push 0
and eax, 1
push 0
mov dword [ebp], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x25c]
pop edi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.0045dc1f
add esp, 0x258
ret