Function at 0x44fb27
Capabilities:
Check for time delay via gettickcount
Power down monitor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f5d0b
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x55800c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xf8], edi
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x88]
cmp eax, vtable.vncServer.0
jne 0x45132f
mov eax, dword [ecx + 0x58]
cmp eax, 1
jne 0x44f10a
cmp byte [0x55936f], 0
jne 0x44f101
cmp byte [0x55936e], 0
jne 0x44f101
cmp byte [0x55936d], 0
jne 0x44f101
cmp byte [0x55936c], 0
jne 0x44f101
mov byte [0x55ab00], al
jmp 0x44f130
mov byte [0x55ab00], 0
jmp 0x44f130
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x88]
cmp eax, vtable.vncServer.0
jne 0x451336
mov eax, dword [ecx + 0x58]
cmp eax, 2
sete byte [0x55ab00]
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_Hook_changed_1_n
push 0
push 0x558c50
mov byte [edi + 0x10ac4], 1
call fcn.0041c840
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov ecx, dword [edi + 0x10a2c]
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_Hook_changed_2_n
push 0
push 0x558c50
mov dword [ecx + 0xe26c], eax
call fcn.0041c840
add esp, 0xc
mov dword [ebp - 0xd4], 0x94
lea eax, [ebp - 0xd4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov esi, dword [sym.imp.USER32.dll_CloseDesktop]
test eax, eax
je 0x44f23a
push str.d:_saasultravncwinvncwinvnc_vncdesktop.cpp_:_KillScreenSaver..._n
push 9
push 0x558c50
call fcn.0041c840
mov eax, dword [ebp - 0xc4]
add esp, 0xc
sub eax, 1
je 0x44f214
sub eax, 1
jne 0x44f23a
push 0x81
push eax
push eax
push str.Screen_saver
call dword [sym.imp.USER32.dll_OpenDesktopA]
mov esi, eax
test esi, esi
je 0x44f234
push str.d:_saasultravncwinvncwinvnc_vncdesktop.cpp_:_Killing_ScreenSaver_n
push 9
push 0x558c50
call fcn.0041c840
add esp, 0xc
push 0
push 0x447c50
push esi
call dword [sym.imp.USER32.dll_EnumDesktopWindows]
push esi
mov esi, dword [sym.imp.USER32.dll_CloseDesktop]
call esi
push 2
push 0
push 1
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
jmp 0x44f23a
push 0
push str.WindowsScreenSaverClass
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x44f23a
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x44f23a
mov esi, dword [sym.imp.USER32.dll_CloseDesktop]
push ecx
push 0
xor dl, dl
mov cl, 0x11
call fcn.0042f780
add esp, 4
xor dl, dl
mov cl, 0x11
push 2
call fcn.0042f780
add esp, 8
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [edi + 0x10a2c]
call fcn.00447460
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x44f2ad
mov ecx, dword [edi + 0x10a2c]
mov ecx, dword [ecx + 0xe26c]
call fcn.00484590
mov ecx, dword [edi + 0x10a2c]
mov ecx, dword [ecx + 0xe268]
test ecx, ecx
je 0x44f29b
push ecx
call esi
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0xd8]
call dword [eax + 0x10]
jmp 0x451310
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x10]
mov esi, dword [edi + 0x10a2c]
mov ecx, dword [esi + 0xdbe8]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc8]
cmp eax, vtable.vncServer.0
jne 0x45133d
mov edx, dword [ecx + 0x110]
mov dword [ebp - 0xfc], edx
mov edx, dword [eax + 0xd0]
cmp eax, vtable.vncServer.0
jne 0x451352
mov eax, dword [ecx + 0x114]
push dword [ebp - 0xfc]
mov ecx, esi
push eax
call fcn.0044a330
push ecx
lea ecx, [ebp - 0x1a0]
mov byte [edi + 0x10ac5], 0
call fcn.004290d0
mov dword [ebp - 4], 0
mov esi, dword [edi + 0x10a2c]
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xd8], eax
push dword [esi + 0xc8]
push dword [esi + 0xc4]
push dword [esi + 0xc0]
push dword [esi + 0xbc]
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov esi, eax
mov dword [ebp - method.rfb::ClippedUpdateTracker.virtual_0], vtable.rfb::ClippedUpdateTracker.0
lea eax, [ebp - 0x1a0]
push 0x518188
mov dword [ebp - 0x138], eax
call fcn.004dad37
add esp, 4
mov dword [ebp - 0x130], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push 5
push esi
push esi
push eax
mov dword [ebp - 0x134], eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xd8]
call fcn.004dab64
push 0x518188
mov byte [ebp - 0x17c], 1
call fcn.004dad37
add esp, 8
mov dword [ebp - 0xe4], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [ebp - 0xe8], eax
mov byte [ebp - 4], 2
mov esi, dword [edi + 0x10a2c]
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xd8], eax
push dword [esi + 0xc8]
push dword [esi + 0xc4]
push dword [esi + 0xc0]
push dword [esi + 0xbc]
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push 0
push 0
push 0
push 0
push dword [ebp - 0xe8]
mov esi, eax
call dword [sym.imp.GDI32.dll_SetRectRgn]
push 5
push esi
push esi
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xd8]
call fcn.004dab64
mov eax, dword [edi + 0x10a2c]
add esp, 4
mov ecx, dword [edi + 0x10a3c]
push dword [eax + 0xe260]
push dword [eax + 0x84]
push dword [eax + 0x80]
mov eax, dword [ecx]
call dword [eax + 0x80]
lea eax, [ebp - 0x1e8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x1e4]
mov dword [edi + 0x10a34], eax
mov eax, dword [edi + 0x10a2c]
mov dword [edi + 0x10a38], ecx
mov ecx, dword [eax + 0xdbec]
test ecx, ecx
je 0x44f50a
cmp dword [ecx + 0x10], 0
je 0x44f4f0
mov edx, eax
cmp dword [edx + 0xb4], 0
je 0x44f50a
mov ecx, dword [edi + 0x10a3c]
push dword [edx + 0xe0e0]
push dword [edx + 0xe0dc]
mov eax, dword [ecx]
call dword [eax + 0x7c]
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0x24], 4
mov dword [eax + 0x28], 0
jmp 0x44f504
mov dword [eax + 0xe110], 1
mov dword [eax + 0xe114], 1
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe114], 1
xor esi, esi
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe0b8], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe110], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe118], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe11c], 0
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x90]
call eax
test eax, eax
jne 0x44f5a6
nop word [eax + eax]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x32
jg 0x44f5a6
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_Wait_for_viewer_init__n
push 0
push 0x558c50
call fcn.0041c840
mov ecx, dword [edi + 0x10a3c]
add esp, 0xc
mov eax, dword [ecx]
mov eax, dword [eax + 0x90]
call eax
test eax, eax
je 0x44f570
mov ecx, dword [edi + 0x10a2c]
mov edx, dword [ecx + 0xdbe8]
mov eax, dword [edx]
mov esi, dword [eax + 0x288]
cmp eax, vtable.vncServer.0
jne 0x451359
mov eax, dword [edx + 0x610]
test eax, eax
setne dl
mov byte [edi + 0x10a70], dl
test eax, eax
jne 0x44f5f7
mov esi, dword [ecx + 0xdbec]
test esi, esi
je 0x44f5f7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
mov dl, byte [edi + 0x10a70]
mov ecx, dword [edi + 0x10a2c]
test dl, dl
je 0x44f622
mov ecx, dword [ecx + 0xdbec]
test ecx, ecx
je 0x44f610
mov eax, dword [ecx]
call dword [eax + 0x10]
mov dl, byte [edi + 0x10a70]
test dl, dl
je 0x44f622
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
call dword [eax + 0x2f0]
push 1
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov dword [edi + 0x10a78], eax
call esi
mov dword [edi + 0x10a7c], eax
mov eax, dword [edi + 0x10a2c]
mov byte [edi + 0x10a30], 1
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x12c], 0
push dword [eax + 0xdbbc]
mov byte [0x55ab76], 0
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [edi + 0x10a2c]
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xd8], eax
push dword [esi + 0xc8]
push dword [esi + 0xc4]
push dword [esi + 0xc0]
push dword [esi + 0xbc]
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebp - 0xe8]
mov esi, eax
push 2
push esi
push ecx
push ecx
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xd8]
call fcn.004dab64
add esp, 4
cmp byte [0x55b152], 0
jne 0x44f756
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx + 0xdbec]
test eax, eax
je 0x44f731
cmp dword [eax + 0x10], 0
je 0x44f717
cmp dword [ecx + 0xb4], 0
je 0x44f731
cmp byte [0x55936d], 0
jne 0x44f756
cmp byte [0x55936c], 0
jne 0x44f756
push 1
push 1
jmp 0x44f747
mov dword [ecx + 0xe110], 1
mov dword [ecx + 0xe114], 1
mov ecx, dword [edi + 0x10a2c]
cmp byte [0x55936d], 0
jne 0x44f756
cmp byte [0x55936c], 0
jne 0x44f756
push 1
push 0
lea eax, [ebp - 0xe8]
add ecx, 8
push eax
call fcn.004337a0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xdc1c], 1
xor eax, eax
mov ecx, dword [edi + 0x10a2c]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x104], eax
mov eax, dword [ecx + 0xdbec]
test eax, eax
jne 0x44f85a
mov eax, ecx
mov ecx, dword [eax + 0xdbec]
test ecx, ecx
je 0x44f7b2
cmp dword [ecx + 0x10], 0
jne 0x44f8e8
mov dword [eax + 0xe110], 1
mov dword [eax + 0xe114], 1
lea eax, [ebp - 0x244]
push eax
push 0
push edi
push 0x44f010
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x21
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x104], eax
cmp byte [edi + 0x10a30], 0
je 0x45110a
nop dword [eax]
cmp byte [0x563186], 0
jne 0x45110a
mov eax, dword [edi + 0x10a2c]
push ecx
push 0
add eax, 0xdb94
push eax
push 8
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ecx, dword [edi + 0x10a2c]
mov esi, eax
push 0x2710
push dword [ecx + 0xdbbc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x44f83b
mov byte [edi + 0x10a30], 0
cmp esi, 5
ja 0x44fa83
je 0x44fa63
cmp esi, 4
ja case.default.0x44f853
jmp dword [esi*4 + 0x451450]
cmp dword [eax + 0x10], 0
jne 0x44f87f
mov dword [ecx + 0xe110], 1
mov dword [ecx + 0xe114], 1
mov eax, dword [edi + 0x10a2c]
jmp 0x44f78a
cmp dword [ecx + 0xb4], 0
mov eax, ecx
je 0x44f78a
cmp byte [0x55936d], 0
jne 0x44f78a
cmp byte [0x55936c], 0
jne 0x44f78a
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea eax, [ebp - 0x238]
push eax
push 0
push edi
push 0x44ef90
push 0
push 0
call esi
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x24c]
push eax
push 0
push edi
push 0x44f010
push 0
push 0
call esi
mov ecx, 0x3e8
jmp 0x44f7d0
cmp dword [eax + 0xb4], 0
je 0x44f7b2
cmp byte [0x55936d], 0
jne 0x44f90b
cmp byte [0x55936c], 0
je 0x44f7b2
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [edi + 0x10a2c]
mov dword [ecx + 0xdbac], eax
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbec]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [edi + 0x10a2c]
mov dword [ecx + 0xdbb0], eax
mov ecx, 0x3e8
cmp byte [edi + 0x10a70], 0
mov dword [ebp - 0x128], ecx
je 0x44f7dc
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xdbec], 0
je 0x44f7dc
lea eax, [ebp - 0x248]
push eax
push 0
push edi
push 0x44f010
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x3e8
jmp 0x44f7d6
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdb98]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [edi + 0x10a2c]
push 2
mov byte [eax + 0xdbcc], 1
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdbc4]
mov eax, dword [ebp - 0xe8]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov eax, dword [edi + 0x10a2c]
push 0
push 0
push 0
push 0
push dword [eax + 0xdbc4]
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [edi + 0x10a2c]
mov byte [eax + 0xdbcc], 0
jmp case.default.0x44f853
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdb9c]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp case.default.0x44f853
mov eax, dword [edi + 0x10a2c]
lea ecx, [ebp - 0x1f0]
add eax, 0xbc
push eax
call fcn.00428640
mov esi, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0xe8]
push 2
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x1ec]
call fcn.004dab64
mov eax, dword [edi + 0x10a2c]
add esp, 4
push dword [eax + 0xdba4]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp case.default.0x44f853
mov eax, dword [edi + 0x10a2c]
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov byte [edi + 0x10a30], 0
push dword [eax + 0xdba8]
call esi
jmp case.default.0x44f853
cmp esi, 0x102
ja 0x4510ea
je case.0x44f853.0
sub esi, 6
je 0x44fb01
sub esi, 1
jne case.default.0x44f853
mov eax, dword [edi + 0x10a2c]
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
push dword [eax + 0xdbb0]
call esi
jmp 0x44fabf
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [edi + 0x10a6c]
test eax, eax
je 0x44faee
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x118], 0x14
push ecx
call eax
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ebp - 0x110]
mov dword [ecx + 0xe0ac], eax
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdba0]
call esi
jmp case.default.0x44f853
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdbac]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push str.ddengine
push 0x10
push 0x55b154
call fcn.004d0170
add esp, 0xc
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdb94]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xf4]
cmp eax, vtable.vncServer.0
jne 0x451368
mov eax, dword [ecx + 0x108]
cmp eax, 0x64
je 0x44fbef
mov eax, dword [ebp - 0x148]
cmp eax, 0xa
je 0x44fb79
test eax, eax
je 0x44fb79
cmp eax, 5
jne 0x44fbf9
lea ecx, [edi + 0x10a88]
call fcn.0041d2d0
mov ecx, dword [edi + 0x10a3c]
mov word [edi + 0x10ab4], ax
mov eax, dword [ecx]
mov edx, dword [eax + 0xf4]
cmp eax, vtable.vncServer.0
jne 0x45136f
mov eax, dword [ecx + 0x108]
movsx ecx, word [edi + 0x10ab4]
cmp ecx, eax
jle 0x44fbbe
add dword [edi + 0x10ab8], 0xa
jmp 0x44fbc5
add dword [edi + 0x10ab8], 0xfffffff6
mov eax, dword [edi + 0x10ab8]
mov ecx, dword [edi + 0x10ac0]
cmp eax, ecx
jae 0x44fbdd
mov dword [edi + 0x10ab8], ecx
mov eax, ecx
mov ecx, dword [edi + 0x10abc]
cmp eax, ecx
jbe 0x44fbf9
mov dword [edi + 0x10ab8], ecx
jmp 0x44fbf9
mov dword [edi + 0x10ab8], 0x19
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [edi + 0x10a78]
mov ecx, eax
mov esi, dword [edi + 0x10ab8]
sub ecx, edx
mov dword [edi + 0x10a74], eax
cmp ecx, esi
jae 0x44fc24
sub edx, eax
add edx, esi
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx + 0xdbec]
test eax, eax
je 0x44fc76
cmp dword [eax + 0x10], 0
je 0x44fc5c
mov eax, ecx
cmp dword [eax + 0xb4], 0
je 0x44fc76
lea eax, [ebp - 0x13c]
mov ecx, edi
push eax
lea eax, [ebp - 0xe8]
push eax
mov eax, dword [edi]
call dword [eax + 0x14]
jmp 0x44fc70
mov dword [ecx + 0xe110], 1
mov dword [ecx + 0xe114], 1
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xe114], 0
je 0x44fce4
cmp dword [ecx + 0xe110], 0
jne 0x44fce4
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_Hook_changed__n
push 0
push 0x558c50
call fcn.0041c840
mov eax, dword [edi + 0x10a2c]
add esp, 0xc
push 0
push dword [eax + 0xe10c]
push 0x8007
push dword [eax + 0xdc10]
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe10c], 0
je 0x44fcda
mov dword [eax + 0xe0b0], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe114], 0
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x29c]
call eax
test al, al
jne 0x44fd23
lea eax, [ebp - 0x13c]
mov ecx, edi
push eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.0044da50
test al, al
je 0x4510ef
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbe8]
mov dword [ebp - 0xdc], ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x294]
cmp eax, vtable.vncServer.0
jne 0x451393
lea eax, [ecx + 8]
mov dword [ebp - 0x1bc], 0x19
push eax
mov dword [ebp - 0x1c0], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x130]
mov esi, dword [eax]
cmp esi, eax
je 0x44fe00
nop dword [eax]
movzx eax, word [esi + 8]
mov edx, eax
mov eax, dword [ecx]
mov dword [ebp - 0xd8], edx
mov edi, dword [eax + 0x48]
mov dword [ebp - 0xe0], edi
mov edi, dword [ebp - 0xf8]
cmp eax, vtable.vncServer.0
jne 0x451376
cmp dx, 0x7f
ja 0x44fdba
movsx eax, dx
mov ecx, dword [ecx + eax*4 + 0x138]
jmp 0x44fdbc
xor ecx, ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x8c]
cmp eax, vtable.vncClient.0
jne 0x451384
mov eax, dword [ecx + 0x268]
cmp eax, 9
je 0x44fddf
cmp eax, 0xa
jne 0x44fdf0
push dword [ebp - 0x1c0]
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov al, 1
jmp 0x44fe0f
mov ecx, dword [ebp - 0xdc]
mov esi, dword [esi]
cmp esi, dword [ecx + 0x130]
jne 0x44fd80
push dword [ebp - 0x1c0]
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
xor al, al
mov ecx, dword [edi + 0x10a2c]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x230], 0x113
mov byte [ecx + 0xb8], al
mov eax, dword [edi + 0x10a2c]
add eax, 0xdc2c
push eax
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x234], eax
call esi
mov byte [ebp - 4], 4
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbe8]
mov dword [ebp - 0xdc], ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
cmp eax, vtable.vncServer.0
jne 0x4513a6
lea eax, [ecx + 8]
mov dword [ebp - 0x1ac], 0x1d
push eax
mov dword [ebp - 0x1b0], eax
call esi
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x130]
mov esi, dword [eax]
cmp esi, eax
je 0x44fef0
movzx eax, word [esi + 8]
mov edx, eax
mov eax, dword [ecx]
mov dword [ebp - 0xd8], edx
mov edi, dword [eax + 0x48]
mov dword [ebp - 0xe0], edi
mov edi, dword [ebp - 0xf8]
cmp eax, vtable.vncServer.0
jne 0x45139a
cmp dx, 0x7f
ja 0x44fed1
movsx eax, dx
mov eax, dword [ecx + eax*4 + 0x138]
jmp 0x44fed3
xor eax, eax
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
test eax, eax
jne 0x44ff02
mov ecx, dword [ebp - 0xdc]
mov esi, dword [esi]
cmp esi, dword [ecx + 0x130]
jne 0x44fe97
mov byte [ebp - 4], 4
push dword [ebp - 0x1b0]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44ff14
mov byte [ebp - 4], 4
push dword [ebp - 0x1b0]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44ff21
cmp byte [edi + 0x10ac5], 0
jne 0x4510d8
mov eax, dword [edi + 0x10a74]
mov dword [edi + 0x10a78], eax
lea eax, [ebp - 0x1e0]
push eax
mov byte [ebp - 0x100], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x44ffb7
mov ecx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x1dc]
cmp ecx, dword [edi + 0x10a34]
jne 0x44ff61
cmp eax, dword [edi + 0x10a38]
je 0x44ffb7
mov dword [edi + 0x10a38], eax
mov eax, dword [edi + 0x10a2c]
mov dword [edi + 0x10a34], ecx
mov byte [ebp - 0x100], 1
mov ecx, dword [eax + 0xdbe8]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov eax, dword [edi + 0x10a6c]
test eax, eax
je 0x44ffb7
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x118], 0x14
push ecx
call eax
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ebp - 0x110]
mov dword [ecx + 0xe0ac], eax
mov edx, dword [edi + 0x10a2c]
xor al, al
mov byte [ebp - 0xed], al
cmp dword [edx + 0xb4], 0
jne 0x44fff1
lea eax, [ebp - 0x13c]
mov ecx, edx
push eax
call fcn.00449930
mov edx, dword [edi + 0x10a2c]
mov byte [ebp - 0xed], al
cmp dword [edx + 0xb4], 0
je 0x45006d
cmp byte [edx + 0xe15c], 0
je 0x45006d
cmp dword [edx + 0xe154], 0
jne 0x45006d
cmp byte [ebp - 0x100], 0
mov ecx, dword [edx + 0xdbe8]
mov eax, dword [ecx]
mov esi, dword [eax + 0x2a0]
je 0x45003f
cmp eax, vtable.vncServer.0
jne 0x4513b5
mov eax, dword [ecx + 0x360]
xor ecx, ecx
mov dword [edx + 0x28], 0
test eax, eax
setne cl
inc ecx
mov dword [edx + 0x24], ecx
jmp 0x450093
cmp eax, vtable.vncServer.0
jne 0x4513c2
mov eax, dword [ecx + 0x360]
xor ecx, ecx
mov dword [edx + 0x28], 0
test eax, eax
setne cl
lea ecx, [ecx*2 + 2]
mov dword [edx + 0x24], ecx
jmp 0x4501b8
test al, al
jne 0x450093
push dword [ebp - 0x100]
lea eax, [ebp - 0x148]
mov ecx, edi
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.0044ec50
cmp byte [ebp - 0x100], 0
je 0x4501b8
mov esi, dword [edi + 0x10a2c]
cmp dword [esi + 0xb4], 0
jne 0x4501b8
lea ecx, [esi + 0xdbd0]
call fcn.00428c40
test al, al
jne 0x4501b8
mov ecx, dword [ecx]
xorps xmm0, xmm0
mov eax, dword [esi + 0xdbd8]
mov edx, dword [esi + 0xdc44]
sub eax, ecx
mov dword [ebp - 0xec], eax
mov eax, dword [esi + 0xdbdc]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [esi + 0xdbd4]
sub eax, ecx
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 0xdc50]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [esi + 0xdc48]
add eax, ecx
push eax
mov eax, dword [esi + 0xdc4c]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xec]
push eax
lea edx, [ebp - 0xe0]
lea ecx, [ebp - 0xdc]
movups xmmword [ebp - 0x114], xmm0
call fcn.0044ce00
add esp, 0x18
test al, al
je 0x4501b8
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xec]
add eax, ecx
mov dword [ebp - 0x114], ecx
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xd8]
add eax, ecx
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x108], eax
lea ecx, [ebp - 0x200]
lea eax, [ebp - 0x114]
push eax
call fcn.00428640
mov esi, dword [ebp - 0x200]
mov eax, dword [ebp - 0xe8]
push 2
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x1fc]
call fcn.004dab64
add esp, 4
mov eax, dword [edi + 0x10a2c]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add eax, 0xdc2c
push eax
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], 0x114
call esi
mov byte [ebp - 4], 6
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xf4]
cmp eax, vtable.vncServer.0
jne 0x4513cf
mov eax, dword [ecx + 0x108]
movsx ecx, word [edi + 0x10ab4]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x450239
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xb4], 0
jne 0x450239
cmp byte [ebp - 0xed], 0
jne 0x450239
lea eax, [ebp - 0x13c]
push eax
call fcn.00449930
mov dl, byte [0x55b152]
test dl, dl
je 0x450325
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbe8]
mov dword [ebp - 0xd8], ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x298]
cmp eax, vtable.vncServer.0
jne 0x4513e4
lea eax, [ecx + 8]
mov dword [ebp - 0x1b4], 0x19
push eax
mov dword [ebp - 0x1b8], eax
call esi
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0x130]
mov esi, dword [eax]
cmp esi, eax
je 0x45030b
movzx eax, word [esi + 8]
mov edx, eax
mov eax, dword [ecx]
mov dword [ebp - 0xe0], edx
mov edi, dword [eax + 0x48]
mov dword [ebp - 0xec], edi
mov edi, dword [ebp - 0xf8]
cmp eax, vtable.vncServer.0
jne 0x4513d6
cmp dx, 0x7f
ja 0x4502d2
movsx eax, dx
mov ecx, dword [ecx + eax*4 + 0x138]
jmp 0x4502d4
xor ecx, ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x90]
cmp eax, vtable.vncClient.0
jne 0x4502f5
cmp dword [ecx + 0x1d8], 0
je 0x4502fb
cmp dword [ecx + 0x268], 0
jmp 0x4502f9
call edx
test al, al
jne 0x45034f
mov ecx, dword [ebp - 0xd8]
mov esi, dword [esi]
cmp esi, dword [ecx + 0x130]
jne 0x450298
mov byte [ebp - 4], 6
push dword [ebp - 0x1b8]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dl, byte [0x55b152]
test dl, dl
jne 0x450396
mov ecx, dword [edi + 0x10a2c]
call fcn.00449dd0
test eax, eax
je 0x450373
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xb4], 0
je 0x450373
movzx eax, byte [edi + 0x10ac4]
push eax
push 1
jmp 0x450387
mov byte [ebp - 4], 6
push dword [ebp - 0x1b8]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [edi + 0x10a2c]
push ecx
push dword [ecx + 0x6c]
mov ecx, dword [ecx + 0x70]
call fcn.004488f0
jmp 0x450396
test dl, dl
jne 0x450396
movzx eax, byte [edi + 0x10ac4]
mov ecx, dword [edi + 0x10a2c]
push eax
push 0
lea eax, [ebp - 0xe8]
add ecx, 8
push eax
call fcn.004337a0
mov edx, dword [edi + 0x10a2c]
mov byte [edi + 0x10ac4], 1
mov ecx, dword [edx + 0xdbe8]
mov eax, dword [ecx]
mov esi, dword [eax + 0x288]
cmp eax, vtable.vncServer.0
jne 0x4513f3
mov eax, dword [ecx + 0x610]
xor ecx, ecx
cmp byte [edi + 0x10a70], cl
sete cl
cmp ecx, eax
jne 0x450413
mov ecx, dword [edx + 0xdbe8]
mov eax, dword [ecx]
mov esi, dword [eax + 0x288]
cmp eax, vtable.vncServer.0
jne 0x451400
mov eax, dword [ecx + 0x610]
test eax, eax
setne cl
mov byte [edi + 0x10a70], cl
mov ecx, dword [edx + 0xdbec]
test ecx, ecx
je 0x450413
test eax, eax
mov eax, dword [ecx]
jne 0x450410
call dword [eax + 0xc]
jmp 0x450413
call dword [eax + 0x10]
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbe8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x288]
cmp eax, vtable.vncServer.0
jne 0x45140d
mov eax, dword [ecx + 0x610]
mov ecx, dword [edi + 0x10a2c]
test eax, eax
je 0x4505c8
mov eax, dword [ecx + 0xe0ac]
cmp eax, dword [ecx + 0xe0b0]
jne 0x450466
mov eax, dword [ecx + 0x74]
mov dword [ecx + 0x74], 0
test eax, eax
je 0x450712
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx + 0xe0ac]
mov dword [ecx + 0xe0b0], eax
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0x2c], 1
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xb4], 0
je 0x45049d
cmp byte [ecx + 0xe15c], 0
jne 0x4504ab
add ecx, 8
call fcn.00434740
mov ecx, dword [edi + 0x10a2c]
mov ecx, dword [ecx + 0xdbe8]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov esi, dword [edi + 0x10a2c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x114], xmm0
mov ecx, dword [esi + 0xdbd0]
mov eax, dword [esi + 0xdbd8]
mov edx, dword [esi + 0xdc44]
sub eax, ecx
mov dword [ebp - 0xe0], eax
mov eax, dword [esi + 0xdbdc]
mov dword [ebp - 0xd8], ecx
mov ecx, dword [esi + 0xdbd4]
sub eax, ecx
mov dword [ebp - 0xdc], eax
mov eax, dword [esi + 0xdc50]
mov dword [ebp - 0xec], ecx
mov ecx, dword [esi + 0xdc48]
add eax, ecx
push eax
mov eax, dword [esi + 0xdc4c]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xe0]
push eax
lea edx, [ebp - 0xec]
lea ecx, [ebp - 0xd8]
call fcn.0044ce00
add esp, 0x18
test al, al
je 0x4505b5
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe0]
add eax, ecx
mov dword [ebp - 0x114], ecx
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xdc]
add eax, ecx
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x108], eax
lea ecx, [ebp - 0x1f8]
lea eax, [ebp - 0x114]
push eax
call fcn.00428640
mov esi, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0xe8]
push 2
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x1f4]
call fcn.004dab64
add esp, 4
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
call dword [eax + 0x2f0]
jmp 0x450712
cmp dword [ecx + 0xb4], 0
je 0x4505de
cmp byte [ecx + 0xe15c], 0
jne 0x450712
add ecx, 8
call fcn.00434740
cmp byte [ebp - 0x100], 0
je 0x450712
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbe8]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov esi, dword [edi + 0x10a2c]
lea ecx, [esi + 0xdbd0]
call fcn.00428c40
test al, al
jne 0x450712
mov ecx, dword [ecx]
xorps xmm0, xmm0
mov eax, dword [esi + 0xdbd8]
mov edx, dword [esi + 0xdc44]
sub eax, ecx
mov dword [ebp - 0xe0], eax
mov eax, dword [esi + 0xdbdc]
mov dword [ebp - 0xd8], ecx
mov ecx, dword [esi + 0xdbd4]
sub eax, ecx
mov dword [ebp - 0xdc], eax
mov eax, dword [esi + 0xdc50]
mov dword [ebp - 0xec], ecx
mov ecx, dword [esi + 0xdc48]
add eax, ecx
push eax
mov eax, dword [esi + 0xdc4c]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xe0]
push eax
lea edx, [ebp - 0xec]
lea ecx, [ebp - 0xd8]
movups xmmword [ebp - 0x114], xmm0
call fcn.0044ce00
add esp, 0x18
test al, al
je 0x450712
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe0]
add eax, ecx
mov dword [ebp - 0x114], ecx
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xdc]
add eax, ecx
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x108], eax
lea ecx, [ebp - 0x1c8]
lea eax, [ebp - 0x114]
push eax
call fcn.00428640
mov esi, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0xe8]
push 2
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x1c4]
call fcn.004dab64
add esp, 4
push 0x518188
call fcn.004dad37
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgn]
add esp, 4
mov dword [ebp - 0x140], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x144], eax
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0x174], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x178], eax
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0x14c], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xa
push eax
push dword [ebp - 0x18c]
call dword [sym.imp.GDI32.dll_GetRgnBox]
cmp eax, 1
je 0x450806
lea ecx, [ebp - 0x22c]
call fcn.004418a0
mov eax, ecx
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00429910
mov esi, dword [ebp - 0x220]
cmp esi, dword [ebp - 0x21c]
je 0x4507f1
nop word [eax + eax]
mov ecx, dword [edi + 0x10a2c]
lea eax, [ebp - 0x214]
push eax
push esi
add ecx, 8
call fcn.00434400
add esi, 0x10
cmp esi, dword [ebp - 0x21c]
jne 0x4507d0
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 0xa
call fcn.004418f0
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgn]
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xd8], eax
push 0
push 0
push 0
push 0
call esi
mov ecx, dword [ebp - 0xe8]
mov esi, eax
push 5
push ecx
push ecx
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push 4
push dword [ebp - 0x18c]
push esi
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push 0
push 0
push 0
push 0
push dword [ebp - 0x144]
call dword [sym.imp.GDI32.dll_SetRectRgn]
push 5
push esi
push esi
push dword [ebp - 0x144]
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xd8]
call fcn.004dab64
mov esi, dword [sym.imp.GDI32.dll_GetRgnBox]
lea eax, [ebp - 0x30]
add esp, 4
push eax
push dword [ebp - 0x18c]
call esi
cmp eax, 1
je 0x450be4
mov ecx, dword [edi + 0x10a3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xf4]
cmp eax, vtable.vncServer.0
jne 0x451414
mov eax, dword [ecx + 0x108]
movsx ecx, word [edi + 0x10ab4]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x450be4
lea ecx, [ebp - 0x22c]
call fcn.004418a0
mov eax, ecx
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00429910
mov edx, dword [ebp - 0x220]
cmp edx, dword [ebp - 0x21c]
je 0x450bd3
mov ecx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x214]
neg ecx
mov dword [ebp - 0x1cc], ecx
neg eax
lea ecx, [edx + 0xc]
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0xdc], ecx
mov eax, dword [ecx]
mov esi, dword [ecx - 4]
add eax, 4
mov dword [ebp - 0xd8], eax
add esi, 4
mov dword [ebp - 0x164], eax
mov eax, dword [ecx - 0xc]
sub eax, 4
mov dword [ebp - 0x168], esi
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x170], eax
mov eax, dword [ecx - 8]
sub eax, 4
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x16c], eax
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xdbec], 0
je 0x4509bd
add eax, 0xbc
lea ecx, [ebp - 0x170]
push eax
lea eax, [ebp - 0x26c]
push eax
call fcn.004316d0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x170], xmm0
mov eax, dword [ebp - 0x164]
mov esi, dword [ebp - 0x168]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0xec], eax
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xf4], eax
push dword [ebp - 0xd8]
push esi
push dword [ebp - 0xe0]
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgn]
push dword [ebp - 0xec]
call esi
push 0x518188
mov dword [ebp - 0xd8], eax
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xe0], eax
push 0
push 0
push 0
push 0
call esi
mov ecx, dword [ebp - 0xe8]
mov esi, eax
push 5
push ecx
push ecx
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push 2
push dword [ebp - 0xd8]
push esi
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push 0
push 0
push 0
push 0
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_SetRectRgn]
push 5
push esi
push esi
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [ebp - 0xe0]
call fcn.004dab64
add esp, 4
push dword [ebp - 0xd8]
call esi
push dword [ebp - 0xf4]
call fcn.004dab64
add esp, 4
lea eax, [ebp - 0x1d0]
lea ecx, [ebp - 0x170]
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.00432950
mov eax, dword [edi + 0x10a2c]
lea ecx, [ebp - 0x25c]
add eax, 0xbc
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004316d0
push 0x518188
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x114], xmm0
movups xmmword [ebp - 0x25c], xmm0
call fcn.004dad37
movups xmm1, xmmword [ebp - 0x114]
add esp, 4
mov dword [ebp - 0xe0], eax
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
push ecx
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgn]
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
movd eax, xmm0
push ecx
push eax
movd eax, xmm1
push eax
call esi
push 0x518188
mov dword [ebp - 0xd8], eax
call fcn.004dad37
add esp, 4
mov dword [ebp - 0xf4], eax
push 0
push 0
push 0
push 0
call esi
mov ecx, dword [ebp - 0xe8]
mov esi, eax
push 5
push ecx
push ecx
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push 2
push dword [ebp - 0xd8]
push esi
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push 0
push 0
push 0
push 0
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_SetRectRgn]
push 5
push esi
push esi
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [ebp - 0xf4]
call fcn.004dab64
add esp, 4
push dword [ebp - 0xd8]
call esi
push dword [ebp - 0xe0]
call fcn.004dab64
mov ecx, dword [ebp - 0xdc]
add esp, 4
add ecx, 0x10
mov dword [ebp - 0xdc], ecx
lea eax, [ecx - 0xc]
cmp eax, dword [ebp - 0x21c]
jne 0x450921
mov esi, dword [sym.imp.GDI32.dll_GetRgnBox]
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 0xa
call fcn.004418f0
jmp 0x450c0e
push 0
push 0
push 0
push 0
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [ebp - 0x18c]
push 5
push eax
push eax
push dword [ebp - 0xe8]
call dword [sym.imp.GDI32.dll_CombineRgn]
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x144]
call esi
cmp eax, 1
je 0x450d4b
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbec]
test ecx, ecx
je 0x450c3e
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, dword [edi + 0x10a2c]
add eax, 8
mov ecx, eax
mov dword [ebp - 0xf4], eax
call fcn.004347a0
test eax, eax
je 0x450d36
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
push 1
push 1
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x144]
call fcn.004287c0
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0xd8], ecx
cmp ecx, dword [ebp - 0x120]
jne 0x450ca8
mov byte [ebp - 4], 0xa
jmp 0x450ce1
mov edi, dword [ebp - 0xf4]
mov esi, ecx
push esi
lea eax, [ebp - 0x150]
mov ecx, edi
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.00432fb0
add esi, 0x10
cmp esi, dword [ebp - 0x120]
jne 0x450cb0
mov edi, dword [ebp - 0xf8]
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
je 0x450d36
mov edx, dword [ebp - 0x11c]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff0
cmp edx, 0x1000
jb 0x450d0e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451449
push edx
push ecx
call fcn.004cbf6d
mov dword [ebp - 0x11c], 0
add esp, 8
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbec]
test ecx, ecx
je 0x450d4b
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x10a3c]
mov dword [ebp - 0xdc], ecx
mov eax, dword [ecx + 0x130]
mov esi, dword [eax]
cmp esi, eax
je 0x450dbf
mov edi, ecx
movzx eax, word [esi + 8]
mov edx, eax
mov ecx, eax
mov eax, dword [edi]
mov edi, dword [eax + 0x48]
mov dword [ebp - 0xf4], edi
mov edi, dword [ebp - 0xdc]
cmp eax, vtable.vncServer.0
jne 0x45141b
cmp edx, 0x7f
ja 0x450d9a
movsx eax, cx
mov eax, dword [edi + eax*4 + 0x138]
jmp 0x450d9c
xor eax, eax
mov byte [eax + 0x194], 1
mov esi, dword [esi]
cmp esi, dword [edi + 0x130]
jne 0x450d65
mov edi, dword [ebp - 0xf8]
mov ecx, dword [edi + 0x10a3c]
mov dword [ebp - 0xdc], ecx
cmp byte [edi + 0x10ac5], 0
jne 0x450e9f
mov eax, dword [ecx]
mov edx, dword [eax + 0x84]
cmp eax, vtable.vncServer.0
jne 0x451439
lea eax, [ecx + 8]
mov dword [ebp - 0x1d4], 0x41
push eax
mov dword [ebp - 0x1d8], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x130]
mov esi, dword [eax]
cmp esi, eax
je 0x450e73
mov edi, dword [ebp - 0xdc]
movzx eax, word [esi + 8]
mov edx, eax
mov ecx, eax
mov eax, dword [edi]
mov edi, dword [eax + 0x48]
mov dword [ebp - 0xf4], edi
mov edi, dword [ebp - 0xdc]
cmp eax, vtable.vncServer.0
jne 0x451429
cmp edx, 0x7f
ja 0x450e4a
movsx eax, cx
mov ecx, dword [edi + eax*4 + 0x138]
jmp 0x450e4c
xor ecx, ecx
mov eax, dword [ecx]
cmp eax, vtable.vncClient.0
jne 0x450e5e
mov byte [ecx + 0x68d], 1
jmp 0x450e63
push 1
call dword [eax + 0x6c]
mov esi, dword [esi]
cmp esi, dword [edi + 0x130]
jne 0x450e15
mov edi, dword [ebp - 0xf8]
push dword [ebp - 0x1d8]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [edi + 0x10a2c]
mov eax, 6
mov byte [edi + 0x10ac5], 1
mov edx, 1
cmp dword [ecx + 4], eax
cmove eax, edx
mov dword [ecx + 4], eax
push 0x518188
call fcn.004dad37
add esp, 4
mov dword [ebp - 0x154], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov esi, dword [ebp - 0x178]
push 5
push esi
push esi
push eax
mov dword [ebp - 0x158], eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov eax, dword [ebp - 0x158]
push 1
push dword [ebp - 0x134]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x158]
mov ecx, dword [ebp - 0x138]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x158]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x154]
call fcn.004dab64
push 0x518188
call fcn.004dad37
add esp, 8
mov dword [ebp - 0x15c], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebp - 0x150]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x160], eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov eax, dword [ebp - 0x160]
push 1
push dword [ebp - 0x134]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x160]
mov ecx, dword [ebp - 0x138]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
push dword [ebp - 0x160]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x15c]
call fcn.004dab64
mov ecx, dword [edi + 0x10a3c]
add esp, 4
mov eax, dword [ecx]
mov edx, dword [eax + 0x9c]
cmp eax, vtable.vncServer.0
jne 0x451442
lea eax, [ecx + 0x6c]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00429a10
push dword [ebp - 0x150]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0x14c]
call fcn.004dab64
add esp, 4
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [ebp - 0x174]
call fcn.004dab64
add esp, 4
push dword [ebp - 0x144]
call esi
push dword [ebp - 0x140]
call fcn.004dab64
add esp, 4
push dword [ebp - 0x1a4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [sym.imp.GDI32.dll_SetRectRgn]
push 0
push 0
push 0
push 0
push dword [ebp - 0x19c]
call esi
push 0
push 0
push 0
push 0
push dword [ebp - 0x18c]
call esi
push 0
push 0
push 0
push 0
push dword [ebp - 0x194]
call esi
mov ecx, dword [edi + 0x10a2c]
cmp byte [ecx + 0xe104], 0
je 0x4510d8
mov dl, byte [0x559373]
test dl, dl
je 0x45109c
cmp byte [0x559370], 0
jne 0x451093
cmp byte [0x55936e], 0
mov al, byte [0x559372]
jne 0x451086
cmp byte [0x55936f], 0
je 0x45108a
test al, al
je 0x451093
cmp dl, 1
jne 0x45109c
test al, al
jne 0x45109c
call fcn.00449dd0
test eax, eax
je 0x4510d8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov ecx, esi
sub ecx, dword [edi + 0x10ac8]
cmp ecx, 0x1f4
jbe 0x4510d8
mov eax, dword [edi + 0x10a2c]
push 2
push 0xf170
push 0x112
push dword [eax + 0xdc10]
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [edi + 0x10ac8], esi
mov byte [ebp - 4], 2
push dword [ebp - 0x1a8]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.default.0x44f853
cmp esi, 0xffffffff
jne case.default.0x44f853
mov byte [edi + 0x10a30], 0
cmp byte [edi + 0x10a30], 0
je 0x45110a
mov ecx, dword [ebp - 0x128]
jmp 0x44f7f0
mov ecx, dword [edi + 0x10a3c]
mov byte [edi + 0x10a30], 0
mov eax, dword [ecx]
call dword [eax + 0x28]
mov esi, dword [ebp - 0x12c]
mov byte [0x55ab76], 1
test esi, esi
je 0x451144
push 0x1388
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
jmp 0x45114a
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x451169
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0xfc]
push eax
call esi
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x451188
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x104]
push eax
call esi
mov eax, dword [edi + 0x10a2c]
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_quitting_desktop_server_thread_n
push 9
push 0x558c50
mov dword [eax + 0xdc1c], 0
call fcn.0041c840
mov ecx, dword [edi + 0x10a2c]
add esp, 0xc
push 0
call fcn.0044a510
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_quitting_desktop_server_thread:SetBlockInputState_n
push 9
push 0x558c50
call fcn.0041c840
add esp, 0xc
cmp dword [0x5674b4], 2
jne 0x4511fd
mov cl, 0xa0
call fcn.0046f8e0
mov cl, 0xa2
call fcn.0046f8e0
mov cl, 0xa4
call fcn.0046f8e0
mov cl, 0xa1
call fcn.0046f8e0
mov cl, 0xa3
call fcn.0046f8e0
mov cl, 0xa5
jmp 0x45120d
mov cl, 0x10
call fcn.0046f8e0
mov cl, 0x11
call fcn.0046f8e0
mov cl, 0x12
call fcn.0046f8e0
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_quitting_desktop_server_thread:ClearShiftKeys_n
push 9
push 0x558c50
call fcn.0041c840
add esp, 0xc
push 0
push str.blackscreen
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x451244
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_quitting_desktop_server_thread:g_DesktopThread_runningfalse_n
push 9
push 0x558c50
mov byte [0x55b153], 0
call fcn.0041c840
mov ecx, dword [edi + 0x10a2c]
add esp, 0xc
call fcn.004479f0
push str.d:_saasultravncwinvncwinvnc_vncdesktopthread.cpp_:_quitting_desktop_server_thread:m_desktop__Shutdown_n
push 9
push 0x558c50
call fcn.0041c840
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0xc
push dword [ebp - 0xe8]
call esi
push dword [ebp - 0xe4]
call fcn.004dab64
add esp, 4
mov dword [ebp - method.rfb::ClippedUpdateTracker.virtual_0], vtable.rfb::ClippedUpdateTracker.0
push dword [ebp - 0x134]
call esi
push dword [ebp - 0x130]
call fcn.004dab64
add esp, 4
mov dword [ebp - method.rfb::UpdateTracker.virtual_0], vtable.rfb::UpdateTracker.0
mov dword [ebp - method.rfb::SimpleUpdateTracker.virtual_0], vtable.rfb::SimpleUpdateTracker.0
push dword [ebp - 0x18c]
call esi
push dword [ebp - 0x188]
call fcn.004dab64
add esp, 4
push dword [ebp - 0x194]
call esi
push dword [ebp - 0x190]
call fcn.004dab64
add esp, 4
push dword [ebp - 0x19c]
call esi
push dword [ebp - 0x198]
call fcn.004dab64
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004cbf27
mov esp, ebp
pop ebp
ret 4
call edx
jmp 0x44f0d1
call edx
jmp 0x44f126
call edx
mov ecx, dword [esi + 0xdbe8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ecx]
jmp 0x44f2e1
call edx
jmp 0x44f2f8
mov ecx, edx
call esi
mov ecx, dword [edi + 0x10a2c]
jmp 0x44f5cb
call edx
jmp 0x44fb58
call edx
jmp 0x44fbaa
push edx
call dword [ebp - 0xe0]
mov ecx, eax
jmp 0x44fdbc
call edx
test al, al
jne 0x44fddf
jmp 0x44fdf0
call edx
jmp 0x44fe0f
push edx
call dword [ebp - 0xe0]
jmp 0x44fed3
call edx
test eax, eax
jne 0x44ff21
jmp 0x44ff14
call esi
mov edx, dword [edi + 0x10a2c]
jmp 0x45002b
call esi
mov edx, dword [edi + 0x10a2c]
jmp 0x450050
call edx
jmp 0x450205
push edx
call dword [ebp - 0xec]
mov ecx, eax
jmp 0x4502d4
call edx
test al, al
je 0x45031b
jmp 0x45035f
call esi
mov edx, dword [edi + 0x10a2c]
jmp 0x4503c2
call esi
mov edx, dword [edi + 0x10a2c]
jmp 0x4503f0
call edx
jmp 0x450438
call edx
jmp 0x4508b9
push ecx
mov ecx, edi
call dword [ebp - 0xf4]
jmp 0x450d9c
push ecx
mov ecx, edi
call dword [ebp - 0xf4]
mov ecx, eax
jmp 0x450e4c
push 1
call edx
jmp 0x450e7f
call edx
jmp 0x450fb8
call fcn.004d0120
nop
daa
sti
inc esp
add byte [ebx - 0xdffbb07], cl
stc
inc esp
add byte [ecx + 0x90044fa], bh
cli
inc esp
add ah, cl
int3