Function at 0x41f6d0
Capabilities:
Check for unmoving mouse cursor
Create thread
Power down monitor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x471a9d
mov eax, dword fs:[0]
push eax
sub esp, 0x1fc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x489348]
xor eax, esp
push eax
lea eax, [esp + 0x210]
mov dword fs:[0], eax
mov ebp, ecx
push str.._vncdesktopthread.cpp_:_Hook_changed_1_n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov esi, eax
push str.._vncdesktopthread.cpp_:_Hook_changed_2_n
xor ecx, ecx
mov eax, 0x48b3f0
mov dword [esp + 0x108], esi
call fcn.00401000
add esp, 4
call fcn.0041b230
mov edi, dword [sym.imp.USER32.dll_keybd_event]
xor ebx, ebx
push ebx
push ebx
push ebx
push 0x11
call edi
push ebx
push 2
push ebx
push 0x11
call edi
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 0x10a18]
call fcn.0041acd0
test eax, eax
jne 0x41f78e
call fcn.00448180
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push ebx
mov ecx, ebp
call edx
jmp 0x421b65
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push 1
mov ecx, ebp
call edx
mov esi, dword [ebp + 0x10a18]
mov ecx, dword [esi + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
mov edi, ecx
call edx
mov edx, dword [edi]
mov edx, dword [edx + 0xc8]
mov ecx, edi
mov dword [esp + 0x38], eax
call edx
push eax
mov eax, dword [esp + 0x3c]
mov ecx, eax
mov edx, esi
call fcn.0041d9f0
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xdbe4], 1
mov dword [esp + 0x70], vtable.rfb::SimpleUpdateTracker.0
call fcn.00455330
mov dword [esp + 0x74], eax
call fcn.00455330
mov dword [esp + 0x78], eax
call fcn.00455330
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov byte [esp + 0x88], bl
mov dword [esp + 0x218], ebx
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
call fcn.00455330
mov edi, eax
mov dword [edi + 4], ebx
movzx eax, word [esi]
movzx edx, word [esi + 8]
movzx ecx, word [esi + 4]
sub dx, ax
mov word [esp + 0x30], ax
movzx eax, word [esi + 0xc]
sub ax, cx
mov word [esp + 0x32], cx
push edi
push edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x40], edi
mov word [esp + 0x3c], dx
mov word [esp + 0x3e], ax
call fcn.00455390
add esp, 8
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x78]
mov byte [esp + 0x220], 1
call fcn.0041e6f0
mov eax, dword [edi + 8]
push eax
call fcn.0045d511
add esp, 4
push edi
call fcn.0045d511
add esp, 4
mov byte [esp + 0x88], 1
call fcn.00455330
mov dword [esp + 0x14], eax
mov byte [esp + 0x218], 4
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
call fcn.00455330
mov edi, eax
mov dword [edi + 4], ebx
movzx eax, word [esi]
movzx edx, word [esi + 8]
movzx ecx, word [esi + 4]
sub dx, ax
mov word [esp + 0x30], ax
movzx eax, word [esi + 0xc]
sub ax, cx
mov word [esp + 0x32], cx
push edi
push edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x9c], edi
mov word [esp + 0x3c], dx
mov word [esp + 0x3e], ax
call fcn.00455390
mov byte [esp + 0x220], 5
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x164], ebx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x15c], ebx
mov ecx, edi
lea ebx, [esp + 0x15c]
call fcn.00455ed0
mov byte [esp + 0x220], 4
mov edx, dword [edi + 8]
push edx
call fcn.0045d511
add esp, 0xc
push edi
call fcn.0045d511
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe1f4]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x84]
add esp, 4
push esi
mov esi, dword [eax + 0x70]
mov eax, dword [eax + 0x6c]
push esi
push eax
call edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe0d8]
xor edx, edx
xor esi, esi
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], edx
cmp ecx, edx
je 0x41f9ce
cmp dword [ecx + 8], esi
jne 0x41f9bc
mov ecx, 1
mov dword [eax + 0xe10c], ecx
mov dword [eax + 0xe110], ecx
jmp 0x41f9ce
cmp dword [eax + 0xa0], esi
je 0x41f9ce
mov dword [eax + 0x3c], 4
mov dword [eax + 0x40], esi
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe0c0], esi
mov ecx, dword [ebp + 0x10a18]
mov dword [ecx + 0xe0c8], esi
mov edx, dword [ebp + 0x10a18]
mov dword [edx + 0xe0c4], esi
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe110], 1
mov ecx, dword [ebp + 0x10a18]
mov dword [ecx + 0xe090], esi
mov edx, dword [ebp + 0x10a18]
mov dword [edx + 0xe10c], esi
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe114], esi
mov ecx, dword [ebp + 0x10a18]
mov ecx, dword [ecx + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x210]
call eax
test eax, eax
setne al
mov byte [ebp + 0x10a50], al
test al, al
jne 0x41fa5e
mov ecx, dword [ebp + 0x10a18]
cmp dword [ecx + 0xe0d8], esi
je 0x41fa5e
call fcn.0040cd40
cmp byte [ebp + 0x10a50], 0
je 0x41fa93
mov edx, dword [ebp + 0x10a18]
cmp dword [edx + 0xe0d8], esi
je 0x41fa7a
call fcn.0040cd90
cmp byte [ebp + 0x10a50], 0
je 0x41fa93
mov ecx, dword [ebp + 0x10a1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x278]
call edx
push 1
push esi
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp + 0x10a58], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], esi
mov byte [0x4a66d3], 0
mov edi, 1
push edi
xor ebx, ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x178]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x421640
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [ebp + 0x10a58]
mov edx, eax
sub edx, ecx
mov dword [ebp + 0x10a54], eax
cmp edx, 0x21
jae 0x41fb02
sub ecx, eax
add ecx, 0x21
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41fab8
mov dword [ebp + 0x10a58], eax
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe0d8]
cmp ecx, ebx
je 0x41fb47
cmp dword [ecx + 8], ebx
jne 0x41fb2b
mov dword [eax + 0xe10c], edi
mov dword [eax + 0xe110], edi
jmp 0x41fb47
cmp dword [eax + 0xa0], ebx
je 0x41fb47
mov eax, dword [ebp]
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, ebp
call eax
mov ecx, dword [ebp + 0x10a18]
mov dword [ecx + 0xe094], ebx
mov eax, dword [ebp + 0x10a18]
mov byte [0x48cf4e], 0
cmp dword [eax + 0xdbdc], ebx
jne 0x41fb85
mov edx, dword [eax + 0xdbd8]
push ebx
push 0x64
push edi
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [ebp + 0x10a18]
mov dword [ecx + 0xdbdc], eax
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe110], ebx
je 0x41fbe1
cmp dword [eax + 0xe10c], ebx
jne 0x41fbe1
push str.._vncdesktopthread.cpp_:_Hook_changed__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov esi, dword [ebp + 0x10a18]
mov edx, dword [esi + 0xe108]
add esp, 4
push edx
call fcn.0041dde0
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe108], ebx
je 0x41fbd5
mov dword [eax + 0xe078], ebx
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe110], ebx
mov ecx, dword [ebp + 0x10a18]
cmp dword [ecx + 0xe090], ebx
jne 0x41fc22
call fcn.00448350
test eax, eax
je 0x41fc22
mov edx, dword [ebp + 0x10a18]
cmp dword [edx + 0xe0c8], ebx
jne 0x41fc22
cmp dword [edx + 0xe10c], ebx
jne 0x41fc22
lea ecx, [edx + 4]
call fcn.0040fff0
cmp dword [edx + 0xe1fc], eax
je 0x420621
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x88]
call eax
test eax, eax
jne 0x41fc52
push 0x1e
call dword [sym.imp.KERNEL32.dll_Sleep]
push str.._vncdesktopthread.cpp_:_Wait_for_viewer_init__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
mov ecx, dword [ebp + 0x10a18]
cmp dword [ecx + 0xe090], ebx
je 0x41fc74
push str.._vncdesktopthread.cpp_:_Screensize_changed__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
mov edx, dword [ebp + 0x10a18]
cmp dword [edx + 0xe0c8], ebx
je 0x41fc96
push str.._vncdesktopthread.cpp_:_m_SWtoDesktop__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe10c], ebx
je 0x41fcb8
push str.._vncdesktopthread.cpp_:_m_hookswitch__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0x28]
cmp ecx, ebx
jne 0x41fcce
cmp dword [eax + 0x2c], ebx
je 0x41fcf1
cmp ecx, ebx
je 0x41fcd7
cmp dword [eax + 0x2c], ebx
je 0x41fcf1
cmp ecx, ebx
jne 0x41fce7
cmp dword [eax + 0x2c], ebx
je 0x41fce3
mov ecx, 2
jmp 0x41fcf3
cmp ecx, ebx
je 0x41fcf1
mov ecx, 3
cmp dword [eax + 0x2c], ebx
jne 0x41fcf3
mov ecx, edi
mov edx, dword [eax + 0xe1fc]
cmp edx, ecx
je 0x41fd48
mov ecx, dword [eax + 0x28]
cmp ecx, ebx
jne 0x41fd0d
cmp dword [eax + 0x2c], ebx
je 0x41fd30
cmp ecx, ebx
je 0x41fd16
cmp dword [eax + 0x2c], ebx
je 0x41fd30
cmp ecx, ebx
jne 0x41fd26
cmp dword [eax + 0x2c], ebx
je 0x41fd22
mov eax, 2
jmp 0x41fd32
cmp ecx, ebx
je 0x41fd30
cmp dword [eax + 0x2c], ebx
mov eax, 3
jne 0x41fd32
mov eax, edi
push eax
push edx
push str.._vncdesktopthread.cpp_:_desktop_switch__i__i__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 0xc
call fcn.00448350
test eax, eax
jne 0x41fd65
push str.._vncdesktopthread.cpp_:_InputDesktopSelected__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
cmp byte [ebp + 0x10a50], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
je 0x41fd86
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x278]
call eax
mov edi, dword [ebp + 0x10a18]
add edi, 0xdbf4
push edi
mov dword [esp + 0x24], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x218], 6
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x274]
call eax
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], ebx
mov edx, dword [esp + 0x74]
mov dword [edx + 4], ebx
mov eax, dword [esp + 0x7c]
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x78]
mov dword [ecx + 4], ebx
mov edx, dword [ebp + 0x10a18]
mov dword [edx + 0xe080], ebx
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe084], ebx
mov ecx, dword [ebp + 0x10a18]
mov dword [ecx + 0xe088], ebx
mov edx, dword [ebp + 0x10a18]
mov dword [edx + 0xe08c], ebx
mov ecx, dword [ebp + 0x10a18]
mov eax, dword [ecx + 0xe04c]
mov edx, dword [ecx + 0xe050]
mov dword [esp + 0x128], eax
mov eax, dword [ecx + 0xe054]
mov dword [esp + 0x130], eax
mov eax, dword [ecx + 0xe05c]
mov dword [esp + 0x12c], edx
mov edx, dword [ecx + 0xe058]
mov dword [esp + 0x138], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x134], edx
mov edx, dword [ecx + 0xe060]
mov dword [esp + 0x13c], edx
cmp eax, ebx
jne 0x41fe65
cmp dword [ecx + 0x2c], ebx
je 0x41fe88
cmp eax, ebx
je 0x41fe6e
cmp dword [ecx + 0x2c], ebx
je 0x41fe88
cmp eax, ebx
jne 0x41fe7e
cmp dword [ecx + 0x2c], ebx
je 0x41fe7a
mov eax, 2
jmp 0x41fe8d
cmp eax, ebx
je 0x41fe88
mov eax, 3
cmp dword [ecx + 0x2c], ebx
jne 0x41fe8d
mov eax, 1
cmp dword [ecx + 0xe1fc], eax
je 0x41ff73
call fcn.004390c0
mov ecx, dword [ebp + 0x10a18]
mov eax, dword [ecx + 0x28]
cmp eax, ebx
jne 0x41feb4
cmp dword [ecx + 0x2c], ebx
je 0x41fed7
cmp eax, ebx
je 0x41febd
cmp dword [ecx + 0x2c], ebx
je 0x41fed7
cmp eax, ebx
jne 0x41fecd
cmp dword [ecx + 0x2c], ebx
je 0x41fec9
mov eax, 2
jmp 0x41fedc
cmp eax, ebx
je 0x41fed7
mov eax, 3
cmp dword [ecx + 0x2c], ebx
jne 0x41fedc
mov eax, 1
mov dword [ecx + 0xe1fc], eax
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe1f8]
mov edx, 1
mov dword [eax + 0xe1f8], edx
mov eax, dword [ebp + 0x10a18]
mov ecx, 2
cmp dword [eax + 0xe1fc], ecx
jne 0x41ff1a
cmp dword [eax + 0xe1f4], edx
jle 0x41ff1a
mov dword [eax + 0xe1f8], ecx
mov eax, dword [ebp + 0x10a18]
mov ecx, 3
cmp dword [eax + 0xe1fc], ecx
jne 0x41ff3b
cmp dword [eax + 0xe1f4], edx
jle 0x41ff3b
mov dword [eax + 0xe1f8], ecx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
push ecx
push esi
push str.._vncdesktopthread.cpp_:_OLd_Current_mon__i__i__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov ecx, dword [ebp + 0x10a18]
add esp, 0xc
cmp esi, dword [ecx + 0xe1f8]
je 0x41ff73
mov dword [esp + 0x1c], 1
cmp dword [ecx + 0xe090], ebx
jne 0x41ffab
call fcn.00448350
test eax, eax
je 0x41ffab
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe10c], ebx
jne 0x41ffab
cmp dword [esp + 0x1c], ebx
je 0x4200ba
cmp dword [eax + 0xe0d8], 0
jne 0x4200ba
xor ebx, ebx
push str.._vncdesktopthread.cpp_:_m_desktop__Shutdown
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov esi, dword [ebp + 0x10a18]
add esp, 4
mov dword [esp + 0x1c], ebx
call fcn.0041afb0
test eax, eax
mov eax, 0x48b3f0
je 0x4218c0
mov edx, dword [ebp + 0x10a18]
cmp dword [edx + 0xa0], 0
push str.._vncdesktopthread.cpp_:_m_desktop__Startup
setne bl
xor ecx, ecx
call fcn.00401000
mov eax, dword [ebp + 0x10a18]
add esp, 4
call fcn.0041acd0
test eax, eax
je 0x4218ed
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe0d8], 0
je 0x420031
cmp byte [ebp + 0x10a50], 0
jne 0x42002c
call fcn.0040cd40
jmp 0x420031
call fcn.0040cd90
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe1f4]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x84]
push esi
mov esi, dword [eax + 0x70]
mov eax, dword [eax + 0x6c]
push esi
push eax
call edx
test bl, bl
je 0x42008c
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe0d8], 0
jne 0x42008c
push str.._vncdesktopthread.cpp_:_m_videodriver__NULL__n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov edx, dword [ebp + 0x10a18]
add esp, 4
push 1
xor ecx, ecx
call fcn.0041d9f0
mov esi, dword [esp + 0x40]
mov byte [0x4a66d3], 1
test esi, esi
je 0x4200ba
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [0x4a66d3], 0
mov dword [esp + 0x40], 0
mov eax, dword [ebp + 0x10a18]
movzx ecx, word [eax + 0xe04c]
cmp cx, word [esp + 0x128]
jne 0x4200eb
mov dx, word [eax + 0xe04e]
cmp dx, word [esp + 0x12a]
jne 0x4200eb
cmp dword [eax + 0xe0c8], 1
jne 0x42011e
movzx edx, byte [eax + 0xe050]
movzx eax, word [eax + 0xe04e]
push edx
movzx ecx, cx
push eax
push ecx
push str.._vncdesktopthread.cpp_:_SCR:_new_screen_format__dx_dx_d_n
mov ecx, 9
mov eax, 0x48b3f0
mov dword [esp + 0x28], 1
call fcn.00401000
add esp, 0x10
mov edx, dword [ebp + 0x10a18]
xor ecx, ecx
mov dword [edx + 0xe090], ecx
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe10c], ecx
mov eax, dword [ebp + 0x10a18]
mov edx, dword [eax + 0xe108]
mov dword [eax + 0xe110], edx
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe0c8], ecx
cmp dword [esp + 0x18], ecx
je 0x420249
push str.._vncdesktopthread.cpp_:_Size_changed_n
mov eax, 0x48b3f0
call fcn.00401000
mov eax, dword [ebp + 0x10a18]
add esp, 4
call fcn.0041e4a0
mov eax, dword [ebp + 0x10a18]
lea ebx, [esp + 0x1dc]
call fcn.0041e590
lea ecx, [esp + 0x68]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [esp + 0x68]
sub ecx, dword [eax + 0x6c]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], ecx
sub edx, dword [eax + 0x70]
push 0xe
mov dword [esp + 0x70], edx
mov dword [eax + 0xe080], ecx
mov dword [eax + 0xe084], edx
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xd
mov ebx, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
lea edx, [eax + esi]
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xe088], edx
lea ecx, [edi + ebx]
mov dword [eax + 0xe08c], ecx
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe0d0]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [eax + 0xe0cc]
mov edx, dword [edx + 0x80]
push esi
push eax
call edx
mov esi, dword [ebp + 0x10a18]
push ecx
add esi, 0xa8
mov edi, esp
mov dword [esp + 0x40], esp
call fcn.004060b0
lea ecx, [esp + 0x60]
call fcn.0041e7a0
mov ebx, dword [ebp + 0x10a18]
add ebx, 4
call fcn.0040fd60
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
je 0x42045a
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
imul ecx, ecx, 0x34
mov edx, dword [ecx + eax + 0xe150]
sub edx, dword [eax + 0xe1ec]
mov dword [eax + 0xe0cc], edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
imul ecx, ecx, 0x34
mov edx, dword [ecx + eax + 0xe154]
sub edx, dword [eax + 0xe1f0]
mov dword [eax + 0xe0d0], edx
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe0d0]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [eax + 0xe0cc]
mov edx, dword [edx + 0x80]
push esi
push eax
call edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
imul ecx, ecx, 0x34
mov edx, dword [ecx + eax + 0xe150]
sub edx, dword [eax + 0xe1ec]
mov dword [eax + 0xa8], edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
imul ecx, ecx, 0x34
mov edx, dword [ecx + eax + 0xe154]
sub edx, dword [eax + 0xe1f0]
mov dword [eax + 0xac], edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
imul ecx, ecx, 0x34
mov edx, dword [ecx + eax + 0xe150]
sub edx, dword [eax + 0xe1ec]
add ecx, eax
add edx, dword [ecx + 0xe124]
mov dword [eax + 0xb0], edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe1f8]
imul ecx, ecx, 0x34
mov edx, dword [ecx + eax + 0xe154]
sub edx, dword [eax + 0xe1f0]
add ecx, eax
add edx, dword [ecx + 0xe128]
mov dword [eax + 0xb4], edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xb4]
mov edx, dword [eax + 0xb0]
push ecx
mov ecx, dword [eax + 0xac]
push edx
mov edx, dword [eax + 0xa8]
push ecx
mov ecx, dword [eax + 0xe0d0]
push edx
mov edx, dword [eax + 0xe0cc]
push ecx
push edx
push str.._vncdesktopthread.cpp_:___i__i__i__i__i__i_n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov esi, dword [ebp + 0x10a18]
add esp, 0x1c
add esi, 0xa8
lea edi, [esp + 0xe8]
call fcn.004060b0
push eax
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 7
call fcn.004061e0
mov byte [esp + 0x218], 8
mov edx, eax
lea esi, [esp + 0x14]
call fcn.00406120
mov eax, dword [esp + 0x110]
mov edx, dword [eax + 8]
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 6
mov eax, dword [esp + 0xec]
mov esi, eax
mov eax, dword [eax + 8]
add esp, 4
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
mov edi, esp
mov dword [esp + 0x40], esp
call fcn.004060b0
lea ecx, [esp + 0x60]
call fcn.0041e7a0
mov ebx, dword [ebp + 0x10a18]
add ebx, 4
call fcn.0040fd60
mov esi, dword [ebp + 0x10a18]
add esi, 4
call fcn.0040fea0
mov ebx, dword [ebp + 0x10a18]
add ebx, 4
call fcn.0040fd60
mov esi, dword [ebp + 0x10a18]
add esi, 4
call fcn.0040fea0
push 1
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
lea edi, [esp + 0x10c]
call fcn.004060b0
push eax
lea ecx, [esp + 0xf4]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x224], 9
call fcn.004061e0
mov ecx, eax
mov byte [esp + 0x218], 0xa
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebx
lea ebx, [esp + 0x44]
call fcn.00455ed0
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 8]
push ecx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov eax, dword [esp + 0x110]
mov edx, dword [eax + 8]
add esp, 4
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 4
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [ebp + 0x10a18]
lea eax, [esp + 0x12c]
mov esi, eax
sub edx, esi
mov ecx, 0x10
add edx, 0xe050
lea esp, [esp]
mov esi, dword [edx + eax]
cmp esi, dword [eax]
jne 0x420564
sub ecx, 4
add eax, 4
cmp ecx, 4
jae 0x420550
jmp 0x420598
push str.._vncdesktopthread.cpp_:_Format_changed_n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa0]
add esp, 4
call eax
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa4]
call eax
cmp dword [esp + 0x18], 0
je 0x4205e9
mov eax, dword [ebp + 0x10a18]
movzx esi, word [eax + 0xe04e]
mov ecx, dword [ebp + 0x10a1c]
movzx eax, word [eax + 0xe04c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x7c]
push 0
push esi
push eax
call edx
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe1f4]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x84]
push esi
mov esi, dword [eax + 0x70]
mov eax, dword [eax + 0x6c]
push esi
push eax
call edx
cmp dword [esp + 0x1c], 0
je 0x42061f
mov eax, dword [ebp + 0x10a18]
mov edx, dword [eax + 0xe1f8]
mov ecx, dword [ebp + 0x10a1c]
imul edx, edx, 0x34
mov esi, dword [eax + edx + 0xe128]
add eax, edx
mov edx, dword [ecx]
mov eax, dword [eax + 0xe124]
mov edx, dword [edx + 0x7c]
push 1
push esi
push eax
call edx
xor ebx, ebx
mov ecx, dword [ebp + 0x10a1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x68]
mov byte [esp + 0x2b], 0
call edx
test eax, eax
je 0x4208f2
mov esi, dword [ebp + 0x10a18]
add esi, 0xdbf4
push esi
mov dword [esp + 0x1c], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x218], 0xb
mov eax, dword [ebp + 0x10a18]
lea ebx, [esp + 0x1fc]
call fcn.0041e590
mov eax, dword [ebp + 0x10a18]
mov edi, dword [eax + 0xe0d0]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [eax + 0xe0cc]
mov edx, dword [edx + 0x80]
push edi
push eax
call edx
mov eax, dword [ebp + 0x10a18]
xor ebx, ebx
cmp dword [eax + 0xe0c0], ebx
je 0x4207c9
mov dword [eax + 0xe0c0], ebx
mov eax, dword [ebp + 0x10a18]
lea ebx, [esp + 0x1ec]
mov byte [esp + 0x2b], 1
call fcn.0041e590
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
lea edi, [esp + 0x108]
call fcn.004060b0
push eax
lea eax, [esp + 0x104]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 0xc
call fcn.004061e0
mov ecx, eax
mov byte [esp + 0x218], 0xd
mov edx, dword [esp + 0x14]
xor eax, eax
mov dword [edx + 4], eax
mov ecx, dword [ecx]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x44]
call fcn.00455ed0
mov eax, dword [esp + 0x100]
mov esi, eax
mov eax, dword [eax + 8]
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 0xb
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 8]
add esp, 4
push ecx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
mov edi, esp
mov dword [esp + 0x40], esp
call fcn.004060b0
lea ecx, [esp + 0x60]
call fcn.0041e7a0
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe0d0]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [eax + 0xe0cc]
mov edx, dword [edx + 0x80]
push esi
push eax
call edx
mov ebx, dword [ebp + 0x10a18]
add ebx, 4
call fcn.0040fd60
mov esi, dword [ebp + 0x10a18]
add esi, 4
call fcn.0040fea0
mov esi, dword [esp + 0x18]
xor ebx, ebx
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xe0c4], ebx
je 0x4208e1
mov dword [eax + 0xe0c4], ebx
mov esi, dword [ebp + 0x10a18]
push ecx
add esi, 0xa8
mov edi, esp
mov dword [esp + 0x40], esp
call fcn.004060b0
lea ecx, [esp + 0x60]
call fcn.0041e7a0
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe0d0]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [eax + 0xe0cc]
mov edx, dword [edx + 0x80]
push esi
push eax
call edx
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
lea edi, [esp + 0xe4]
call fcn.004060b0
push eax
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 0xe
call fcn.004061e0
mov ecx, eax
mov byte [esp + 0x218], 0xf
mov edx, dword [esp + 0x14]
mov dword [edx + 4], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebx
lea ebx, [esp + 0x44]
call fcn.00455ed0
mov eax, dword [esp + 0xe0]
mov esi, eax
mov eax, dword [eax + 8]
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 8]
add esp, 4
push ecx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov ebx, dword [ebp + 0x10a18]
add esp, 4
add ebx, 4
call fcn.0040fd60
mov esi, dword [ebp + 0x10a18]
add esi, 4
call fcn.0040fea0
mov esi, dword [esp + 0x18]
push esi
mov byte [esp + 0x21c], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ebx, ebx
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x68]
call eax
test eax, eax
je 0x420951
cmp byte [esp + 0x2b], 0
je 0x420951
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe0b8]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [eax + 0xe0bc]
mov edx, dword [edx + 0x7c]
push ebx
push esi
push eax
call edx
mov eax, dword [ebp + 0x10a18]
mov esi, dword [eax + 0xe1f4]
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x84]
push esi
mov esi, dword [eax + 0x70]
mov eax, dword [eax + 0x6c]
push esi
push eax
call edx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x21c]
call eax
mov ecx, dword [ebp + 0x10a18]
mov byte [ecx + 0xa4], al
mov edx, dword [ebp + 0x10a18]
mov ecx, dword [edx + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
call edx
test eax, eax
je 0x4215e7
lea eax, [esp + 0x140]
xor edi, edi
push eax
xor ebx, ebx
mov dword [esp + 0x20], edi
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x420a40
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x144]
cmp eax, dword [esp + 0xa4]
jne 0x4209cc
cmp ecx, dword [esp + 0xa8]
je 0x420a40
mov dword [esp + 0xa8], ecx
mov ecx, dword [ebp + 0x10a18]
mov ecx, dword [ecx + 0xdbd0]
mov edx, dword [ecx]
mov dword [esp + 0xa4], eax
mov eax, dword [edx + 0x98]
mov edi, 1
mov dword [esp + 0x1c], edi
call eax
mov eax, dword [ebp + 0x10a4c]
cmp eax, ebx
je 0x420a40
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x14
call eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [ebp + 0x10a18]
cmp ecx, ebx
jne 0x420a2e
mov edx, dword [eax + 0xe07c]
mov dword [eax + 0xe074], edx
jmp 0x420a40
mov edx, dword [eax + 0xe074]
mov dword [eax + 0xe078], edx
mov dword [eax + 0xe074], ecx
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xa0], ebx
jne 0x420ea2
cmp dword [eax + 0xe12c], ebx
je 0x420a95
cmp dword [ebp + 0x10a14], ebx
je 0x420a95
cmp dword [esp + 0x40], ebx
jne 0x420a83
lea eax, [esp + 0x150]
push eax
push ebx
push ebp
push 0x40d160
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x10a14]
lea ecx, [esp + 0x14]
push ecx
push eax
push ebp
call fcn.0040d200
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, eax
cmp edi, ebx
je 0x420aa7
mov dword [ebp + 0x10a60], esi
mov edx, dword [ebp + 0x10a18]
mov ecx, dword [edx + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x220]
call edx
mov ecx, dword [ebp + 0x10a18]
neg eax
sbb eax, eax
and eax, 4
add eax, 4
add ecx, 4
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], ebx
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xb8]
call eax
test eax, eax
je 0x420bb9
mov eax, esi
sub eax, dword [ebp + 0x10a60]
cmp eax, 0x64
jbe 0x420bb9
mov dword [ebp + 0x10a5c], esi
cmp eax, 0x96
jbe 0x420bb9
mov edi, dword [esp + 0x58]
mov eax, dword [ebp + 0x10a18]
inc edi
lea esi, [esp + 0x154]
mov dword [esp + 0x58], edi
call fcn.0041e4f0
mov edx, dword [ebp + 0x10a18]
push eax
lea ecx, [esp + 0x18]
push ecx
push edx
call fcn.00419d30
cmp edi, 0x14
jle 0x420bb5
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
lea edi, [esp + 0xa0]
call fcn.004060b0
mov eax, edi
push eax
lea ecx, [esp + 0xf0]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x224], 0x10
call fcn.004061e0
mov edx, eax
lea esi, [esp + 0x14]
mov byte [esp + 0x218], 0x11
call fcn.00406120
lea eax, [esp + 0xec]
call fcn.00406100
mov eax, edi
mov byte [esp + 0x218], 4
call fcn.00406100
mov dword [esp + 0x58], 0
xor ebx, ebx
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xb0]
call eax
test eax, eax
je 0x420beb
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, ebx
je 0x420beb
lea ecx, [esp + 0x14]
push ecx
mov edx, eax
mov ecx, ebp
call fcn.0041f4c0
mov edx, dword [ebp + 0x10a18]
mov ecx, dword [edx + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xa8]
call edx
test eax, eax
je 0x420c3f
lea eax, [esp + 0x148]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x420c3f
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x148]
push ecx
push edx
call dword [sym.imp.USER32.dll_WindowFromPoint]
cmp eax, ebx
je 0x420c3f
lea ecx, [esp + 0x14]
push ecx
mov edx, eax
mov ecx, ebp
call fcn.0041f4c0
cmp edi, ebx
je 0x420db1
mov ecx, dword [ebp + 0x10a18]
cmp dword [ecx + 0xa0], 0
jne 0x420db1
mov edx, dword [ecx + 0xe080]
cmp edx, dword [ecx + 0xe088]
jge 0x420db1
mov eax, dword [ecx + 0xe084]
cmp eax, dword [ecx + 0xe08c]
jge 0x420db1
mov esi, dword [ecx + 0xdc18]
xor eax, eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov eax, edx
mov edx, dword [ecx + 0xe088]
sub edx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0xe08c]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0xe084]
sub edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 0xdc10]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0xdc0c]
mov ecx, dword [ecx + 0xdc14]
sub esi, edx
sub ecx, eax
push esi
push ecx
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x24]
push ecx
lea ebx, [esp + 0x30]
lea edi, [esp + 0x3c]
call fcn.0041e860
add esp, 0x10
test al, al
je 0x420db1
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
add edx, eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x24]
add ecx, eax
lea esi, [esp + 0xcc]
lea edi, [esp + 0x98]
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], ecx
call fcn.004060b0
mov edx, edi
push edx
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 0x12
call fcn.004061e0
mov edx, eax
lea esi, [esp + 0x14]
mov byte [esp + 0x218], 0x13
call fcn.00406120
mov eax, dword [esp + 0xf4]
mov edx, dword [eax + 8]
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov esi, dword [esp + 0x9c]
mov eax, dword [esi + 8]
add esp, 4
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
add esp, 4
mov eax, dword [ebp + 0x10a18]
add eax, 0xdbf4
push eax
mov dword [esp + 0x40], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x218], 0x14
mov ecx, dword [ebp + 0x10a18]
xor ebx, ebx
cmp dword [ecx + 0xa0], ebx
jne 0x420e00
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x68]
call eax
test eax, eax
jne 0x420e00
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x10a18]
call fcn.0041c950
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe0d8]
cmp ecx, ebx
je 0x420e2a
cmp dword [ecx + 8], ebx
jne 0x420ee9
mov ecx, 1
mov dword [eax + 0xe10c], ecx
mov dword [eax + 0xe110], ecx
mov ecx, dword [ebp + 0x10a18]
push ebx
lea eax, [esp + 0x18]
push eax
add ecx, 4
push ecx
call fcn.0040ee70
mov edx, dword [ebp + 0x10a18]
mov ecx, dword [edx + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x210]
call edx
xor ecx, ecx
cmp byte [ebp + 0x10a50], cl
sete cl
cmp ecx, eax
jne 0x420f0a
mov edx, dword [ebp + 0x10a18]
mov ecx, dword [edx + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x210]
call edx
mov ecx, dword [ebp + 0x10a18]
test eax, eax
setne al
mov byte [ebp + 0x10a50], al
cmp dword [ecx + 0xe0d8], ebx
je 0x420f0a
test al, al
jne 0x420f05
call fcn.0040cd40
jmp 0x420f0a
mov ecx, dword [eax + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x220]
call eax
mov ecx, dword [ebp + 0x10a18]
cmp edi, ebx
je 0x420ed1
neg eax
sbb eax, eax
neg eax
inc eax
add ecx, 4
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], ebx
jmp 0x420c3f
neg eax
sbb eax, eax
and eax, 2
add eax, 2
add ecx, 4
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], ebx
jmp 0x420db1
cmp dword [eax + 0xa0], ebx
je 0x420e2a
push 1
lea edx, [esp + 0x18]
push edx
add eax, 4
push eax
jmp 0x420e3a
call fcn.0040cd90
mov edx, dword [ebp + 0x10a18]
mov ecx, dword [edx + 0xdbd0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x210]
call edx
test eax, eax
je 0x4210fd
mov eax, dword [ebp + 0x10a18]
cmp byte [eax + 0xa4], 0
jne 0x4210fd
mov ecx, dword [eax + 0xe074]
cmp ecx, dword [eax + 0xe078]
jne 0x420f57
mov ecx, dword [eax + 0x5c]
mov dword [eax + 0x5c], ebx
cmp ecx, ebx
je 0x4212d3
mov eax, dword [ebp + 0x10a18]
mov edx, dword [eax + 0xe074]
mov dword [eax + 0xe078], edx
mov eax, dword [ebp + 0x10a18]
add eax, 4
mov dword [eax + 0x40], 1
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xa0], ebx
jne 0x420f8f
lea edi, [eax + 4]
call fcn.0040fef0
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x98]
call eax
mov ecx, dword [ebp + 0x10a18]
mov eax, dword [ecx + 0xe080]
mov edx, dword [ecx + 0xe088]
mov esi, dword [ecx + 0xdc18]
sub edx, eax
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 0xe08c]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0xe084]
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 0xdc10]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0xdc0c]
mov ecx, dword [ecx + 0xdc14]
sub esi, edx
sub ecx, eax
push esi
push ecx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
push ecx
lea ebx, [esp + 0x28]
lea edi, [esp + 0x34]
call fcn.0041e860
add esp, 0x10
test al, al
je 0x4210e8
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
add edx, eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x2c]
add ecx, eax
lea esi, [esp + 0xbc]
lea edi, [esp + 0x90]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc8], ecx
call fcn.004060b0
mov edx, edi
push edx
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 0x15
call fcn.004061e0
mov edx, eax
lea esi, [esp + 0x14]
mov byte [esp + 0x218], 0x16
call fcn.00406120
mov eax, dword [esp + 0x114]
mov edx, dword [eax + 8]
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 0x14
mov esi, dword [esp + 0x94]
mov eax, dword [esi + 8]
add esp, 4
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
add esp, 4
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x278]
call eax
jmp 0x4212d1
mov eax, dword [ebp + 0x10a18]
cmp dword [eax + 0xa0], ebx
jne 0x4212d3
lea edi, [eax + 4]
call fcn.0040fef0
cmp dword [esp + 0x1c], ebx
je 0x4212d3
mov ecx, dword [ebp + 0x10a18]
mov ecx, dword [ecx + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x98]
call eax
mov ecx, dword [ebp + 0x10a18]
mov edx, dword [ecx + 0xe080]
cmp edx, dword [ecx + 0xe088]
jge 0x4212d3
mov eax, dword [ecx + 0xe084]
cmp eax, dword [ecx + 0xe08c]
jge 0x4212d3
mov esi, dword [ecx + 0xdc18]
mov eax, edx
mov edx, dword [ecx + 0xe088]
sub edx, eax
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 0xe08c]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0xe084]
sub edx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0xdc10]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0xdc0c]
mov ecx, dword [ecx + 0xdc14]
sub esi, edx
sub ecx, eax
push esi
push ecx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
push ecx
lea ebx, [esp + 0x3c]
lea edi, [esp + 0x34]
call fcn.0041e860
add esp, 0x10
test al, al
je 0x4212d1
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add edx, ebx
add ecx, eax
lea esi, [esp + 0xac]
lea edi, [esp + 0x8c]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb8], ecx
call fcn.004060b0
mov edx, edi
push edx
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 0x17
call fcn.004061e0
mov edx, eax
lea esi, [esp + 0x14]
mov byte [esp + 0x218], 0x18
call fcn.00406120
lea eax, [esp + 0xdc]
call fcn.00406100
mov eax, edi
call fcn.00406100
mov eax, dword [ebp + 0x10a18]
mov edx, dword [eax + 0xe084]
mov ecx, dword [eax + 0xe080]
push edx
mov edx, dword [eax + 0xe08c]
mov eax, dword [eax + 0xe088]
push ecx
push edx
push eax
push str.._vncdesktopthread.cpp_:_8__i__i__i__i__n
mov ecx, 9
mov eax, 0x48b3f0
call fcn.00401000
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
add esp, 0x14
push ecx
push ebx
push edx
push eax
push str.._vncdesktopthread.cpp_:_8__i__i__i__i__n
mov ecx, 9
mov eax, 0x48b3f0
call fcn.00401000
add esp, 0x14
xor ebx, ebx
call fcn.00455330
mov esi, eax
mov dword [esp + 0x20], esi
call fcn.00455330
mov dword [esp + 0x1c], eax
call fcn.00455330
mov dword [esp + 0x18], eax
mov byte [esp + 0x218], 0x1b
mov ecx, dword [esp + 0x7c]
cmp dword [ecx + 4], ebx
je 0x4213f9
lea edx, [esp + 0x184]
push edx
call fcn.00417a40
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x21c], 0x1c
call fcn.00407de0
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1a8]
mov edx, eax
sub edx, ecx
test edx, 0xfffffff0
je 0x4213e4
mov dword [esp + 0x24], ecx
cmp ecx, eax
jbe 0x421364
call fcn.0045d131
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1a8]
mov edi, dword [esp + 0x19c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], eax
cmp ecx, eax
jbe 0x421384
call fcn.0045d131
cmp edi, ebx
je 0x421391
cmp edi, dword [esp + 0x19c]
je 0x421396
call fcn.0045d131
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x34], eax
je 0x4213e4
lea esi, [esp + 0x30]
call fcn.004064b0
mov edi, dword [ebp + 0x10a18]
add edi, 4
lea ecx, [esp + 0x1b4]
call fcn.0040fc00
lea edi, [esp + 0x1d4]
call fcn.004064e0
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1a8]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
xor ebx, ebx
jmp 0x421377
lea ecx, [esp + 0x184]
push ecx
mov byte [esp + 0x21c], 0x1b
call fcn.00417ab0
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00406270
mov ecx, eax
mov byte [esp + 0x218], 0x1d
mov dword [esi + 4], ebx
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebx
mov eax, esi
lea ebx, [esp + 0x44]
call fcn.00455ed0
mov byte [esp + 0x218], 0x1b
mov eax, dword [esp + 0xf8]
mov edx, dword [eax + 8]
push edx
mov edi, eax
call fcn.0045d511
add esp, 4
push edi
call fcn.0045d511
mov ecx, dword [esp + 0x18]
xor eax, eax
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
add esp, 4
lea ebx, [esp + 0x44]
call fcn.00455ed0
xor ebx, ebx
cmp dword [esi + 4], ebx
je 0x4214aa
lea edx, [esp + 0x20]
push edx
mov edx, dword [ebp + 0x10a18]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
add edx, 4
push edx
call fcn.0040f3e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x60]
call fcn.00406f90
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x60]
call fcn.00407010
mov ecx, dword [ebp + 0x10a1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x94]
call eax
push eax
lea ecx, [esp + 0x74]
call fcn.00407f70
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 8]
push ecx
call fcn.0045d511
add esp, 4
push edi
call fcn.0045d511
mov edi, dword [esp + 0x20]
mov edx, dword [edi + 8]
add esp, 4
push edx
call fcn.0045d511
add esp, 4
push edi
call fcn.0045d511
mov eax, dword [esi + 8]
add esp, 4
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 4
mov ecx, dword [esp + 0x40]
add esp, 4
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x74]
mov dword [edx + 4], ebx
mov eax, dword [esp + 0x7c]
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x78]
mov dword [ecx + 4], ebx
mov edx, dword [ebp + 0x10a18]
cmp dword [edx + 0xe0fc], ebx
je 0x4215e7
mov ecx, dword [ebp + 0x10a1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x270]
call edx
test eax, eax
je 0x42159d
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xe0d8]
test ecx, ecx
je 0x4215e7
cmp dword [ecx + 8], ebx
jne 0x42159d
mov ecx, 1
mov dword [eax + 0xe10c], ecx
mov dword [eax + 0xe110], ecx
jmp 0x4215e7
cmp dword [0x48a140], 2
je 0x4215d3
push 0
push 0
push 1
push 0x56
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov eax, dword [ebp + 0x10a18]
mov ecx, dword [eax + 0xdbd8]
push 2
push 0xf170
push 0x112
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [ebp + 0x10a18]
mov eax, dword [edx + 0xe13c]
test eax, eax
je 0x4215e7
push 1
call eax
mov eax, dword [0x48cf50]
cmp eax, dword [0x48cf48]
je 0x421627
call dword [sym.imp.USER32.dll_WaitMessage]
xor ecx, ecx
test eax, eax
mov eax, 0x48b3f0
je 0x42191f
push str.._vncdesktopthread.cpp_:_WaitMessage___n
call fcn.00401000
mov ecx, dword [0x48cf48]
add esp, 4
mov dword [0x48cf50], ecx
jmp 0x41fab8
push str.._vncdesktopthread.cpp_:_WaitMessage___skip_n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
add esp, 4
jmp 0x41fab8
mov eax, dword [esp + 0x16c]
cmp eax, dword [0x4a6744]
jne 0x421789
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x174]
mov edx, eax
shr edx, 0x10
movsx edi, dx
mov edx, ecx
shr edx, 0x10
movsx edx, dx
cwde
movsx ecx, cx
mov ebx, edx
mov edx, dword [ebp + 0x10a18]
mov esi, dword [edx + 0x6c]
mov dword [esp + 0x118], eax
sub eax, esi
mov dword [esp + 0x120], ecx
sub ecx, esi
mov esi, dword [edx + 0x70]
sub edi, esi
sub ebx, esi
mov esi, dword [edx + 0xa8]
cmp eax, esi
jle 0x4216a5
mov esi, eax
mov eax, dword [edx + 0xac]
cmp edi, eax
jg 0x4216b1
mov edi, eax
mov eax, dword [edx + 0xb0]
cmp ecx, eax
jl 0x4216bd
mov ecx, eax
mov edx, dword [edx + 0xb4]
cmp ebx, edx
jl 0x4216c9
mov ebx, edx
cmp esi, ecx
mov dword [esp + 0x118], esi
mov dword [esp + 0x11c], edi
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], ebx
jge 0x41fab8
cmp edi, ebx
jge 0x41fab8
lea esi, [esp + 0x118]
lea edi, [esp + 0x9c]
call fcn.004060b0
mov eax, edi
push eax
lea ecx, [esp + 0x100]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x224], 0x1e
call fcn.004061e0
mov ecx, eax
mov byte [esp + 0x218], 0x1f
mov edx, dword [esp + 0x14]
xor eax, eax
mov dword [edx + 4], eax
mov ecx, dword [ecx]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x44]
call fcn.00455ed0
mov eax, dword [esp + 0xfc]
mov esi, eax
mov eax, dword [eax + 8]
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 4
mov esi, dword [esp + 0xa0]
mov ecx, dword [esi + 8]
add esp, 4
push ecx
jmp 0x421889
cmp eax, dword [0x4a6748]
jne 0x4217ca
mov ecx, dword [esp + 0x170]
mov eax, dword [ebp + 0x10a18]
cmp ecx, ebx
jne 0x4217b3
mov edx, dword [eax + 0xe07c]
mov dword [eax + 0xe074], edx
jmp 0x41fab8
mov edx, dword [eax + 0xe074]
mov dword [eax + 0xe078], edx
mov dword [eax + 0xe074], ecx
jmp 0x41fab8
cmp eax, 0x12
je 0x42192e
cmp eax, 0x400
jne 0x42180b
mov eax, dword [ebp + 0x10a4c]
cmp eax, ebx
je 0x41fab8
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x14
call eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [ebp + 0x10a18]
call fcn.0041c790
jmp 0x41fab8
cmp eax, 0x402
jne 0x42189f
mov esi, dword [ebp + 0x10a18]
add esi, 0xa8
lea edi, [esp + 0x38]
call fcn.004060b0
mov edx, edi
push edx
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x224], 0x20
call fcn.004061e0
mov edx, eax
lea esi, [esp + 0x14]
mov byte [esp + 0x218], 0x21
call fcn.00406120
mov eax, dword [esp + 0x94]
mov edx, dword [eax + 8]
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov byte [esp + 0x21c], 4
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 8]
add esp, 4
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
add esp, 4
jmp 0x41fab8
lea ecx, [esp + 0x168]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x168]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x41fab8
push str.._vncdesktopthread.cpp_:_Shutdown_KillAuthClients_n
xor ecx, ecx
call fcn.00401000
mov ecx, dword [ebp + 0x10a1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
add esp, 4
call edx
push edi
mov byte [esp + 0x21c], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42192e
push str.._vncdesktopthread.cpp_:_Startup_KillAuthClients_n
xor ecx, ecx
mov eax, 0x48b3f0
call fcn.00401000
mov ecx, dword [ebp + 0x10a1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
add esp, 4
call edx
push edi
mov byte [esp + 0x21c], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42192c
push str.._vncdesktopthread.cpp_:_WaitMessage___failed_n
call fcn.00401000
add esp, 4
xor ebx, ebx
mov esi, dword [esp + 0x40]
mov byte [0x4a66d3], 1
cmp esi, ebx
je 0x42194d
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x10a18]
mov dword [eax + 0xdbe4], 0
push str.._vncdesktopthread.cpp_:_quitting_desktop_server_thread_n
mov ecx, 9
mov eax, 0x48b3f0
call fcn.00401000
mov esi, dword [ebp + 0x10a18]
add esp, 4
xor bl, bl
call fcn.0041d270
mov edi, dword [ebp + 0x10a18]
mov esi, edi
call fcn.0041d270
push str.enabled
push str.._vncdesktop.cpp_:_SetDisableInput:_inputs__s_n
mov ecx, 9
mov eax, 0x48b3f0
call fcn.00401000
mov eax, dword [0x48a140]
add esp, 8
cmp eax, 1
je 0x4219d7
cmp eax, 2
je 0x4219d7
mov ecx, dword [edi + 0xdbd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x11c]
push 0
call eax
mov dword [edi + 0xe108], 1
jmp 0x421a1c
mov eax, dword [edi + 0xe13c]
test eax, eax
je 0x421a1c
push 0
call eax
test eax, eax
jne 0x421a07
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.._vncdesktop.cpp_:_BlockInput_failed:__Last_error__08X_n
mov ecx, 9
mov eax, 0x48b3f0
call fcn.00401000
add esp, 8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [edi + 0xe13c]
push 0
call ecx
mov esi, dword [edi + 0xdbd0]
push 1
call fcn.004476e0
mov byte [edi + 0xe200], 0
mov esi, dword [ebp + 0x10a18]
call fcn.0041afb0
mov ebp, dword [ebp + 0x10a1c]
mov edx, dword [ebp]
mov eax, dword [edx + 0x6c]
push 0
mov ecx, ebp
call eax
cmp dword [0x4a1090], 2
jne 0x421a7d
mov bl, 0xa0
call fcn.004350a0
mov bl, 0xa2
call fcn.004350a0
mov bl, 0xa4
call fcn.004350a0
mov bl, 0xa1
call fcn.004350a0
mov bl, 0xa3
call fcn.004350a0
mov bl, 0xa5
jmp 0x421a8d
mov bl, 0x10
call fcn.004350a0
mov bl, 0x11
call fcn.004350a0
mov bl, 0x12
call fcn.004350a0
mov esi, dword [esp + 0x104]
call fcn.00448180
push 0
push str.blackscreen
mov byte [0x48cf4d], 0
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x421ac3
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
push ecx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov eax, dword [esp + 0x68]
mov dword [esp + 0x60], vtable.rfb::ClippedUpdateTracker.0
mov edx, dword [eax + 8]
add esp, 4
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov eax, dword [esp + 0x80]
mov dword [esp + 0x60], vtable.rfb::UpdateTracker.0
mov dword [esp + 0x74], vtable.rfb::SimpleUpdateTracker.0
mov esi, eax
mov eax, dword [eax + 8]
add esp, 4
push eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
add esp, 4
push ecx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 8]
add esp, 4
push edx
mov esi, eax
call fcn.0045d511
add esp, 4
push esi
call fcn.0045d511
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x210]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 4