Function at 0x45b080
Capabilities:
Check for time delay via gettickcount
Check os version
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x557d7c
mov eax, dword fs:[0]
push eax
sub esp, 0x2cc
mov eax, dword [0x5c3040]
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 - 0x138], edi
mov eax, dword [0x5d1914]
mov eax, dword [eax + 0xe60]
cmp eax, 1
jne 0x45b16b
mov eax, dword [0x5cf18c]
test eax, eax
jne 0x45b102
push 0x20
call fcn.00524776
add esp, 4
mov dword [ebp - 0x15c], eax
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00484690
mov dword [ebp - 4], 0xffffffff
mov edx, eax
mov dword [0x5cf18c], eax
mov ecx, eax
jmp 0x45b106
mov edx, eax
mov ecx, edx
cmp byte [eax + 8], 0
jne 0x45b162
test edx, edx
jne 0x45b13d
push 0x20
call fcn.00524776
add esp, 4
mov dword [ebp - 0x15c], eax
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.00484690
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x5cf18c], ecx
cmp byte [ecx + 7], 0
jne 0x45b162
call fcn.00427a20
cmp byte [eax + 6], 0
jne 0x45b162
call fcn.00427a20
cmp byte [eax + 4], 0
jne 0x45b162
mov al, 1
mov byte [0x5c6480], al
jmp 0x45b175
xor al, al
mov byte [0x5c6480], al
jmp 0x45b175
cmp eax, 2
sete byte [0x5c6480]
push str.vncDesktopThread::run_undetached_:_Hook_changed_1_n
push 0
push 0x5c3db0
mov byte [edi + 0x10ab4], 1
call fcn.0041dde0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov ecx, dword [edi + 0x10a1c]
push str.vncDesktopThread::run_undetached_:_Hook_changed_2_n
push 0
push 0x5c3db0
mov dword [ecx + 0xe970], eax
call fcn.0041dde0
add esp, 0xc
mov dword [ebp - 0x104], 0x94
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov esi, dword [sym.imp.USER32.dll_CloseDesktop]
test eax, eax
mov eax, dword [sym.imp.USER32.dll_PostMessageA]
mov dword [ebp - 0x1a4], eax
mov eax, dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x1e4], eax
je 0x45b295
push str.vncDesktop::KillScreenSaver_:_KillScreenSaver..._n
push 9
push 0x5c3db0
call fcn.0041dde0
mov eax, dword [ebp - 0xf4]
add esp, 0xc
sub eax, 1
je 0x45b26f
sub eax, 1
jne 0x45b295
push 0x81
push eax
push eax
push str.Screen_saver
call dword [sym.imp.USER32.dll_OpenDesktopA]
mov esi, eax
test esi, esi
je 0x45b28f
push str.vncDesktop::KillScreenSaver_:_Killing_ScreenSaver_n
push 9
push 0x5c3db0
call fcn.0041dde0
add esp, 0xc
push 0
push 0x454840
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 0x45b295
push 0
push str.WindowsScreenSaverClass
call dword [ebp - 0x1e4]
test eax, eax
je 0x45b295
push 0
push 0
push 0x10
push eax
call dword [ebp - 0x1a4]
jmp 0x45b295
mov esi, dword [sym.imp.USER32.dll_CloseDesktop]
push ecx
push 0
xor dl, dl
mov cl, 0x11
call fcn.004384f0
add esp, 4
xor dl, dl
mov cl, 0x11
push 2
call fcn.004384f0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 8
mov dword [ebp - 0x1a0], eax
push 0x1f4
call eax
mov ecx, dword [edi + 0x10a1c]
call fcn.00454020
mov dword [ebp - 0x130], eax
test eax, eax
je 0x45b30f
mov ecx, dword [edi + 0x10a1c]
mov ecx, dword [ecx + 0xe970]
call fcn.004261a0
mov ecx, dword [edi + 0x10a1c]
mov eax, dword [ecx + 0xe96c]
test eax, eax
je 0x45b2fd
push eax
call esi
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x130]
call dword [eax + 0x10]
jmp 0x45d3d2
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x10]
mov eax, dword [0x5d1914]
mov ecx, dword [edi + 0x10a1c]
push dword [eax + 0xe50]
push dword [eax + 0xe54]
call fcn.00456fc0
push ecx
lea ecx, [ebp - 0x20c]
mov byte [edi + 0x10ab5], 0
call fcn.0042aad0
mov dword [ebp - 4], 2
mov esi, dword [edi + 0x10a1c]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x130], eax
mov eax, dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [ebp - 0x114], eax
push dword [esi + 0x8a4]
push dword [esi + 0x8a0]
push dword [esi + 0x89c]
push dword [esi + 0x898]
call eax
mov esi, eax
mov dword [ebp - method.rfb::ClippedUpdateTracker.virtual_0], vtable.rfb::ClippedUpdateTracker.0
lea eax, [ebp - 0x20c]
push 0x579be0
mov dword [ebp - 0x198], eax
call fcn.00535058
add esp, 4
mov dword [ebp - 0x190], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x114]
push 5
push esi
push esi
mov dword [ebp - 0x194], eax
push eax
mov eax, dword [sym.imp.GDI32.dll_CombineRgn]
mov dword [ebp - 0x10c], eax
call eax
mov eax, dword [sym.imp.GDI32.dll_DeleteObject]
push esi
mov dword [ebp - 0x11c], eax
call eax
push dword [ebp - 0x130]
call fcn.0052a52b
push 0x579be0
mov byte [ebp - 0x1e8], 1
call fcn.00535058
add esp, 8
mov dword [ebp - 0x124], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x114]
mov dword [ebp - 0x128], eax
mov byte [ebp - 4], 4
mov esi, dword [edi + 0x10a1c]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x130], eax
push dword [esi + 0x8a4]
push dword [esi + 0x8a0]
push dword [esi + 0x89c]
push dword [esi + 0x898]
call dword [ebp - 0x114]
push 0
mov esi, eax
push 0
mov eax, dword [sym.imp.GDI32.dll_SetRectRgn]
push 0
push 0
push dword [ebp - 0x128]
mov dword [ebp - 0x144], eax
call eax
push 5
push esi
push esi
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x130]
call fcn.0052a52b
mov edx, dword [edi + 0x10a1c]
add esp, 4
mov ecx, dword [edi + 0x10a2c]
cmp dword [edx + 0xe964], 1
mov esi, dword [ecx]
sete al
movzx eax, al
push eax
push dword [edx + 0x85c]
push dword [edx + 0x858]
call dword [esi + 0x74]
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [sym.imp.USER32.dll_GetCursorPos]
mov dword [ebp - 0x254], eax
call eax
mov edx, dword [edi + 0x10a1c]
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x258]
mov dword [edi + 0x10a24], eax
mov dword [edi + 0x10a28], ecx
mov eax, dword [edx + 0xe3c8]
test eax, eax
je 0x45b55e
cmp dword [eax + 0x10], 0
jne 0x45b524
mov dword [edx + 0xe8f0], 1
mov dword [edx + 0xe8f4], 1
jmp 0x45b55e
cmp dword [edx + 0x890], 0
je 0x45b55e
mov ecx, dword [edi + 0x10a2c]
push dword [edx + 0xe8c0]
push dword [edx + 0xe8bc]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0x7fc], 4
mov dword [eax + 0x800], 0
mov eax, dword [edi + 0x10a1c]
xor esi, esi
mov dword [eax + 0xe8f4], 1
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0xe894], 0
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0xe8f0], 0
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0xe8f8], 0
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0xe8fc], 0
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x7c]
call eax
test eax, eax
jne 0x45b5f4
push 0x64
call dword [ebp - 0x1a0]
inc esi
cmp esi, 0x32
jg 0x45b5f4
push str.vncDesktopThread::run_undetached_:_Wait_for_viewer_init__n
push 0
push 0x5c3db0
call fcn.0041dde0
mov ecx, dword [edi + 0x10a2c]
add esp, 0xc
mov eax, dword [ecx]
mov eax, dword [eax + 0x7c]
call eax
test eax, eax
je 0x45b5c1
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
test eax, eax
setne cl
mov byte [edi + 0x10a60], cl
test eax, eax
jne 0x45b62e
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45b62e
mov eax, dword [ecx]
call dword [eax + 0xc]
cmp byte [edi + 0x10a60], 0
je 0x45b663
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45b64c
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp byte [edi + 0x10a60], 0
je 0x45b663
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx]
call dword [eax + 0x15c]
push 1
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1e0], esi
call esi
mov dword [edi + 0x10a68], eax
call esi
mov dword [edi + 0x10a6c], eax
xor eax, eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], eax
mov byte [0x5c6495], al
mov eax, dword [edi + 0x10a1c]
mov byte [edi + 0x10a20], 1
push dword [eax + 0xe398]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [edi + 0x10a1c]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x130], eax
push dword [esi + 0x8a4]
push dword [esi + 0x8a0]
push dword [esi + 0x89c]
push dword [esi + 0x898]
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
mov esi, eax
push 2
push esi
push ecx
push ecx
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x130]
call fcn.0052a52b
add esp, 4
cmp byte [0x5c6497], 0
jne 0x45b7b1
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45b757
cmp dword [ecx + 0x10], 0
jne 0x45b7f2
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
mov eax, dword [0x5cf18c]
test eax, eax
jne 0x45b784
push 0x20
call fcn.00524776
add esp, 4
mov dword [ebp - 0x15c], eax
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.00484690
mov byte [ebp - 4], 4
mov dword [0x5cf18c], eax
cmp byte [eax + 6], 0
jne 0x45b7b1
call fcn.00427a20
cmp byte [eax + 4], 0
jne 0x45b7b1
push 1
push 0
mov ecx, dword [edi + 0x10a1c]
lea eax, [ebp - 0x128]
push eax
add ecx, 0x7e0
call fcn.0043dd20
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0xe410], 1
xor eax, eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x14c], eax
mov eax, dword [0x5d1914]
cmp dword [eax + 0xa58], 0
je 0x45b826
mov esi, dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
push 0x80000043
mov dword [ebp - 0x1b8], esi
call esi
jmp 0x45b838
cmp dword [eax + 0x890], 0
je 0x45b757
call fcn.00427a20
cmp byte [eax + 6], 0
jne 0x45b757
call fcn.00427a20
cmp byte [eax + 4], 0
jne 0x45b757
push 1
push 1
jmp 0x45b799
mov eax, dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
push connect
mov dword [ebp - 0x1b8], eax
call eax
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45b866
cmp dword [ecx + 0x10], 0
jne 0x45b986
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45b894
cmp dword [ecx + 0x10], 0
jne 0x45b9f1
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
lea eax, [ebp - 0x2a4]
push eax
push 0
push edi
push 0x45b010
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x21
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x14c], eax
cmp byte [edi + 0x10a20], 0
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x158], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x130], eax
je 0x45d18e
mov eax, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov edx, dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x134], eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x1bc], eax
mov eax, dword [sym.imp.GDI32.dll_GetRgnBox]
mov dword [ebp - 0x140], eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x1b0], eax
nop dword [eax]
cmp byte [0x5c64d5], 0
jne 0x45d18e
mov eax, dword [edi + 0x10a1c]
push ecx
push 0
add eax, 0xe370
push eax
push 8
call edx
mov ecx, dword [edi + 0x10a1c]
mov esi, eax
push 0x2710
push dword [ecx + 0xe398]
call dword [ebp - 0x158]
cmp eax, 0x102
jne 0x45b967
mov byte [edi + 0x10a20], 0
cmp esi, 5
ja 0x45bbd2
je 0x45bbb2
cmp esi, 4
ja case.default.0x45b97f
jmp dword [esi*4 + 0x45d3f8]
cmp dword [eax + 0x890], 0
je 0x45b866
call fcn.00427a20
cmp byte [eax + 6], 0
jne 0x45b866
call fcn.00427a20
cmp byte [eax + 4], 0
jne 0x45b866
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea eax, [ebp - 0x290]
push eax
push 0
push edi
push 0x45af90
push 0
push 0
call esi
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x294]
push eax
push 0
push edi
push 0x45b010
push 0
push 0
call esi
mov ecx, 0x3e8
jmp 0x45b8b2
cmp dword [eax + 0x890], 0
je 0x45b894
call fcn.00427a20
cmp byte [eax + 6], 0
jne 0x45ba18
call fcn.00427a20
cmp byte [eax + 4], 0
je 0x45b894
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [edi + 0x10a1c]
mov dword [ecx + 0xe388], eax
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [edi + 0x10a1c]
mov dword [ecx + 0xe38c], eax
mov ecx, 0x3e8
cmp byte [edi + 0x10a60], 0
mov dword [ebp - 0x184], ecx
je 0x45b8be
mov eax, dword [edi + 0x10a1c]
cmp dword [eax + 0xe3c8], 0
je 0x45b8be
lea eax, [ebp - 0x2a8]
push eax
push 0
push edi
push 0x45b010
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x3e8
jmp 0x45b8b8
mov eax, dword [edi + 0x10a1c]
push dword [eax + 0xe374]
call dword [ebp - 0x134]
mov eax, dword [edi + 0x10a1c]
push 2
mov byte [eax + 0xe3a8], 1
mov eax, dword [edi + 0x10a1c]
push dword [eax + 0xe3a0]
mov eax, dword [ebp - 0x128]
push eax
push eax
call dword [ebp - 0x10c]
mov eax, dword [edi + 0x10a1c]
push 0
push 0
push 0
push 0
push dword [eax + 0xe3a0]
call dword [ebp - 0x144]
mov eax, dword [edi + 0x10a1c]
mov byte [eax + 0xe3a8], 0
jmp case.default.0x45b97f
mov eax, dword [edi + 0x10a1c]
push dword [eax + 0xe378]
call dword [ebp - 0x134]
jmp case.default.0x45b97f
mov eax, dword [edi + 0x10a1c]
push 0x579be0
mov byte [eax + 0xe3a8], 1
mov esi, dword [edi + 0x10a1c]
call fcn.00535058
add esp, 4
mov dword [ebp - 0x108], eax
push dword [esi + 0x8a4]
push dword [esi + 0x8a0]
push dword [esi + 0x89c]
push dword [esi + 0x898]
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
mov esi, eax
push 2
push esi
push ecx
push ecx
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x108]
call fcn.0052a52b
mov eax, dword [edi + 0x10a1c]
add esp, 4
push dword [eax + 0xe380]
call dword [ebp - 0x134]
mov eax, dword [edi + 0x10a1c]
mov byte [eax + 0xe3a8], 0
jmp case.default.0x45b97f
mov eax, dword [edi + 0x10a1c]
mov esi, dword [ebp - 0x134]
mov byte [edi + 0x10a20], 0
push dword [eax + 0xe384]
call esi
jmp case.default.0x45b97f
cmp esi, 0x102
ja 0x45d168
je case.0x45b97f.0
sub esi, 6
je 0x45bc50
sub esi, 1
jne case.default.0x45b97f
mov eax, dword [edi + 0x10a1c]
mov esi, dword [ebp - 0x134]
push dword [eax + 0xe38c]
call esi
jmp 0x45bc0e
mov esi, dword [ebp - 0x134]
mov eax, dword [edi + 0x10a5c]
test eax, eax
je 0x45bc3d
lea ecx, [ebp - 0x2c4]
mov dword [ebp - 0x2c4], 0x14
push ecx
call eax
mov ecx, dword [edi + 0x10a1c]
mov eax, dword [ebp - 0x2bc]
mov dword [ecx + 0xe888], eax
mov eax, dword [edi + 0x10a1c]
push dword [eax + 0xe37c]
call esi
jmp case.default.0x45b97f
mov eax, dword [edi + 0x10a1c]
push dword [eax + 0xe388]
call dword [ebp - 0x134]
push str.ddengine
push 0x10
push 0x5c6e3c
call fcn.00535a54
add esp, 0xc
mov eax, dword [edi + 0x10a1c]
push dword [eax + 0xe370]
call dword [ebp - 0x134]
mov eax, dword [0x5d1914]
cmp dword [eax + 0xe48], 0x64
je 0x45bd06
mov eax, dword [ebp - 0x1ac]
cmp eax, 0xa
je 0x45bcaa
test eax, eax
je 0x45bcaa
cmp eax, 5
jne 0x45bd10
lea ecx, [edi + 0x10a78]
call fcn.0041e590
mov esi, dword [edi + 0x10aa8]
mov word [edi + 0x10aa4], ax
movsx ecx, ax
mov eax, dword [0x5d1914]
cmp ecx, dword [eax + 0xe48]
lea eax, [esi + 0xa]
jg 0x45bcd8
lea eax, [esi - 0xa]
mov ecx, eax
lea esi, [edi + 0x10aa8]
mov dword [esi], ecx
mov ecx, dword [edi + 0x10ab0]
cmp eax, ecx
jae 0x45bcf4
mov dword [edi + 0x10aa8], ecx
mov eax, ecx
mov ecx, dword [edi + 0x10aac]
cmp eax, ecx
jbe 0x45bd10
mov dword [edi + 0x10aa8], ecx
jmp 0x45bd10
mov dword [edi + 0x10aa8], 0x19
call dword [ebp - 0x1e0]
mov esi, dword [edi + 0x10a68]
mov ecx, eax
mov edx, dword [edi + 0x10aa8]
sub ecx, esi
mov dword [edi + 0x10a64], eax
cmp ecx, edx
jae 0x45bd3b
sub edx, eax
add edx, esi
push edx
call dword [ebp - 0x1a0]
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45bd85
cmp dword [ecx + 0x10], 0
jne 0x45bd67
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
jmp 0x45bd85
cmp dword [eax + 0x890], 0
je 0x45bd85
mov eax, dword [edi]
lea ecx, [ebp - 0x19c]
push ecx
lea ecx, [ebp - 0x128]
push ecx
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [edi + 0x10a1c]
cmp dword [eax + 0xe8f4], 0
je 0x45bdf9
cmp dword [eax + 0xe8f0], 0
jne 0x45bdf9
push str.vncDesktopThread::run_undetached_:_Hook_changed__n
push 0
push 0x5c3db0
call fcn.0041dde0
mov eax, dword [edi + 0x10a1c]
add esp, 0xc
push 0
push dword [eax + 0xe8ec]
push 0x8007
push dword [eax + 0xe404]
call dword [ebp - 0x1a4]
mov eax, dword [edi + 0x10a1c]
cmp dword [eax + 0xe8ec], 0
je 0x45bde9
mov dword [eax + 0xe88c], 0
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0xe8f4], 0
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x128]
call eax
test al, al
jne 0x45be38
lea eax, [ebp - 0x19c]
mov ecx, edi
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.00459fc0
test al, al
je 0x45d16d
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x11c]
call eax
mov ecx, dword [edi + 0x10a1c]
mov byte [ecx + 0x894], al
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x120]
call eax
mov ecx, dword [edi + 0x10a1c]
mov dword [ebp - 0x2ac], 0x113
mov byte [ecx + 0x895], al
mov eax, dword [edi + 0x10a1c]
add eax, 0xe420
push eax
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x2b0], eax
call dword [ebp - 0x1b0]
mov byte [ebp - 4], 6
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
test eax, eax
jne 0x45becb
cmp byte [edi + 0x10ab5], al
jne 0x45d156
mov eax, dword [edi + 0x10a64]
mov dword [edi + 0x10a68], eax
lea eax, [ebp - 0x264]
push eax
mov byte [ebp - 0x150], 0
call dword [ebp - 0x254]
test eax, eax
je 0x45bf61
mov ecx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x260]
cmp ecx, dword [edi + 0x10a24]
jne 0x45bf0b
cmp eax, dword [edi + 0x10a28]
je 0x45bf61
mov dword [edi + 0x10a28], eax
mov eax, dword [edi + 0x10a1c]
mov dword [edi + 0x10a24], ecx
mov byte [ebp - 0x150], 1
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov eax, dword [edi + 0x10a5c]
test eax, eax
je 0x45bf61
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x2d8], 0x14
push ecx
call eax
mov ecx, dword [edi + 0x10a1c]
mov eax, dword [ebp - 0x2d0]
mov dword [ecx + 0xe888], eax
mov ecx, dword [edi + 0x10a1c]
xor al, al
mov byte [ebp - 0x129], al
cmp dword [ecx + 0x890], 0
jne 0x45bf8a
lea eax, [ebp - 0x19c]
push eax
call fcn.004566a0
mov byte [ebp - 0x129], al
mov edx, dword [edi + 0x10a1c]
cmp dword [edx + 0x890], 0
je 0x45bffb
cmp byte [edx + 0xe93c], 0
je 0x45bffb
cmp dword [edx + 0xe934], 0
jne 0x45bffb
mov eax, dword [0x5d1914]
xor ecx, ecx
cmp byte [ebp - 0x150], cl
je 0x45bfd6
cmp dword [eax + 0xe30], ecx
mov dword [edx + 0x800], 0
setne cl
inc ecx
mov dword [edx + 0x7fc], ecx
jmp 0x45c03a
cmp dword [eax + 0xe30], ecx
mov dword [edx + 0x800], 0
setne cl
lea ecx, [ecx*2 + 2]
mov dword [edx + 0x7fc], ecx
jmp 0x45c151
test al, al
jne 0x45c02d
push dword [ebp - 0x150]
lea eax, [ebp - 0x1a8]
mov ecx, edi
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.0045ac30
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x1ac], eax
cmp byte [ebp - 0x150], 0
je 0x45c151
mov esi, dword [edi + 0x10a1c]
cmp dword [esi + 0x890], 0
jne 0x45c151
mov ecx, dword [esi + 0xe3ac]
cmp ecx, dword [esi + 0xe3b4]
jge 0x45c151
mov eax, dword [esi + 0xe3b0]
cmp eax, dword [esi + 0xe3b8]
jge 0x45c151
mov eax, dword [esi + 0xe3b4]
mov edx, dword [esi + 0xe438]
sub eax, ecx
mov dword [ebp - 0x118], eax
mov eax, dword [esi + 0xe3b8]
mov dword [ebp - 0x110], ecx
mov ecx, dword [esi + 0xe3b0]
sub eax, ecx
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0xe444]
mov dword [ebp - 0x120], ecx
mov ecx, dword [esi + 0xe43c]
add eax, ecx
push eax
mov eax, dword [esi + 0xe440]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x118]
push eax
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x110]
call fcn.00459510
add esp, 0x18
test al, al
je 0x45c151
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x108]
add dword [ebp - 0x118], ecx
add esi, dword [ebp - 0x120]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x108], eax
push esi
push dword [ebp - 0x118]
push dword [ebp - 0x120]
push dword [ebp - 0x110]
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
mov esi, eax
push 2
push esi
push ecx
push ecx
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x108]
call fcn.0052a52b
add esp, 4
mov eax, dword [edi + 0x10a1c]
add eax, 0xe420
mov dword [ebp - 0x298], 0x114
push eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x29c], eax
call dword [ebp - 0x1b0]
mov byte [ebp - 4], 7
mov eax, dword [0x5d1914]
movsx ecx, word [edi + 0x10aa4]
mov eax, dword [eax + 0xe48]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x45c1bc
mov ecx, dword [edi + 0x10a1c]
cmp dword [ecx + 0x890], 0
jne 0x45c1bc
cmp byte [ebp - 0x129], 0
jne 0x45c1bc
lea eax, [ebp - 0x19c]
push eax
call fcn.004566a0
mov al, byte [0x5c6497]
test al, al
je 0x45c207
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
call eax
test al, al
je 0x45c1fe
mov ecx, dword [edi + 0x10a1c]
push dword [ecx + 0x824]
push dword [ecx + 0x844]
mov ecx, dword [ecx + 0x848]
call fcn.00455620
jmp 0x45c25d
mov al, byte [0x5c6497]
test al, al
jne 0x45c25d
mov ecx, dword [edi + 0x10a1c]
mov edx, ecx
mov esi, dword [ecx + 0xe3c8]
test esi, esi
je 0x45c23d
cmp dword [esi + 0x10], 0
jne 0x45c2c7
mov dword [ecx + 0xe8f0], 1
mov dword [ecx + 0xe8f4], 1
mov edx, dword [edi + 0x10a1c]
test al, al
jne 0x45c25d
movzx eax, byte [edi + 0x10ab4]
lea ecx, [edx + 0x7e0]
push eax
push 0
lea eax, [ebp - 0x128]
push eax
call fcn.0043dd20
mov eax, dword [edi + 0x10a1c]
mov byte [edi + 0x10ab4], 1
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
xor ecx, ecx
cmp byte [edi + 0x10a60], cl
sete cl
cmp ecx, eax
jne 0x45c2ee
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
mov edx, eax
test edx, edx
setne cl
mov byte [edi + 0x10a60], cl
mov ecx, dword [edi + 0x10a1c]
mov ecx, dword [ecx + 0xe3c8]
test ecx, ecx
je 0x45c2ee
mov eax, dword [ecx]
test edx, edx
jne 0x45c2eb
call dword [eax + 0xc]
jmp 0x45c2ee
cmp dword [ecx + 0x890], 0
mov edx, ecx
je 0x45c23d
movzx eax, byte [edi + 0x10ab4]
add ecx, 0x7e0
push eax
push 1
jmp 0x45c251
call dword [eax + 0x10]
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
mov ecx, dword [edi + 0x10a1c]
test eax, eax
je 0x45c490
mov eax, dword [ecx + 0xe888]
cmp eax, dword [ecx + 0xe88c]
jne 0x45c338
mov eax, dword [ecx + 0x84c]
mov dword [ecx + 0x84c], 0
test eax, eax
je 0x45c5dc
mov ecx, dword [edi + 0x10a1c]
mov eax, dword [ecx + 0xe888]
mov dword [ecx + 0xe88c], eax
mov eax, dword [edi + 0x10a1c]
mov dword [eax + 0x804], 1
mov ecx, dword [edi + 0x10a1c]
cmp dword [ecx + 0x890], 0
je 0x45c372
cmp byte [ecx + 0xe93c], 0
jne 0x45c37d
add ecx, 0x7e0
call fcn.0043ef00
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov esi, dword [edi + 0x10a1c]
mov ecx, dword [esi + 0xe3ac]
mov eax, dword [esi + 0xe3b4]
mov edx, dword [esi + 0xe438]
sub eax, ecx
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0xe3b8]
mov dword [ebp - 0x120], ecx
mov ecx, dword [esi + 0xe3b0]
sub eax, ecx
mov dword [ebp - 0x118], eax
mov eax, dword [esi + 0xe444]
mov dword [ebp - 0x110], ecx
mov ecx, dword [esi + 0xe43c]
add eax, ecx
push eax
mov eax, dword [esi + 0xe440]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x108]
push eax
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x120]
call fcn.00459510
add esp, 0x18
test al, al
je 0x45c47d
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x118]
add dword [ebp - 0x108], ecx
add esi, dword [ebp - 0x110]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x118], eax
push esi
push dword [ebp - 0x108]
push dword [ebp - 0x110]
push dword [ebp - 0x120]
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
mov esi, eax
push 2
push esi
push ecx
push ecx
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x118]
call fcn.0052a52b
add esp, 4
mov ecx, dword [edi + 0x10a2c]
mov eax, dword [ecx]
call dword [eax + 0x15c]
jmp 0x45c5dc
cmp dword [ecx + 0x890], 0
je 0x45c4a6
cmp byte [ecx + 0xe93c], 0
jne 0x45c5dc
add ecx, 0x7e0
call fcn.0043ef00
cmp byte [ebp - 0x150], 0
je 0x45c5dc
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov esi, dword [edi + 0x10a1c]
mov ecx, dword [esi + 0xe3ac]
cmp ecx, dword [esi + 0xe3b4]
jge 0x45c5dc
mov eax, dword [esi + 0xe3b0]
cmp eax, dword [esi + 0xe3b8]
jge 0x45c5dc
mov eax, dword [esi + 0xe3b4]
mov edx, dword [esi + 0xe438]
sub eax, ecx
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0xe3b8]
mov dword [ebp - 0x120], ecx
mov ecx, dword [esi + 0xe3b0]
sub eax, ecx
mov dword [ebp - 0x118], eax
mov eax, dword [esi + 0xe444]
mov dword [ebp - 0x110], ecx
mov ecx, dword [esi + 0xe43c]
add eax, ecx
push eax
mov eax, dword [esi + 0xe440]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x108]
push eax
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x120]
call fcn.00459510
add esp, 0x18
test al, al
je 0x45c5dc
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x118]
add dword [ebp - 0x108], ecx
add esi, dword [ebp - 0x110]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x118], eax
push esi
push dword [ebp - 0x108]
push dword [ebp - 0x110]
push dword [ebp - 0x120]
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
mov esi, eax
push 2
push esi
push ecx
push ecx
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x118]
call fcn.0052a52b
add esp, 4
push 0x579be0
call fcn.00535058
mov esi, dword [ebp - 0x114]
add esp, 4
mov dword [ebp - 0x17c], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x180], eax
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x1d8], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x1dc], eax
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x1d0], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xa
push eax
push dword [ebp - 0x1f8]
call dword [ebp - 0x140]
cmp eax, 1
je 0x45c717
xorps xmm0, xmm0
mov dword [ebp - 0x228], 0
movups xmmword [ebp - 0x248], xmm0
mov dword [ebp - 0x224], 0
movups xmmword [ebp - 0x238], xmm0
mov dword [ebp - 0x220], 0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x20c]
call fcn.0042b330
mov esi, dword [ebp - 0x23c]
mov edi, dword [ebp - 0x238]
cmp esi, edi
je 0x45c6e6
nop dword [eax]
lea eax, [ebp - 0x230]
push eax
mov eax, dword [ebp - 0x138]
push esi
mov ecx, dword [eax + 0x10a1c]
add ecx, 0x7e0
call fcn.0043ebd0
add esi, 0x10
cmp esi, edi
jne 0x45c6c0
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0xa
call fcn.0043ef90
lea ecx, [ebp - 0x23c]
call fcn.0043ef90
lea ecx, [ebp - 0x248]
call fcn.0043ef90
mov edi, dword [ebp - 0x138]
mov esi, dword [ebp - 0x114]
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x108], eax
push 0
push 0
push 0
push 0
call esi
mov ecx, dword [ebp - 0x128]
mov esi, eax
push 5
push ecx
push ecx
push esi
call dword [ebp - 0x10c]
push 4
push dword [ebp - 0x1f8]
push esi
push esi
call dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x180]
call dword [ebp - 0x144]
push 5
push esi
push esi
push dword [ebp - 0x180]
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x108]
call fcn.0052a52b
add esp, 4
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x1f8]
call dword [ebp - 0x140]
cmp eax, 1
je 0x45cbf0
mov eax, dword [0x5d1914]
movsx ecx, word [edi + 0x10aa4]
mov eax, dword [eax + 0xe48]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x45cbf0
xorps xmm0, xmm0
mov dword [ebp - 0x228], 0
movups xmmword [ebp - 0x248], xmm0
mov dword [ebp - 0x224], 0
movups xmmword [ebp - 0x238], xmm0
mov dword [ebp - 0x220], 0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x20c]
call fcn.0042b330
mov edx, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x238]
cmp edx, esi
je 0x45cbc9
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x230]
neg ecx
mov dword [ebp - 0x268], ecx
neg eax
lea ecx, [edx + 0xc]
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x118], ecx
nop word [eax + eax]
mov eax, dword [ecx - 4]
mov edx, dword [edi + 0x10a1c]
add eax, 4
mov dword [ebp - 0x170], eax
mov eax, dword [ecx]
add eax, 4
mov dword [ebp - 0x16c], eax
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffc
mov dword [ebp - 0x178], eax
mov eax, dword [ecx - 8]
add eax, 0xfffffffc
cmp dword [edx + 0xe3c8], 0
mov dword [ebp - 0x174], eax
je 0x45c91b
mov ecx, dword [ebp - 0x178]
lea eax, [ebp - 0x178]
mov esi, dword [ebp - 0x174]
add edx, 0x898
cmp ecx, dword [edx]
lea ecx, [ebp - 0x174]
cmovl eax, edx
cmp esi, dword [edx + 4]
mov esi, dword [ebp - 0x170]
mov eax, dword [eax]
mov dword [ebp - 0x27c], eax
lea eax, [edx + 4]
cmovl ecx, eax
cmp dword [edx + 8], esi
mov esi, dword [ebp - 0x238]
mov eax, dword [ecx]
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x278], eax
lea eax, [edx + 8]
cmovl ecx, eax
mov eax, dword [ecx]
lea ecx, [ebp - 0x16c]
mov dword [ebp - 0x274], eax
lea eax, [edx + 0xc]
mov edx, dword [ebp - 0x16c]
cmp dword [eax], edx
cmovl ecx, eax
mov eax, dword [ecx]
mov dword [ebp - 0x270], eax
movups xmm0, xmmword [ebp - 0x27c]
movups xmmword [ebp - 0x178], xmm0
push 0x579be0
call fcn.00535058
mov edx, dword [ebp - 0x16c]
add esp, 4
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x18c], eax
push edx
push dword [ebp - 0x170]
push dword [ebp - 0x174]
push ecx
call dword [ebp - 0x114]
push 0x579be0
mov dword [ebp - 0x108], eax
call fcn.00535058
add esp, 4
mov dword [ebp - 0x120], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x110], eax
call dword [ebp - 0x10c]
mov eax, dword [ebp - 0x110]
push 2
push dword [ebp - 0x108]
push eax
push eax
call dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x128]
call dword [ebp - 0x144]
mov eax, dword [ebp - 0x110]
push 5
push eax
push eax
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
mov eax, dword [ebp - 0x110]
push eax
call dword [ebp - 0x11c]
push dword [ebp - 0x120]
call fcn.0052a52b
add esp, 4
push dword [ebp - 0x108]
call dword [ebp - 0x11c]
push dword [ebp - 0x18c]
call fcn.0052a52b
add esp, 4
lea eax, [ebp - 0x26c]
lea ecx, [ebp - 0x178]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0043ced0
mov edx, dword [edi + 0x10a1c]
lea ecx, [ebp - 0x21c]
mov eax, dword [ebp - 0x21c]
add edx, 0x898
mov dword [ebp - 0x108], edx
cmp eax, dword [edx]
cmovl ecx, edx
mov eax, dword [ecx]
lea ecx, [edx + 4]
mov dword [ebp - 0x154], eax
lea edx, [ebp - 0x218]
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x218]
cmp eax, dword [ecx]
cmovl edx, ecx
mov eax, dword [edx]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x288], eax
mov ecx, dword [ebp - 0x108]
lea edx, [ebp - 0x214]
add ecx, 8
push 0x579be0
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x214]
cmovl edx, ecx
mov ecx, dword [ebp - 0x108]
add ecx, 0xc
mov eax, dword [edx]
lea edx, [ebp - 0x210]
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x110], eax
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x210]
cmovl edx, ecx
mov eax, dword [edx]
mov dword [ebp - 0x280], eax
movups xmm0, xmmword [ebp - 0x28c]
mov dword [ebp - 0x18c], eax
movups xmmword [ebp - 0x21c], xmm0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x13c], eax
push dword [ebp - 0x18c]
push dword [ebp - 0x110]
push dword [ebp - 0x120]
push dword [ebp - 0x154]
call dword [ebp - 0x114]
push 0x579be0
mov dword [ebp - 0x108], eax
call fcn.00535058
add esp, 4
mov dword [ebp - 0x154], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x128]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x110], eax
call dword [ebp - 0x10c]
mov eax, dword [ebp - 0x110]
push 2
push dword [ebp - 0x108]
push eax
push eax
call dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x128]
call dword [ebp - 0x144]
mov eax, dword [ebp - 0x110]
push 5
push eax
push eax
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
mov eax, dword [ebp - 0x110]
push eax
call dword [ebp - 0x11c]
push dword [ebp - 0x154]
call fcn.0052a52b
add esp, 4
push dword [ebp - 0x108]
call dword [ebp - 0x11c]
push dword [ebp - 0x13c]
call fcn.0052a52b
mov ecx, dword [ebp - 0x118]
add esp, 4
add ecx, 0x10
mov dword [ebp - 0x118], ecx
lea eax, [ecx - 0xc]
cmp eax, esi
jne 0x45c850
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0xa
call fcn.0043ef90
lea ecx, [ebp - 0x23c]
call fcn.0043ef90
lea ecx, [ebp - 0x248]
call fcn.0043ef90
jmp 0x45cc1a
push 0
push 0
push 0
push 0
push dword [ebp - 0x128]
call dword [ebp - 0x144]
mov eax, dword [ebp - 0x1f8]
push 5
push eax
push eax
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x180]
call dword [ebp - 0x140]
cmp eax, 1
je 0x45cdf1
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45cc48
mov eax, dword [ecx]
call dword [eax + 0x14]
mov esi, dword [edi + 0x10a1c]
mov byte [ebp - 0x1b4], 0
cmp byte [esi + 0x895], 0
je 0x45ccd1
mov eax, dword [edi + 0x54]
inc eax
mov dword [edi + 0x54], eax
cmp eax, 0xa
jle 0x45ccd1
push 0x579be0
mov dword [edi + 0x54], 0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x13c], eax
push dword [esi + 0x8a4]
push dword [esi + 0x8a0]
push dword [esi + 0x89c]
push dword [esi + 0x898]
call dword [ebp - 0x114]
push 2
mov esi, eax
mov eax, dword [ebp - 0x180]
push esi
push eax
push eax
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x11c]
push dword [ebp - 0x13c]
call fcn.0052a52b
add esp, 4
mov byte [ebp - 0x1b4], 1
mov eax, dword [edi + 0x10a1c]
add eax, 0x7e0
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.0043ef60
test eax, eax
je 0x45cddc
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
push 1
push 1
lea eax, [ebp - 0x168]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x180]
call fcn.0042a1c0
mov ecx, dword [ebp - 0x168]
mov edi, dword [ebp - 0x164]
mov dword [ebp - 0x154], ecx
cmp ecx, edi
jne 0x45cd45
mov byte [ebp - 4], 0xa
jmp 0x45cd81
mov esi, ecx
nop word [eax + eax]
push dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x1d4]
push esi
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.0043d500
add esi, 0x10
cmp esi, edi
jne 0x45cd50
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x154]
test ecx, ecx
je 0x45cdd6
mov edx, dword [ebp - 0x160]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff0
cmp edx, 0x1000
jb 0x45cdae
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d3f1
push edx
push ecx
call fcn.005247a6
mov dword [ebp - 0x160], 0
add esp, 8
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x168], 0
mov edi, dword [ebp - 0x138]
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45cdf1
mov eax, dword [ecx]
call dword [eax + 0x18]
mov eax, dword [edi + 0x10a2c]
mov dword [ebp - 0x13c], eax
mov eax, dword [eax + 0xbc]
mov esi, dword [eax]
cmp esi, eax
je 0x45ce35
mov edi, dword [ebp - 0x13c]
nop
mov edx, dword [edi]
mov ecx, edi
movzx eax, word [esi + 8]
push eax
mov eax, dword [edx + 0x48]
call eax
mov byte [eax + 0x39c], 1
mov esi, dword [esi]
cmp esi, dword [edi + 0xbc]
jne 0x45ce10
mov edi, dword [ebp - 0x138]
cmp byte [edi + 0x10ab5], 0
jne 0x45ce69
mov ecx, dword [edi + 0x10a2c]
push 1
mov eax, dword [ecx]
call dword [eax + 0x78]
mov ecx, dword [edi + 0x10a1c]
mov eax, 0x63
mov byte [edi + 0x10ab5], 1
mov edx, 1
cmp dword [ecx], eax
cmove eax, edx
mov dword [ecx], eax
push 0x579be0
call fcn.00535058
add esp, 4
mov dword [ebp - 0x1c0], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x10c]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x1c4], eax
call esi
mov eax, dword [ebp - 0x1c4]
push 1
push dword [ebp - 0x194]
push eax
push eax
call esi
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x1c4]
mov ecx, dword [ebp - 0x198]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x1c4]
mov esi, dword [ebp - 0x11c]
call esi
push dword [ebp - 0x1c0]
call fcn.0052a52b
push 0x579be0
call fcn.00535058
add esp, 8
mov dword [ebp - 0x1c8], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x114]
mov ecx, dword [ebp - 0x1d4]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x1cc], eax
call dword [ebp - 0x10c]
mov eax, dword [ebp - 0x1cc]
push 1
push dword [ebp - 0x194]
push eax
push eax
call dword [ebp - 0x10c]
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x1cc]
mov ecx, dword [ebp - 0x198]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
push dword [ebp - 0x1cc]
call esi
push dword [ebp - 0x1c8]
call fcn.0052a52b
mov ecx, dword [edi + 0x10a2c]
add esp, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x88]
call eax
mov esi, eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x1f8]
call dword [ebp - 0x140]
cmp eax, 1
je 0x45cf9e
mov edx, dword [esi]
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x1f8]
mov ecx, esi
push eax
call dword [edx + 0xc]
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x208]
call dword [ebp - 0x140]
cmp eax, 1
je 0x45cfc1
mov eax, dword [esi]
lea ecx, [ebp - 0x208]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x200]
call dword [ebp - 0x140]
cmp eax, 1
je 0x45cfe4
mov eax, dword [esi]
lea ecx, [ebp - 0x200]
push ecx
mov ecx, esi
call dword [eax + 8]
push dword [ebp - 0x1d4]
mov esi, dword [ebp - 0x11c]
call esi
push dword [ebp - 0x1d0]
call fcn.0052a52b
add esp, 4
push dword [ebp - 0x1dc]
call esi
push dword [ebp - 0x1d8]
call fcn.0052a52b
add esp, 4
push dword [ebp - 0x180]
call esi
push dword [ebp - 0x17c]
call fcn.0052a52b
add esp, 4
mov byte [ebp - 4], 6
push dword [ebp - 0x24c]
call dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x144]
push 0
push 0
push 0
push 0
push dword [ebp - 0x208]
call esi
push 0
push 0
push 0
push 0
push dword [ebp - 0x1f8]
call esi
push 0
push 0
push 0
push 0
push dword [ebp - 0x200]
call esi
mov eax, dword [edi + 0x10a1c]
cmp byte [eax + 0xe8e4], 0
je 0x45d156
mov eax, dword [0x5cf18c]
test eax, eax
jne 0x45d0ae
push 0x20
call fcn.00524776
add esp, 4
mov dword [ebp - 0x2a0], eax
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.00484690
mov dword [0x5cf18c], eax
cmp byte [eax + 0x11], 0
jne 0x45d0de
mov cl, byte [eax + 0xc]
test cl, cl
je 0x45d11a
cmp byte [eax + 9], 0
jne 0x45d0de
cmp byte [eax + 7], 0
jne 0x45d0cd
cmp byte [eax + 8], 0
je 0x45d0d3
cmp byte [eax + 0xb], 0
je 0x45d0de
cmp cl, 1
jne 0x45d11a
cmp byte [eax + 0xb], 0
jne 0x45d11a
mov eax, dword [edi + 0x10a1c]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x45d156
cmp dword [ecx + 0x10], 0
jne 0x45d11a
mov byte [ebp - 4], 4
push dword [ebp - 0x250]
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
call dword [ebp - 0x1bc]
jmp case.default.0x45b97f
call dword [ebp - 0x1e0]
mov esi, eax
mov ecx, esi
sub ecx, dword [edi + 0x10ab8]
cmp ecx, 0x1f4
jbe 0x45d156
mov eax, dword [edi + 0x10a1c]
push 2
push 0xf170
push 0x112
push dword [eax + 0xe404]
call dword [ebp - 0x130]
mov dword [edi + 0x10ab8], esi
mov byte [ebp - 4], 4
push dword [ebp - 0x250]
call dword [ebp - 0x1bc]
jmp case.default.0x45b97f
cmp esi, 0xffffffff
jne case.default.0x45b97f
mov byte [edi + 0x10a20], 0
cmp byte [edi + 0x10a20], 0
je 0x45d18e
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x15c]
jmp 0x45b920
mov ecx, dword [edi + 0x10a2c]
mov byte [edi + 0x10a20], 0
mov eax, dword [ecx]
call dword [eax + 0x28]
mov eax, dword [ebp - 0x148]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [0x5c6495], 1
test eax, eax
je 0x45d1d5
push 0x1388
push eax
call dword [ebp - 0x158]
push dword [ebp - 0x148]
call esi
mov dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x188]
test eax, eax
je 0x45d1f4
push 0x1388
push eax
call dword [ebp - 0x158]
mov eax, dword [ebp - 0x188]
push eax
call esi
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x45d213
push 0x1388
push eax
call dword [ebp - 0x158]
mov eax, dword [ebp - 0x14c]
push eax
call esi
mov eax, dword [edi + 0x10a1c]
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread_n
push 9
push 0x5c3db0
mov dword [eax + 0xe410], 0
call fcn.0041dde0
mov eax, dword [0x5d1914]
add esp, 0xc
mov esi, dword [edi + 0x10a1c]
cmp dword [eax + 0x798], 0
je 0x45d279
cmp dword [eax + 0x79c], 0
jne 0x45d272
movzx eax, byte [esi + 0xe8e5]
push eax
push 1
push 0
call fcn.00428540
mov byte [esi + 0xe8e5], al
mov byte [esi + 0xe960], 0
mov byte [esi + 0xe96a], 0
push 1
push ecx
mov ecx, dword [esi + 0xe3c4]
mov byte [esi + 0xe96a], 0
call fcn.0048d5f0
push connect
call dword [ebp - 0x1b8]
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:SetBlockInputState_n
push 9
push 0x5c3db0
call fcn.0041dde0
mov cl, 0xa0
call fcn.0047a6e0
mov cl, 0xa2
call fcn.0047a6e0
mov cl, 0xa4
call fcn.0047a6e0
mov cl, 0xa1
call fcn.0047a6e0
mov cl, 0xa3
call fcn.0047a6e0
mov cl, 0xa5
call fcn.0047a6e0
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:ClearShiftKeys_n
push 9
push 0x5c3db0
call fcn.0041dde0
add esp, 0x18
push 0
push str.blackscreen
call dword [ebp - 0x1e4]
test eax, eax
je 0x45d306
push 0
push 0
push 0x10
push eax
call dword [ebp - 0x130]
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:g_DesktopThread_runningfalse_n
push 9
push 0x5c3db0
mov byte [0x5c64ac], 0
call fcn.0041dde0
mov ecx, dword [edi + 0x10a1c]
add esp, 0xc
call fcn.00454560
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:m_desktop__Shutdown_n
push 9
push 0x5c3db0
call fcn.0041dde0
mov esi, dword [ebp - 0x11c]
add esp, 0xc
push dword [ebp - 0x128]
call esi
push dword [ebp - 0x124]
call fcn.0052a52b
add esp, 4
mov dword [ebp - method.rfb::ClippedUpdateTracker.virtual_0], vtable.rfb::ClippedUpdateTracker.0
push dword [ebp - 0x194]
call esi
push dword [ebp - 0x190]
call fcn.0052a52b
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 - 0x1f8]
call esi
push dword [ebp - 0x1f4]
call fcn.0052a52b
add esp, 4
push dword [ebp - 0x200]
call esi
push dword [ebp - 0x1fc]
call fcn.0052a52b
ror dword [eax + eax], 1
add esp, 4
push dword [ebp - 0x208]
call esi
push dword [ebp - 0x204]
call fcn.0052a52b
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.00524763
mov esp, ebp
pop ebp
ret 4
call fcn.0052a4da
nop
jbe 0x45d3b6
inc ebp
add byte [edx + edi*4 - 0x44f4ffbb], ah
inc ebp
add byte [eax], cl
mov esp, 0xbb220045
inc ebp
add ah, cl
int3