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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x4cee7f
mov eax, dword fs:[0]
push eax
sub esp, 0x23c
mov eax, dword [0x4f5568]
xor eax, esp
mov dword [esp + 0x234], eax
push esi
push edi
mov eax, dword [0x4f5568]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0xe0], edi
cmp byte [0x503c96], 0
jne 0x44369a
cmp byte [0x503c95], 0
jne 0x44369a
cmp byte [0x503c94], 0
mov byte [0x4f8a40], 1
je 0x4436a1
mov byte [0x4f8a40], 0
push str.vncdesktopthread.cpp_:_Hook_changed_1_n
push 0
push 0x4f6c50
mov byte [edi + 0x10abc], 1
call fcn.00414f90
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.vncdesktopthread.cpp_:_Hook_changed_2_n
push 0
push 0x4f6c50
mov dword [ecx + 0xe284], eax
call fcn.00414f90
add esp, 0xc
call fcn.0043c800
push ecx
push 0
xor dl, dl
mov cl, 0x11
call fcn.004273d0
add esp, 4
xor dl, dl
mov cl, 0x11
push 2
call fcn.004273d0
add esp, 8
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [edi + 0x10a2c]
call fcn.0043c190
mov esi, eax
test esi, esi
je 0x44375c
mov ecx, dword [edi + 0x10a2c]
mov ecx, dword [ecx + 0xe284]
call fcn.00470260
mov ecx, dword [edi + 0x10a2c]
mov ecx, dword [ecx + 0xe280]
test ecx, ecx
je 0x44374f
push ecx
call dword [sym.imp.USER32.dll_CloseDesktop]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x10]
jmp 0x4452cc
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x10]
mov eax, dword [edi + 0x10a2c]
mov dword [esp + 0x14], eax
mov ecx, dword [eax + 0xdbf4]
mov esi, ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0xd0]
call eax
push eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0xd8]
call eax
mov ecx, dword [esp + 0x18]
push eax
call fcn.0043eab0
mov eax, dword [edi + 0x10a2c]
push ecx
mov byte [edi + 0x10abe], 0
lea ecx, [esp + 0xa8]
mov dword [eax + 0xdc08], 1
call fcn.00420a80
mov dword [esp + 0x250], 0
mov esi, dword [edi + 0x10a2c]
push 0x4d9f42
call fcn.004aec27
add esp, 4
mov dword [esp + 0x14], eax
push dword [esi + 0xc4]
push dword [esi + 0xc0]
push dword [esi + 0xbc]
push dword [esi + 0xb8]
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov esi, eax
mov dword [esp + 0x58], vtable.rfb::ClippedUpdateTracker.0
lea eax, [esp + 0xa4]
push 0x4d9f42
mov dword [esp + 0x60], eax
call fcn.004aec27
add esp, 4
mov dword [esp + 0x64], 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 [esp + 0x70], eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x14]
call fcn.004ae337
add esp, 4
mov byte [esp + 0xc8], 1
push 0x4d9f42
call fcn.004aec27
add esp, 4
mov dword [esp + 0x1c], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [esp + 0x18], eax
mov byte [esp + 0x250], 2
mov esi, dword [edi + 0x10a2c]
push 0x4d9f42
call fcn.004aec27
add esp, 4
mov dword [esp + 0x14], eax
push dword [esi + 0xc4]
push dword [esi + 0xc0]
push dword [esi + 0xbc]
push dword [esi + 0xb8]
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
mov esi, eax
call dword [sym.imp.GDI32.dll_SetRectRgn]
push 5
push esi
push esi
push dword [esp + 0x24]
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x14]
call fcn.004ae337
mov eax, dword [edi + 0x10a2c]
add esp, 4
mov ecx, dword [edi + 0x10a30]
push dword [eax + 0xe278]
mov edx, dword [ecx]
push dword [eax + 0x78]
push dword [eax + 0x74]
call dword [edx + 0x90]
mov eax, dword [edi + 0x10a2c]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov ecx, dword [eax + 0xe0e8]
test ecx, ecx
je 0x443962
cmp dword [ecx + 8], 0
jne 0x44394b
mov dword [eax + 0xe118], 1
mov dword [eax + 0xe11c], 1
jmp 0x443962
cmp dword [eax + 0xb0], 0
je 0x443962
mov dword [eax + 0x28], 4
mov dword [eax + 0x2c], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe0d4], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe0dc], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe0d8], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe11c], 1
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe0a4], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe118], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe120], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe124], 0
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x264]
call eax
test eax, eax
setne al
mov byte [edi + 0x10a64], al
test al, al
jne 0x443a1b
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe0e8], 0
je 0x443a1b
call fcn.00428f30
cmp byte [edi + 0x10a64], 0
je 0x443a4f
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe0e8], 0
je 0x443a38
call fcn.00428f80
cmp byte [edi + 0x10a64], 0
je 0x443a4f
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
call dword [eax + 0x2c8]
push 1
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
call esi
mov dword [edi + 0x10a6c], eax
call esi
mov dword [edi + 0x10a70], eax
mov eax, dword [edi + 0x10a2c]
mov dword [esp + 0x88], 0
mov dword [esp + 0x74], 0
mov byte [0x4f8bb2], 0
push dword [eax + 0xdbac]
mov byte [esp + 0x30], 1
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [edi + 0x10a2c]
push 0x4d9f42
call fcn.004aec27
add esp, 4
mov dword [esp + 0x14], eax
push dword [esi + 0xc4]
push dword [esi + 0xc0]
push dword [esi + 0xbc]
push dword [esi + 0xb8]
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [esp + 0x18]
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 [esp + 0x14]
call fcn.004ae337
mov ecx, dword [edi + 0x10a2c]
add esp, 4
mov eax, dword [ecx + 0xe0e8]
test eax, eax
je 0x443b34
cmp dword [eax + 8], 0
jne 0x443be4
mov dword [ecx + 0xe118], 1
mov dword [ecx + 0xe11c], 1
cmp byte [0x503c94], 0
jne 0x443b54
mov ecx, dword [edi + 0x10a2c]
push 1
push 0
lea eax, [esp + 0x20]
add ecx, 8
push eax
call fcn.0042b2f0
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0xfc]
call eax
cmp eax, 0x32
jge 0x443b7d
mov dword [edi + 0x10ab4], 0x32
mov dword [edi + 0x10ab0], 0x3e8
mov ecx, dword [edi + 0x10a30]
call fcn.0046c250
test al, al
setne al
mov byte [edi + 0x10abd], al
cmp byte [0x501a96], 0
jne 0x4450a9
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [edi + 0x10a68], eax
mov ecx, 0x21
mov eax, dword [edi + 0x10a2c]
mov edx, dword [eax + 0xe0e8]
test edx, edx
je 0x443c98
cmp dword [edx + 8], 0
jne 0x443c07
mov dword [eax + 0xe118], 1
mov dword [eax + 0xe11c], 1
jmp 0x443c98
cmp dword [ecx + 0xb0], 0
je 0x443b34
cmp byte [0x503c94], 0
jne 0x443b54
push 1
push 1
jmp 0x443b47
cmp dword [eax + 0xb0], 0
je 0x443c98
push str.driver
push 0x10
push 0x4f9124
call fcn.004ad6d8
mov eax, dword [edi + 0x10a2c]
add esp, 0xc
xor esi, esi
mov ecx, dword [eax + 0xcc]
mov eax, dword [eax + 0xe0e8]
mov eax, dword [eax + 4]
cmp eax, dword [ecx]
jne 0x443c96
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x14
jg 0x443c96
lea eax, [esp + 0x114]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x443c7d
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x114], eax
jne 0x443c96
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x118], eax
jne 0x443c96
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xcc]
mov eax, dword [eax + 0xe0e8]
mov eax, dword [eax + 4]
cmp eax, dword [ecx]
je 0x443c43
xor ecx, ecx
mov eax, dword [edi + 0x10a2c]
xor edx, edx
cmp dword [eax + 0xe158], edx
cmovne ecx, edx
add eax, 0xdb94
push ecx
push edx
push eax
push 6
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ecx, dword [edi + 0x10a2c]
mov esi, eax
push 0x2710
push dword [ecx + 0xdbac]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp eax, 0x102
movzx ecx, cl
cmove ecx, edx
mov dword [esp + 0x2c], ecx
cmp esi, 0x102
ja case.default.0x443d02
je case.0x443d02.0
cmp esi, 5
ja case.default.0x443d02
jmp dword [esi*4 + 0x4452f4]
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 + 0xdbbc], 1
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdbb4]
mov eax, dword [esp + 0x20]
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 + 0xdbb4]
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [edi + 0x10a2c]
mov byte [eax + 0xdbbc], 0
jmp 0x445089
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdb9c]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x445089
mov eax, dword [edi + 0x10a60]
test eax, eax
je 0x443dad
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0x14
push ecx
call eax
push dword [esp + 0x3c]
mov ecx, dword [edi + 0x10a2c]
call fcn.0043e050
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdba0]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x445089
mov eax, dword [edi + 0x10a2c]
lea ecx, [esp + 0x104]
add eax, 0xb8
push eax
call fcn.00420160
mov eax, dword [esp + 0x18]
push 2
push dword [esp + 0x108]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
lea ecx, [esp + 0x104]
call fcn.004201a0
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdba4]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x445089
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdb94]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x88]
cmp eax, 0xa
je 0x443e3b
test eax, eax
je 0x443e3b
cmp eax, 5
jne 0x443e62
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0xfc]
call eax
cmp eax, 0x64
je 0x443e62
lea ecx, [edi + 0x10a7c]
call fcn.00415aa0
mov word [edi + 0x10aa8], ax
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0xfc]
call eax
movsx ecx, word [edi + 0x10aa8]
cmp ecx, eax
jle 0x443e86
add dword [edi + 0x10aac], 0xa
jmp 0x443e8d
add dword [edi + 0x10aac], 0xfffffff6
mov eax, dword [edi + 0x10ab4]
cmp dword [edi + 0x10aac], eax
jae 0x443ea1
mov dword [edi + 0x10aac], eax
mov eax, dword [edi + 0x10ab0]
cmp dword [edi + 0x10aac], eax
jbe 0x443eb5
mov dword [edi + 0x10aac], eax
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [edi + 0x10a6c]
mov ecx, eax
mov esi, dword [edi + 0x10aac]
sub ecx, edx
mov dword [edi + 0x10a68], eax
cmp ecx, esi
jae 0x443ee0
sub edx, eax
add edx, esi
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xe0e8]
test ecx, ecx
je 0x443f26
cmp dword [ecx + 8], 0
jne 0x443f0c
mov dword [eax + 0xe118], 1
mov dword [eax + 0xe11c], 1
jmp 0x443f26
cmp dword [eax + 0xb0], 0
je 0x443f26
mov eax, dword [edi]
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [edi + 0x10a2c]
mov byte [0x4f9122], 0
mov dword [eax + 0xe0a8], 0
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe11c], 0
je 0x443fb1
cmp dword [eax + 0xe118], 0
jne 0x443fb1
push str.vncdesktopthread.cpp_:_Hook_changed__n
push 0
push 0x4f6c50
call fcn.00414f90
mov eax, dword [edi + 0x10a2c]
add esp, 0xc
push 0
push dword [eax + 0xe114]
push 0x8007
push dword [eax + 0xdbfc]
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe114], 0
je 0x443fa1
mov dword [eax + 0xe09c], 0
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0xe11c], 0
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x274]
call eax
test al, al
jne 0x443fee
lea eax, [esp + 0x58]
mov ecx, edi
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00442350
test al, al
je 0x4450a9
mov ecx, dword [edi + 0x10a30]
mov byte [esp + 0x13], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
test eax, eax
je 0x44425c
mov esi, dword [edi + 0x10a2c]
add esi, 0xdc18
mov dword [esp + 0x1bc], 0x112
push esi
mov dword [esp + 0x1bc], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esp + 0x1d0]
mov byte [esp + 0x250], 3
mov ecx, dword [edi + 0x10a2c]
push eax
call fcn.00441530
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [edi + 0x10a30]
push dword [eax + 0xe0e4]
mov edx, dword [ecx]
push dword [eax + 0xe0e0]
call dword [edx + 0x8c]
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe0d4], 0
je 0x444137
mov dword [eax + 0xe0d4], 0
lea eax, [esp + 0x1f0]
mov ecx, dword [edi + 0x10a2c]
push eax
mov byte [esp + 0x17], 1
call fcn.00441530
mov eax, dword [edi + 0x10a2c]
lea ecx, [esp + 0xfc]
add eax, 0xb8
push eax
call fcn.00420160
push 2
push dword [eax]
mov eax, dword [esp + 0x20]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push dword [esp + 0xfc]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x100]
call fcn.004ae337
mov eax, dword [edi + 0x10a2c]
push ecx
add eax, 0xb8
mov ecx, esp
push eax
call fcn.00420160
lea ecx, [esp + 0x60]
call fcn.004416f0
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [edi + 0x10a30]
push dword [eax + 0xe0e4]
mov edx, dword [ecx]
push dword [eax + 0xe0e0]
call dword [edx + 0x8c]
mov ecx, dword [edi + 0x10a2c]
add ecx, 8
call fcn.0042c0b0
mov ecx, dword [edi + 0x10a2c]
add ecx, 8
call fcn.0042c200
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xe0d8], 0
je 0x4441f3
mov dword [eax + 0xe0d8], 0
sub esp, 8
mov eax, dword [edi + 0x10a2c]
mov ecx, esp
add eax, 0xb8
push eax
call fcn.00420160
lea ecx, [esp + 0x60]
call fcn.004416f0
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [edi + 0x10a30]
push dword [eax + 0xe0e4]
mov edx, dword [ecx]
push dword [eax + 0xe0e0]
call dword [edx + 0x8c]
mov eax, dword [edi + 0x10a2c]
lea ecx, [esp + 0x174]
add eax, 0xb8
push eax
call fcn.00420160
push 2
push dword [eax]
mov eax, dword [esp + 0x20]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push dword [esp + 0x174]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x178]
call fcn.004ae337
mov ecx, dword [edi + 0x10a2c]
add esp, 4
add ecx, 8
call fcn.0042c0b0
mov ecx, dword [edi + 0x10a2c]
add ecx, 8
call fcn.0042c200
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
test eax, eax
je 0x44424d
cmp byte [esp + 0x13], 0
je 0x44424d
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [edi + 0x10a30]
push 0
push dword [eax + 0xe0cc]
mov edx, dword [ecx]
push dword [eax + 0xe0d0]
call dword [edx + 0x84]
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [edi + 0x10a30]
push dword [eax + 0xe278]
mov edx, dword [ecx]
push dword [eax + 0x78]
push dword [eax + 0x74]
call dword [edx + 0x90]
push esi
mov byte [esp + 0x254], 2
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
mov ecx, dword [edi + 0x10a2c]
mov dword [esp + 0x1cc], 0x113
mov byte [ecx + 0xb4], al
mov eax, dword [edi + 0x10a2c]
add eax, 0xdc18
push eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1cc], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x250], 4
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
test eax, eax
jne 0x4442d1
cmp byte [edi + 0x10abe], al
jne 0x445077
mov eax, dword [edi + 0x10a68]
mov dword [edi + 0x10a6c], eax
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0x34], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x444357
mov ecx, dword [esp + 0x10c]
mov eax, dword [esp + 0x110]
cmp ecx, dword [esp + 0x6c]
jne 0x44430e
cmp eax, dword [esp + 0x70]
je 0x444357
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x10a2c]
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x30], 1
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
call dword [eax + 0xa8]
mov eax, dword [edi + 0x10a60]
test eax, eax
je 0x444357
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0x14
push ecx
call eax
push dword [esp + 0x3c]
mov ecx, dword [edi + 0x10a2c]
call fcn.0043e050
mov eax, dword [edi + 0x10a2c]
xor dl, dl
mov byte [esp + 0x13], dl
cmp dword [eax + 0xb0], 0
jne 0x444399
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
test eax, eax
jne 0x444395
mov ecx, dword [edi + 0x10a2c]
lea eax, [esp + 0x58]
push eax
call fcn.0043e2c0
mov dl, al
mov byte [esp + 0x13], dl
jmp 0x444399
mov dl, byte [esp + 0x13]
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xb0], 0
je 0x4443fc
cmp byte [ecx + 0xe174], 0
je 0x4443fc
cmp dword [ecx + 0xe16c], 0
jne 0x4443fc
mov ecx, dword [ecx + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x278]
call eax
cmp byte [esp + 0x30], 0
mov ecx, dword [edi + 0x10a2c]
mov dword [ecx + 0x2c], 0
je 0x4443ea
neg eax
sbb eax, eax
neg eax
inc eax
mov dword [ecx + 0x28], eax
jmp 0x444420
neg eax
sbb eax, eax
and eax, 2
add eax, 2
mov dword [ecx + 0x28], eax
jmp 0x44452b
test dl, dl
jne 0x444420
push dword [esp + 0x30]
lea eax, [esp + 0x8c]
mov ecx, edi
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00443270
cmp byte [esp + 0x30], 0
je 0x44452b
mov esi, dword [edi + 0x10a2c]
cmp dword [esi + 0xb0], 0
jne 0x44452b
mov eax, dword [esi + 0xdbc0]
cmp eax, dword [esi + 0xdbc8]
jge 0x44452b
mov eax, dword [esi + 0xdbc4]
cmp eax, dword [esi + 0xdbcc]
jge 0x44452b
mov ecx, dword [esi + 0xdbc0]
xorps xmm0, xmm0
mov eax, dword [esi + 0xdbc8]
mov edx, dword [esi + 0xdc30]
sub eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xdbcc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0xdbc4]
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xdc3c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + 0xdc34]
add eax, ecx
push eax
mov eax, dword [esi + 0xdc38]
add eax, edx
push eax
push ecx
push edx
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x38]
push eax
lea edx, [esp + 0x38]
lea ecx, [esp + 0x40]
movdqu xmmword [esp + 0x4c], xmm0
call fcn.00441770
add esp, 0x18
test al, al
je 0x44452b
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x15c]
lea eax, [esp + 0x34]
push eax
call fcn.00420160
mov eax, dword [esp + 0x18]
push 2
push dword [esp + 0x160]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
lea ecx, [esp + 0x15c]
call fcn.004201a0
mov eax, dword [edi + 0x10a2c]
add eax, 0xdc18
mov dword [esp + 0x1c4], 0x114
push eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x1c4], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x250], 5
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0xfc]
call eax
movsx ecx, word [edi + 0x10aa8]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x4445b4
mov eax, dword [edi + 0x10a2c]
cmp dword [eax + 0xb0], 0
jne 0x4445b4
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
test eax, eax
jne 0x4445b4
cmp byte [esp + 0x13], al
jne 0x4445b4
mov ecx, dword [edi + 0x10a2c]
lea eax, [esp + 0x58]
push eax
call fcn.0043e2c0
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx + 0xe0e8]
test eax, eax
je 0x4445e2
cmp dword [eax + 8], 0
jne 0x444666
mov dword [ecx + 0xe118], 1
mov dword [ecx + 0xe11c], 1
movzx eax, byte [edi + 0x10abc]
mov ecx, dword [edi + 0x10a2c]
push eax
push 0
lea eax, [esp + 0x20]
add ecx, 8
push eax
call fcn.0042b2f0
mov eax, dword [edi + 0x10a2c]
mov byte [edi + 0x10abc], 1
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x264]
call eax
xor ecx, ecx
cmp byte [edi + 0x10a64], cl
sete cl
cmp ecx, eax
jne 0x444687
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x264]
call eax
test eax, eax
mov eax, dword [edi + 0x10a2c]
setne cl
mov byte [edi + 0x10a64], cl
cmp dword [eax + 0xe0e8], 0
je 0x444687
test cl, cl
jne 0x444682
call fcn.00428f30
jmp 0x444687
cmp dword [ecx + 0xb0], 0
je 0x4445e2
movzx eax, byte [edi + 0x10abc]
push eax
push 1
jmp 0x4445f2
call fcn.00428f80
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x264]
call eax
test eax, eax
je 0x44480d
mov ecx, dword [edi + 0x10a2c]
cmp byte [ecx + 0xb4], 0
jne 0x44480d
mov eax, dword [ecx + 0xe098]
cmp eax, dword [ecx + 0xe09c]
jne 0x4446d8
mov eax, dword [ecx + 0x60]
mov dword [ecx + 0x60], 0
test eax, eax
je 0x444943
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx + 0xe098]
mov dword [ecx + 0xe09c], eax
mov eax, dword [edi + 0x10a2c]
mov dword [eax + 0x30], 1
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xb0], 0
je 0x44470f
cmp byte [ecx + 0xe174], 0
jne 0x444717
add ecx, 8
call fcn.0042c260
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
call dword [eax + 0xa8]
mov esi, dword [edi + 0x10a2c]
xorps xmm0, xmm0
movdqu xmmword [esp + 0x34], xmm0
mov ecx, dword [esi + 0xdbc0]
mov eax, dword [esi + 0xdbc8]
mov edx, dword [esi + 0xdc30]
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xdbcc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0xdbc4]
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xdc3c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0xdc34]
add eax, ecx
push eax
mov eax, dword [esi + 0xdc38]
add eax, edx
push eax
push ecx
push edx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x34]
push eax
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x2c]
call fcn.00441770
add esp, 0x18
test al, al
je 0x4447fa
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x11c]
lea eax, [esp + 0x34]
push eax
call fcn.00420160
mov eax, dword [esp + 0x18]
push 2
push dword [esp + 0x120]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
lea ecx, [esp + 0x11c]
call fcn.004201a0
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
call dword [eax + 0x2c8]
jmp 0x444943
mov ecx, dword [edi + 0x10a2c]
cmp dword [ecx + 0xb0], 0
je 0x444829
cmp byte [ecx + 0xe174], 0
jne 0x444943
add ecx, 8
call fcn.0042c260
cmp byte [esp + 0x30], 0
je 0x444943
mov eax, dword [edi + 0x10a2c]
mov ecx, dword [eax + 0xdbf4]
mov eax, dword [ecx]
call dword [eax + 0xa8]
mov esi, dword [edi + 0x10a2c]
mov eax, dword [esi + 0xdbc0]
cmp eax, dword [esi + 0xdbc8]
jge 0x444943
mov eax, dword [esi + 0xdbc4]
cmp eax, dword [esi + 0xdbcc]
jge 0x444943
mov ecx, dword [esi + 0xdbc0]
xorps xmm0, xmm0
mov eax, dword [esi + 0xdbc8]
mov edx, dword [esi + 0xdc30]
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xdbcc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0xdbc4]
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xdc3c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0xdc34]
add eax, ecx
push eax
mov eax, dword [esi + 0xdc38]
add eax, edx
push eax
push ecx
push edx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x34]
push eax
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x2c]
movdqu xmmword [esp + 0x4c], xmm0
call fcn.00441770
add esp, 0x18
test al, al
je 0x444943
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x164]
lea eax, [esp + 0x34]
push eax
call fcn.00420160
mov eax, dword [esp + 0x18]
push 2
push dword [esp + 0x168]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
lea ecx, [esp + 0x164]
call fcn.004201a0
push 0x4d9f42
call fcn.004aec27
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgn]
add esp, 4
mov dword [esp + 0x7c], eax
push 0
push 0
push 0
push 0
call esi
mov dword [esp + 0x78], eax
push 0x4d9f42
call fcn.004aec27
add esp, 4
mov dword [esp + 0x84], eax
push 0
push 0
push 0
push 0
call esi
mov dword [esp + 0x80], eax
push 0x4d9f42
call fcn.004aec27
add esp, 4
mov dword [esp + 0x90], eax
push 0
push 0
push 0
push 0
call esi
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x230]
mov byte [esp + 0x250], 8
push eax
push dword [esp + 0xbc]
call dword [sym.imp.GDI32.dll_GetRgnBox]
cmp eax, 1
je 0x444a47
lea ecx, [esp + 0x18c]
call fcn.00437630
lea eax, [esp + 0x18c]
mov byte [esp + 0x250], 9
push eax
lea ecx, [esp + 0xa8]
call fcn.004211c0
mov esi, dword [esp + 0x198]
cmp esi, dword [esp + 0x19c]
je 0x444a33
lea esp, [esp]
mov ecx, dword [edi + 0x10a2c]
lea eax, [esp + 0x1a4]
push eax
push esi
add ecx, 8
call fcn.0042bf50
add esi, 0x10
cmp esi, dword [esp + 0x19c]
jne 0x444a10
lea ecx, [esp + 0x18c]
mov byte [esp + 0x250], 8
call fcn.00437680
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x20]
call fcn.00420290
push 0
push 0
push 0
push 0
push dword [esp + 0x88]
mov esi, eax
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [esi]
mov esi, dword [esp + 0x78]
push 5
push eax
push eax
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push dword [esp + 0x13c]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x140]
call fcn.004ae337
add esp, 4
lea eax, [esp + 0x220]
push eax
push dword [esp + 0xbc]
call dword [sym.imp.GDI32.dll_GetRgnBox]
cmp eax, 1
je 0x444e06
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
mov eax, dword [eax + 0xfc]
call eax
movsx ecx, word [edi + 0x10aa8]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x444e06
lea ecx, [esp + 0x18c]
call fcn.00437630
lea eax, [esp + 0x18c]
mov byte [esp + 0x250], 0xa
push eax
lea ecx, [esp + 0xa8]
call fcn.004211c0
mov ecx, dword [esp + 0x198]
cmp ecx, dword [esp + 0x19c]
je 0x444df0
mov eax, dword [esp + 0x1a8]
neg eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1a4]
neg eax
add ecx, 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov eax, dword [ecx - 4]
add eax, 4
mov dword [esp + 0x12c], eax
mov eax, dword [ecx]
add eax, 4
mov dword [esp + 0x130], eax
mov eax, dword [ecx - 0xc]
sub eax, 4
mov dword [esp + 0x124], eax
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x124]
sub eax, 4
mov dword [esp + 0x128], eax
mov eax, dword [edi + 0x10a2c]
add eax, 0xb8
push eax
lea eax, [esp + 0x204]
push eax
call fcn.00429460
push 0x4d9f42
movdqu xmm0, xmmword [eax]
movdqa xmmword [esp + 0x38], xmm0
movdqa xmmword [esp + 0x128], xmm0
call fcn.004aec27
movdqa xmm1, xmmword [esp + 0x38]
add esp, 4
mov dword [esp + 0x98], eax
movdqa xmm0, xmm1
psrldq xmm0, 0xc
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
push eax
mov dword [esp + 0x28], eax
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
push eax
mov dword [esp + 0xdc], eax
movd eax, xmm0
push eax
mov dword [esp + 0xd8], eax
movd eax, xmm1
push eax
mov dword [esp + 0xf4], eax
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [esp + 0x94], eax
lea ecx, [esp + 0x18]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x170]
push eax
call fcn.00420240
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
mov esi, eax
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [esi]
push 5
push eax
push eax
push dword [esp + 0x24]
call dword [sym.imp.GDI32.dll_CombineRgn]
push dword [esp + 0x16c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [esp + 0x170]
call fcn.004ae337
add esp, 4
push dword [esp + 0x94]
call esi
push dword [esp + 0x98]
call fcn.004ae337
mov esi, dword [esp + 0x28]
add esp, 4
mov ecx, dword [esp + 0x28]
add esi, ecx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xe4]
add eax, dword [esp + 0x14]
mov edi, dword [esp + 0xe0]
add ecx, dword [esp + 0xcc]
add edx, dword [esp + 0xd4]
mov dword [esp + 0x144], eax
mov eax, dword [edi + 0x10a2c]
add eax, 0xb8
mov dword [esp + 0x148], ecx
push eax
lea eax, [esp + 0x1e4]
mov dword [esp + 0x150], edx
push eax
lea ecx, [esp + 0x14c]
mov dword [esp + 0x158], esi
call fcn.00429460
push 0x4d9f42
movdqu xmm0, xmmword [eax]
movdqa xmmword [esp + 0x38], xmm0
movdqa xmmword [esp + 0x148], xmm0
call fcn.004aec27
movdqa xmm1, xmmword [esp + 0x38]
add esp, 4
movdqa xmm0, xmm1
mov dword [esp + 0xa0], eax
psrldq xmm0, 0xc
movd ecx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
push ecx
movd ecx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
movd eax, xmm0
push ecx
push eax
movd eax, xmm1
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x18]
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x158]
push eax
call fcn.00420240
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
mov esi, eax
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [esi]
push 5
push eax
push eax
push dword [esp + 0x24]
call dword [sym.imp.GDI32.dll_CombineRgn]
push dword [esp + 0x154]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [esp + 0x158]
call fcn.004ae337
add esp, 4
push dword [esp + 0x9c]
call esi
push dword [esp + 0xa0]
call fcn.004ae337
mov ecx, dword [esp + 0x24]
add esp, 4
add ecx, 0x10
mov dword [esp + 0x20], ecx
lea eax, [ecx - 0xc]
cmp eax, dword [esp + 0x19c]
jne 0x444b43
mov esi, dword [esp + 0x78]
lea ecx, [esp + 0x18c]
mov byte [esp + 0x250], 8
call fcn.00437680
jmp 0x444e2d
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
call dword [sym.imp.GDI32.dll_SetRectRgn]
mov eax, dword [esp + 0xb8]
push 5
push eax
push eax
push dword [esp + 0x24]
call dword [sym.imp.GDI32.dll_CombineRgn]
lea eax, [esp + 0x210]
push eax
push esi
call dword [sym.imp.GDI32.dll_GetRgnBox]
cmp eax, 1
je 0x444e64
mov ecx, dword [edi + 0x10a2c]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x90]
add ecx, 8
push eax
lea eax, [esp + 0x88]
push eax
call fcn.0042b760
cmp byte [edi + 0x10abe], 0
jne 0x444e91
mov ecx, dword [edi + 0x10a30]
push 1
mov eax, dword [ecx]
call dword [eax + 0x94]
mov eax, dword [edi + 0x10a2c]
mov byte [edi + 0x10abe], 1
mov dword [eax + 4], 6
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x88]
call fcn.004201f0
mov byte [esp + 0x250], 0xb
mov ecx, dword [esp + 0x5c]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
push dword [esp + 0x17c]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x180]
call fcn.004ae337
add esp, 4
lea eax, [esp + 0x60]
lea ecx, [esp + 0x8c]
push eax
lea eax, [esp + 0x188]
push eax
call fcn.004201f0
mov byte [esp + 0x250], 0xc
mov ecx, dword [esp + 0x5c]
push eax
mov edx, dword [ecx]
call dword [edx + 8]
mov byte [esp + 0x250], 8
push dword [esp + 0x184]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x188]
call fcn.004ae337
mov ecx, dword [edi + 0x10a30]
add esp, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0xa4]
call eax
push eax
lea ecx, [esp + 0xa8]
call fcn.004212a0
push dword [esp + 0x8c]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x90]
call fcn.004ae337
add esp, 4
push dword [esp + 0x80]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x84]
call fcn.004ae337
add esp, 4
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x7c]
call fcn.004ae337
add esp, 4
push dword [esp + 0xd0]
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 [esp + 0xb8]
call esi
push 0
push 0
push 0
push 0
push dword [esp + 0xc8]
call esi
push 0
push 0
push 0
push 0
push dword [esp + 0xc0]
call esi
mov eax, dword [edi + 0x10a2c]
cmp byte [eax + 0xe10c], 0
je 0x445077
cmp byte [0x503c9a], 0
je 0x44503b
cmp byte [0x503c97], 0
jne 0x445015
cmp byte [0x503c95], 0
jne 0x44500c
cmp byte [0x503c96], 0
je 0x44503b
cmp byte [0x503c99], 0
jne 0x44503b
mov ecx, dword [eax + 0xe0e8]
test ecx, ecx
je 0x445077
cmp dword [ecx + 8], 0
jne 0x44503b
mov dword [eax + 0xe118], 1
mov dword [eax + 0xe11c], 1
jmp 0x445077
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov ecx, esi
sub ecx, dword [edi + 0x10ac0]
cmp ecx, 0x1f4
jbe 0x445077
mov eax, dword [edi + 0x10a2c]
push 2
push 0xf170
push 0x112
push dword [eax + 0xdbfc]
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [edi + 0x10ac0], esi
mov byte [esp + 0x250], 2
push dword [esp + 0x68]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x2c]
test cl, cl
jne 0x443b93
jmp 0x4450a9
mov eax, dword [edi + 0x10a2c]
push dword [eax + 0xdba8]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [edi + 0x10a30]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov esi, dword [esp + 0x74]
mov byte [0x4f8bb2], 1
test esi, esi
je 0x4450d6
push 0x1388
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi + 0x10a2c]
push str.vncdesktopthread.cpp_:_quitting_desktop_server_thread_n
push 9
push 0x4f6c50
mov dword [eax + 0xdc08], 0
call fcn.00414f90
mov esi, dword [edi + 0x10a2c]
add esp, 0xc
mov ecx, dword [esi + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x214]
call eax
test eax, eax
je 0x445150
mov ecx, dword [esi + 0xdbf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x21c]
call eax
test eax, eax
jne 0x445137
push eax
mov ecx, esi
call fcn.004156b0
mov byte [esi + 0xe198], 0
push 0
mov ecx, esi
mov byte [esi + 0xe27e], 0
call fcn.0043ed10
xor ecx, ecx
test al, al
sete cl
jmp 0x445155
mov ecx, 1
test ecx, ecx
push ecx
sete al
push ecx
mov ecx, dword [esi + 0xdbf4]
mov byte [esi + 0xe27e], al
call fcn.0046f640
mov ecx, dword [edi + 0x10a30]
push 0
mov eax, dword [ecx]
call dword [eax + 0x74]
push str.vncdesktopthread.cpp_:_quitting_desktop_server_thread:SetBlockInputState_n
push 9
push 0x4f6c50
call fcn.00414f90
add esp, 0xc
cmp dword [0x4fd48c], 2
jne 0x4451be
mov cl, 0xa0
call fcn.00459eb0
mov cl, 0xa2
call fcn.00459eb0
mov cl, 0xa4
call fcn.00459eb0
mov cl, 0xa1
call fcn.00459eb0
mov cl, 0xa3
call fcn.00459eb0
mov cl, 0xa5
jmp 0x4451ce
mov cl, 0x10
call fcn.00459eb0
mov cl, 0x11
call fcn.00459eb0
mov cl, 0x12
call fcn.00459eb0
push str.vncdesktopthread.cpp_:_quitting_desktop_server_thread:ClearShiftKeys_n
push 9
push 0x4f6c50
call fcn.00414f90
add esp, 0xc
push 0
push str.blackscreen
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x445205
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push str.vncdesktopthread.cpp_:_quitting_desktop_server_thread:g_DesktopThread_runningfalse_n
push 9
push 0x4f6c50
mov byte [0x4f9123], 0
call fcn.00414f90
mov ecx, dword [edi + 0x10a2c]
add esp, 0xc
call fcn.0043c540
push str.vncdesktopthread.cpp_:_quitting_desktop_server_thread:m_desktop__Shutdown_n
push 9
push 0x4f6c50
call fcn.00414f90
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0xc
push dword [esp + 0x18]
call esi
push dword [esp + 0x1c]
call fcn.004ae337
add esp, 4
mov dword [esp + 0x58], vtable.rfb::ClippedUpdateTracker.0
push dword [esp + 0x60]
call esi
push dword [esp + 0x64]
call fcn.004ae337
add esp, 4
mov dword [esp + 0x58], vtable.rfb::UpdateTracker.0
mov dword [esp + 0xa4], vtable.rfb::SimpleUpdateTracker.0
push dword [esp + 0xb8]
call esi
push dword [esp + 0xbc]
call fcn.004ae337
add esp, 4
push dword [esp + 0xb0]
call esi
push dword [esp + 0xb4]
call fcn.004ae337
add esp, 4
push dword [esp + 0xa8]
call esi
push dword [esp + 0xac]
call fcn.004ae337
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x234]
xor ecx, esp
call fcn.004aca59
mov esp, ebp
pop ebp
ret 4