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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54970c
mov eax, dword fs:[0]
push eax
sub esp, 0x2c8
mov eax, dword [0x5b0008]
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 - 0x17c], edi
mov eax, dword [0x5bdff0]
mov eax, dword [eax + 0xe60]
cmp eax, 1
jne 0x454ca3
mov eax, dword [0x5bb8f8]
test eax, eax
jne 0x454c3c
push 0x20
call fcn.005187ac
add esp, 4
mov dword [ebp - 0x154], eax
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.0047a120
mov dword [ebp - 4], 0xffffffff
mov dword [0x5bb8f8], eax
cmp byte [eax + 8], 0
mov ecx, eax
jne 0x454c9a
test ecx, ecx
jne 0x454c75
push 0x20
call fcn.005187ac
add esp, 4
mov dword [ebp - 0x154], eax
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.0047a120
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x5bb8f8], ecx
cmp byte [ecx + 7], 0
jne 0x454c9a
call fcn.00426a90
cmp byte [eax + 6], 0
jne 0x454c9a
call fcn.00426a90
cmp byte [eax + 4], 0
jne 0x454c9a
mov al, 1
mov byte [0x5b2c30], al
jmp 0x454cad
xor al, al
mov byte [0x5b2c30], al
jmp 0x454cad
cmp eax, 2
sete byte [0x5b2c30]
push str.vncDesktopThread::run_undetached_:_Hook_changed_1_n
push 0
push 0x5b0d48
mov byte [edi + 0x10ac0], 1
call fcn.0041ccb0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov ecx, dword [edi + 0x10a28]
push str.vncDesktopThread::run_undetached_:_Hook_changed_2_n
push 0
push 0x5b0d48
mov dword [ecx + 0xe970], eax
call fcn.0041ccb0
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 - 0x1dc], eax
mov eax, dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x1b4], eax
je 0x454dcd
push str.vncDesktop::KillScreenSaver_:_KillScreenSaver..._n
push 9
push 0x5b0d48
call fcn.0041ccb0
mov eax, dword [ebp - 0xf4]
add esp, 0xc
sub eax, 1
je 0x454da7
sub eax, 1
jne 0x454dcd
push 0x81
push eax
push eax
push str.Screen_saver
call dword [sym.imp.USER32.dll_OpenDesktopA]
mov esi, eax
test esi, esi
je 0x454dc7
push str.vncDesktop::KillScreenSaver_:_Killing_ScreenSaver_n
push 9
push 0x5b0d48
call fcn.0041ccb0
add esp, 0xc
push 0
push 0x44e610
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 0x454dcd
push 0
push str.WindowsScreenSaverClass
call dword [ebp - 0x1b4]
test eax, eax
je 0x454dcd
push 0
push 0
push 0x10
push eax
call dword [ebp - 0x1dc]
jmp 0x454dcd
mov esi, dword [sym.imp.USER32.dll_CloseDesktop]
push ecx
push 0
xor dl, dl
mov cl, 0x11
call fcn.00431c40
add esp, 4
xor dl, dl
mov cl, 0x11
push 2
call fcn.00431c40
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 8
mov dword [ebp - 0x19c], eax
push 0x1f4
call eax
mov ecx, dword [edi + 0x10a28]
call fcn.0044de00
mov dword [ebp - 0x130], eax
test eax, eax
je 0x454e47
mov ecx, dword [edi + 0x10a28]
mov ecx, dword [ecx + 0xe970]
call fcn.004251d0
mov ecx, dword [edi + 0x10a28]
mov ecx, dword [ecx + 0xe96c]
test ecx, ecx
je 0x454e35
push ecx
call esi
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x130]
call dword [eax + 0x10]
jmp 0x456f9d
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x10]
mov eax, dword [0x5bdff0]
mov ecx, dword [edi + 0x10a28]
push dword [eax + 0xe50]
push dword [eax + 0xe54]
call fcn.00450b70
push ecx
lea ecx, [ebp - 0x234]
mov byte [edi + 0x10ac1], 0
call fcn.00429b00
mov dword [ebp - 4], 2
mov esi, dword [edi + 0x10a28]
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x130], eax
mov eax, dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [ebp - 0x118], 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 - 0x234]
push 0x569fa8
mov dword [ebp - 0x190], eax
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x188], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x118]
push 5
push esi
push esi
mov dword [ebp - 0x18c], 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 - 0x120], eax
call eax
push dword [ebp - 0x130]
call fcn.0051cad9
push 0x569fa8
mov byte [ebp - 0x210], 1
call fcn.0052bf02
add esp, 8
mov dword [ebp - 0x124], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x118]
mov dword [ebp - 0x128], eax
mov byte [ebp - 4], 4
mov esi, dword [edi + 0x10a28]
push 0x569fa8
call fcn.0052bf02
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 - 0x118]
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 - 0x140], eax
call eax
push 5
push esi
push esi
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x120]
push dword [ebp - 0x130]
call fcn.0051cad9
mov edx, dword [edi + 0x10a28]
add esp, 4
mov ecx, dword [edi + 0x10a38]
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 - 0x258]
push eax
mov eax, dword [sym.imp.USER32.dll_GetCursorPos]
mov dword [ebp - 0x24c], eax
call eax
mov edx, dword [edi + 0x10a28]
mov eax, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x254]
mov dword [edi + 0x10a30], eax
mov dword [edi + 0x10a34], ecx
mov eax, dword [edx + 0xe3c8]
test eax, eax
je 0x455096
cmp dword [eax + 0x10], 0
je 0x455082
cmp dword [edx + 0x890], 0
je 0x455096
mov ecx, dword [edi + 0x10a38]
push dword [edx + 0xe8c0]
push dword [edx + 0xe8bc]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0x7fc], 4
mov dword [eax + 0x800], 0
jmp 0x455096
mov dword [edx + 0xe8f0], 1
mov dword [edx + 0xe8f4], 1
mov eax, dword [edi + 0x10a28]
xor esi, esi
mov dword [eax + 0xe8f4], 1
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0xe894], 0
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0xe8f0], 0
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0xe8f8], 0
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0xe8fc], 0
mov ecx, dword [edi + 0x10a38]
mov eax, dword [ecx]
mov eax, dword [eax + 0x7c]
call eax
test eax, eax
jne 0x455133
nop dword [eax]
push 0x64
call dword [ebp - 0x19c]
inc esi
cmp esi, 0x32
jg 0x455133
push str.vncDesktopThread::run_undetached_:_Wait_for_viewer_init__n
push 0
push 0x5b0d48
call fcn.0041ccb0
mov ecx, dword [edi + 0x10a38]
add esp, 0xc
mov eax, dword [ecx]
mov eax, dword [eax + 0x7c]
call eax
test eax, eax
je 0x455100
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
test eax, eax
setne dl
mov byte [edi + 0x10a6c], dl
test eax, eax
jne 0x455173
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x455173
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dl, byte [edi + 0x10a6c]
test dl, dl
je 0x4551a4
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x455196
mov eax, dword [ecx]
call dword [eax + 0x10]
mov dl, byte [edi + 0x10a6c]
test dl, dl
je 0x4551a4
mov ecx, dword [edi + 0x10a38]
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 - 0x1b0], esi
call esi
mov dword [edi + 0x10a74], eax
call esi
mov dword [edi + 0x10a78], eax
xor eax, eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1a0], eax
mov byte [0x5b31a4], al
mov eax, dword [edi + 0x10a28]
mov byte [edi + 0x10a2c], 1
push dword [eax + 0xe398]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [edi + 0x10a28]
push 0x569fa8
call fcn.0052bf02
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 - 0x118]
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 - 0x120]
push dword [ebp - 0x130]
call fcn.0051cad9
add esp, 4
cmp byte [0x5b31a6], 0
jne 0x455313
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x4552b9
cmp dword [ecx + 0x10], 0
je 0x4552a5
cmp dword [eax + 0x890], 0
je 0x4552b9
call fcn.00426a90
cmp byte [eax + 6], 0
jne 0x4552b9
call fcn.00426a90
cmp byte [eax + 4], 0
jne 0x4552b9
push 1
push 1
jmp 0x4552fb
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
mov eax, dword [0x5bb8f8]
test eax, eax
jne 0x4552e6
push 0x20
call fcn.005187ac
add esp, 4
mov dword [ebp - 0x154], eax
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.0047a120
mov byte [ebp - 4], 4
mov dword [0x5bb8f8], eax
cmp byte [eax + 6], 0
jne 0x455313
call fcn.00426a90
cmp byte [eax + 4], 0
jne 0x455313
push 1
push 0
mov ecx, dword [edi + 0x10a28]
lea eax, [ebp - 0x128]
push eax
add ecx, 0x7e0
call fcn.00437620
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0xe410], 1
xor eax, eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x148], eax
mov eax, dword [0x5bdff0]
cmp dword [eax + 0xa58], 0
je 0x455354
mov esi, dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
push 0x80000043
mov dword [ebp - 0x1e0], esi
call esi
jmp 0x455366
mov eax, dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
push connect
mov dword [ebp - 0x1e0], eax
call eax
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x4553ef
cmp dword [ecx + 0x10], 0
je 0x4553db
cmp dword [eax + 0x890], 0
je 0x4553ef
call fcn.00426a90
cmp byte [eax + 6], 0
jne 0x4553ef
call fcn.00426a90
cmp byte [eax + 4], 0
jne 0x4553ef
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea eax, [ebp - 0x28c]
push eax
push 0
push edi
push 0x454ad0
push 0
push 0
call esi
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0x290]
push eax
push 0
push edi
push 0x454b50
push 0
push 0
call esi
mov ecx, 0x3e8
jmp 0x4554e7
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x4554c9
cmp dword [ecx + 0x10], 0
je 0x4554b5
cmp dword [eax + 0x890], 0
je 0x4554c9
call fcn.00426a90
cmp byte [eax + 6], 0
jne 0x455434
call fcn.00426a90
cmp byte [eax + 4], 0
je 0x4554c9
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [edi + 0x10a28]
mov dword [ecx + 0xe388], eax
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [edi + 0x10a28]
mov dword [ecx + 0xe38c], eax
mov ecx, 0x3e8
cmp byte [edi + 0x10a6c], 0
mov dword [ebp - 0x180], ecx
je 0x4554f3
mov eax, dword [edi + 0x10a28]
cmp dword [eax + 0xe3c8], 0
je 0x4554f3
lea eax, [ebp - 0x2a4]
push eax
push 0
push edi
push 0x454b50
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x3e8
jmp 0x4554ed
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
lea eax, [ebp - 0x2a0]
push eax
push 0
push edi
push 0x454b50
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x21
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x148], eax
cmp byte [edi + 0x10a2c], 0
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x150], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x130], eax
je 0x456d60
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_EnterCriticalSection]
mov dword [ebp - 0x1a8], eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x1b8], eax
mov eax, dword [sym.imp.GDI32.dll_GetRgnBox]
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x13c], eax
nop
cmp byte [0x5b31af], 0
jne 0x456d60
mov eax, dword [edi + 0x10a28]
push ecx
push 0
add eax, 0xe370
push eax
push 8
call edx
mov ecx, dword [edi + 0x10a28]
mov esi, eax
push 0x2710
push dword [ecx + 0xe398]
call dword [ebp - 0x150]
cmp eax, 0x102
jne 0x455597
mov byte [edi + 0x10a2c], 0
cmp esi, 5
ja 0x4556e4
je 0x4556c4
cmp esi, 4
ja case.default.0x4555af
jmp dword [esi*4 + 0x456fc4]
mov eax, dword [edi + 0x10a28]
push dword [eax + 0xe374]
call dword [ebp - 0x134]
mov eax, dword [edi + 0x10a28]
push 2
mov byte [eax + 0xe3a8], 1
mov eax, dword [edi + 0x10a28]
push dword [eax + 0xe3a0]
mov eax, dword [ebp - 0x128]
push eax
push eax
call dword [ebp - 0x10c]
mov eax, dword [edi + 0x10a28]
push 0
push 0
push 0
push 0
push dword [eax + 0xe3a0]
call dword [ebp - 0x140]
mov eax, dword [edi + 0x10a28]
mov byte [eax + 0xe3a8], 0
jmp case.default.0x4555af
mov eax, dword [edi + 0x10a28]
push dword [eax + 0xe378]
call dword [ebp - 0x134]
jmp case.default.0x4555af
mov eax, dword [edi + 0x10a28]
push 0x569fa8
mov byte [eax + 0xe3a8], 1
mov esi, dword [edi + 0x10a28]
call fcn.0052bf02
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 - 0x118]
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 - 0x120]
push dword [ebp - 0x108]
call fcn.0051cad9
mov eax, dword [edi + 0x10a28]
add esp, 4
push dword [eax + 0xe380]
call dword [ebp - 0x134]
mov eax, dword [edi + 0x10a28]
mov byte [eax + 0xe3a8], 0
jmp case.default.0x4555af
mov eax, dword [edi + 0x10a28]
mov esi, dword [ebp - 0x134]
mov byte [edi + 0x10a2c], 0
push dword [eax + 0xe384]
call esi
jmp case.default.0x4555af
cmp esi, 0x102
ja 0x456d3a
je case.0x4555af.0
sub esi, 6
je 0x455762
sub esi, 1
jne case.default.0x4555af
mov eax, dword [edi + 0x10a28]
mov esi, dword [ebp - 0x134]
push dword [eax + 0xe38c]
call esi
jmp 0x455720
mov esi, dword [ebp - 0x134]
mov eax, dword [edi + 0x10a68]
test eax, eax
je 0x45574f
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2c0], 0x14
push ecx
call eax
mov ecx, dword [edi + 0x10a28]
mov eax, dword [ebp - 0x2b8]
mov dword [ecx + 0xe888], eax
mov eax, dword [edi + 0x10a28]
push dword [eax + 0xe37c]
call esi
jmp case.default.0x4555af
mov eax, dword [edi + 0x10a28]
push dword [eax + 0xe388]
call dword [ebp - 0x134]
push str.ddengine
push 0x10
push 0x5b35b0
call fcn.0052c4ee
add esp, 0xc
mov eax, dword [edi + 0x10a28]
push dword [eax + 0xe370]
call dword [ebp - 0x134]
mov eax, dword [0x5bdff0]
cmp dword [eax + 0xe48], 0x64
je 0x455818
mov eax, dword [ebp - 0x1a4]
cmp eax, 0xa
je 0x4557bc
test eax, eax
je 0x4557bc
cmp eax, 5
jne 0x455822
lea ecx, [edi + 0x10a84]
call fcn.0041d2f0
mov esi, dword [edi + 0x10ab4]
mov word [edi + 0x10ab0], ax
movsx ecx, ax
mov eax, dword [0x5bdff0]
cmp ecx, dword [eax + 0xe48]
lea eax, [esi + 0xa]
jg 0x4557ea
lea eax, [esi - 0xa]
mov ecx, eax
lea esi, [edi + 0x10ab4]
mov dword [esi], ecx
mov ecx, dword [edi + 0x10abc]
cmp eax, ecx
jae 0x455806
mov dword [edi + 0x10ab4], ecx
mov eax, ecx
mov ecx, dword [edi + 0x10ab8]
cmp eax, ecx
jbe 0x455822
mov dword [edi + 0x10ab4], ecx
jmp 0x455822
mov dword [edi + 0x10ab4], 0x19
call dword [ebp - 0x1b0]
mov edx, dword [edi + 0x10a74]
mov ecx, eax
mov esi, dword [edi + 0x10ab4]
sub ecx, edx
mov dword [edi + 0x10a70], eax
cmp ecx, esi
jae 0x45584d
sub edx, eax
add edx, esi
push edx
call dword [ebp - 0x19c]
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x455897
cmp dword [ecx + 0x10], 0
je 0x455883
cmp dword [eax + 0x890], 0
je 0x455897
mov eax, dword [edi]
lea ecx, [ebp - 0x194]
push ecx
lea ecx, [ebp - 0x128]
push ecx
mov ecx, edi
call dword [eax + 0x14]
jmp 0x455897
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
mov eax, dword [edi + 0x10a28]
cmp dword [eax + 0xe8f4], 0
je 0x45590b
cmp dword [eax + 0xe8f0], 0
jne 0x45590b
push str.vncDesktopThread::run_undetached_:_Hook_changed__n
push 0
push 0x5b0d48
call fcn.0041ccb0
mov eax, dword [edi + 0x10a28]
add esp, 0xc
push 0
push dword [eax + 0xe8ec]
push 0x8007
push dword [eax + 0xe404]
call dword [ebp - 0x1dc]
mov eax, dword [edi + 0x10a28]
cmp dword [eax + 0xe8ec], 0
je 0x455901
mov dword [eax + 0xe88c], 0
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0xe8f4], 0
mov ecx, dword [edi + 0x10a38]
mov eax, dword [ecx]
mov eax, dword [eax + 0x128]
call eax
test al, al
jne 0x45594a
lea eax, [ebp - 0x194]
mov ecx, edi
push eax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.00453ad0
test al, al
je 0x456d3f
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x11c]
call eax
mov ecx, dword [edi + 0x10a28]
mov byte [ecx + 0x894], al
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x120]
call eax
mov ecx, dword [edi + 0x10a28]
mov dword [ebp - 0x2a8], 0x113
mov byte [ecx + 0x895], al
mov eax, dword [edi + 0x10a28]
add eax, 0xe420
push eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x2ac], eax
call dword [ebp - 0x1a8]
mov byte [ebp - 4], 6
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
test eax, eax
jne 0x4559dd
cmp byte [edi + 0x10ac1], al
jne 0x456d28
mov eax, dword [edi + 0x10a70]
mov dword [edi + 0x10a74], eax
lea eax, [ebp - 0x260]
push eax
mov byte [ebp - 0x144], 0
call dword [ebp - 0x24c]
test eax, eax
je 0x455a73
mov ecx, dword [ebp - 0x260]
mov eax, dword [ebp - 0x25c]
cmp ecx, dword [edi + 0x10a30]
jne 0x455a1d
cmp eax, dword [edi + 0x10a34]
je 0x455a73
mov dword [edi + 0x10a34], eax
mov eax, dword [edi + 0x10a28]
mov dword [edi + 0x10a30], ecx
mov byte [ebp - 0x144], 1
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov eax, dword [edi + 0x10a68]
test eax, eax
je 0x455a73
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 0x14
push ecx
call eax
mov ecx, dword [edi + 0x10a28]
mov eax, dword [ebp - 0x2cc]
mov dword [ecx + 0xe888], eax
mov edx, dword [edi + 0x10a28]
xor al, al
mov byte [ebp - 0x129], al
cmp dword [edx + 0x890], 0
jne 0x455aad
lea eax, [ebp - 0x194]
mov ecx, edx
push eax
call fcn.00450230
mov edx, dword [edi + 0x10a28]
mov byte [ebp - 0x129], al
cmp dword [edx + 0x890], 0
je 0x455b0f
cmp byte [edx + 0xe93c], 0
je 0x455b0f
cmp dword [edx + 0xe934], 0
jne 0x455b0f
mov eax, dword [0x5bdff0]
xor ecx, ecx
cmp byte [ebp - 0x144], cl
je 0x455aea
cmp dword [eax + 0xe30], ecx
mov dword [edx + 0x800], 0
setne cl
inc ecx
mov dword [edx + 0x7fc], ecx
jmp 0x455b4e
cmp dword [eax + 0xe30], ecx
mov dword [edx + 0x800], 0
setne cl
lea ecx, [ecx*2 + 2]
mov dword [edx + 0x7fc], ecx
jmp 0x455c65
test al, al
jne 0x455b41
push dword [ebp - 0x144]
lea eax, [ebp - 0x1a0]
mov ecx, edi
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.00454770
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x1a4], eax
cmp byte [ebp - 0x144], 0
je 0x455c65
mov esi, dword [edi + 0x10a28]
cmp dword [esi + 0x890], 0
jne 0x455c65
mov ecx, dword [esi + 0xe3ac]
cmp ecx, dword [esi + 0xe3b4]
jge 0x455c65
mov eax, dword [esi + 0xe3b0]
cmp eax, dword [esi + 0xe3b8]
jge 0x455c65
mov eax, dword [esi + 0xe3b4]
mov edx, dword [esi + 0xe438]
sub eax, ecx
mov dword [ebp - 0x114], 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 - 0x11c], 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 - 0x114]
push eax
lea edx, [ebp - 0x11c]
lea ecx, [ebp - 0x110]
call fcn.00453010
add esp, 0x18
test al, al
je 0x455c65
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x108]
add dword [ebp - 0x114], ecx
add esi, dword [ebp - 0x11c]
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x108], eax
push esi
push dword [ebp - 0x114]
push dword [ebp - 0x11c]
push dword [ebp - 0x110]
call dword [ebp - 0x118]
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 - 0x120]
push dword [ebp - 0x108]
call fcn.0051cad9
add esp, 4
mov eax, dword [edi + 0x10a28]
add eax, 0xe420
mov dword [ebp - 0x294], 0x114
push eax
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x298], eax
call dword [ebp - 0x1a8]
mov byte [ebp - 4], 7
mov eax, dword [0x5bdff0]
movsx ecx, word [edi + 0x10ab0]
mov eax, dword [eax + 0xe48]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x455cd0
mov ecx, dword [edi + 0x10a28]
cmp dword [ecx + 0x890], 0
jne 0x455cd0
cmp byte [ebp - 0x129], 0
jne 0x455cd0
lea eax, [ebp - 0x194]
push eax
call fcn.00450230
mov al, byte [0x5b31a6]
test al, al
je 0x455d1b
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
call eax
test al, al
je 0x455d12
mov ecx, dword [edi + 0x10a28]
push dword [ecx + 0x824]
push dword [ecx + 0x844]
mov ecx, dword [ecx + 0x848]
call fcn.0044f3b0
jmp 0x455d80
mov al, byte [0x5b31a6]
test al, al
jne 0x455d80
mov ecx, dword [edi + 0x10a28]
mov edx, dword [ecx + 0xe3c8]
test edx, edx
je 0x455d60
cmp dword [edx + 0x10], 0
je 0x455d46
cmp dword [ecx + 0x890], 0
je 0x455d60
movzx eax, byte [edi + 0x10ac0]
push eax
push 1
jmp 0x455d6e
mov dword [ecx + 0xe8f0], 1
mov dword [ecx + 0xe8f4], 1
mov ecx, dword [edi + 0x10a28]
test al, al
jne 0x455d80
movzx eax, byte [edi + 0x10ac0]
push eax
push 0
lea eax, [ebp - 0x128]
add ecx, 0x7e0
push eax
call fcn.00437620
mov eax, dword [edi + 0x10a28]
mov byte [edi + 0x10ac0], 1
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
xor ecx, ecx
cmp byte [edi + 0x10a6c], cl
sete cl
cmp ecx, eax
jne 0x455deb
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
test eax, eax
mov eax, dword [edi + 0x10a28]
setne dl
mov byte [edi + 0x10a6c], dl
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x455deb
mov eax, dword [ecx]
test dl, dl
jne 0x455de8
call dword [eax + 0xc]
jmp 0x455deb
call dword [eax + 0x10]
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
call eax
mov ecx, dword [edi + 0x10a28]
test eax, eax
je 0x455f8d
mov eax, dword [ecx + 0xe888]
cmp eax, dword [ecx + 0xe88c]
jne 0x455e35
mov eax, dword [ecx + 0x84c]
mov dword [ecx + 0x84c], 0
test eax, eax
je 0x4560d9
mov ecx, dword [edi + 0x10a28]
mov eax, dword [ecx + 0xe888]
mov dword [ecx + 0xe88c], eax
mov eax, dword [edi + 0x10a28]
mov dword [eax + 0x804], 1
mov ecx, dword [edi + 0x10a28]
cmp dword [ecx + 0x890], 0
je 0x455e6f
cmp byte [ecx + 0xe93c], 0
jne 0x455e80
add ecx, 0x7e0
call fcn.00438740
mov ecx, dword [edi + 0x10a28]
mov ecx, dword [ecx + 0xe3c4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov esi, dword [edi + 0x10a28]
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 - 0x11c], ecx
mov ecx, dword [esi + 0xe3b0]
sub eax, ecx
mov dword [ebp - 0x114], 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 - 0x114]
push eax
lea eax, [ebp - 0x108]
push eax
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x11c]
call fcn.00453010
add esp, 0x18
test al, al
je 0x455f7a
mov ecx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x114]
add dword [ebp - 0x108], ecx
add esi, dword [ebp - 0x110]
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x114], eax
push esi
push dword [ebp - 0x108]
push dword [ebp - 0x110]
push dword [ebp - 0x11c]
call dword [ebp - 0x118]
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 - 0x120]
push dword [ebp - 0x114]
call fcn.0051cad9
add esp, 4
mov ecx, dword [edi + 0x10a38]
mov eax, dword [ecx]
call dword [eax + 0x15c]
jmp 0x4560d9
cmp dword [ecx + 0x890], 0
je 0x455fa3
cmp byte [ecx + 0xe93c], 0
jne 0x4560d9
add ecx, 0x7e0
call fcn.00438740
cmp byte [ebp - 0x144], 0
je 0x4560d9
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov esi, dword [edi + 0x10a28]
mov ecx, dword [esi + 0xe3ac]
cmp ecx, dword [esi + 0xe3b4]
jge 0x4560d9
mov eax, dword [esi + 0xe3b0]
cmp eax, dword [esi + 0xe3b8]
jge 0x4560d9
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 - 0x11c], ecx
mov ecx, dword [esi + 0xe3b0]
sub eax, ecx
mov dword [ebp - 0x114], 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 - 0x114]
push eax
lea eax, [ebp - 0x108]
push eax
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x11c]
call fcn.00453010
add esp, 0x18
test al, al
je 0x4560d9
mov ecx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x114]
add dword [ebp - 0x108], ecx
add esi, dword [ebp - 0x110]
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x114], eax
push esi
push dword [ebp - 0x108]
push dword [ebp - 0x110]
push dword [ebp - 0x11c]
call dword [ebp - 0x118]
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 - 0x120]
push dword [ebp - 0x114]
call fcn.0051cad9
add esp, 4
push 0x569fa8
call fcn.0052bf02
mov esi, dword [ebp - 0x118]
add esp, 4
mov dword [ebp - 0x164], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x168], eax
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x1d4], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x1d8], eax
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x1cc], eax
push 0
push 0
push 0
push 0
call esi
mov dword [ebp - 0x1d0], eax
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0xa
push eax
push dword [ebp - 0x220]
call dword [ebp - 0x13c]
cmp eax, 1
je 0x4562a5
xorps xmm0, xmm0
mov dword [ebp - 0x1ec], 0
movups xmmword [ebp - 0x20c], xmm0
mov dword [ebp - 0x1e8], 0
movups xmmword [ebp - 0x1fc], xmm0
mov dword [ebp - 0x1e4], 0
lea eax, [ebp - 0x20c]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x234]
call fcn.0042a350
mov esi, dword [ebp - 0x200]
mov dword [ebp - 0x108], esi
cmp esi, dword [ebp - 0x1fc]
je 0x4561ea
nop
mov ecx, dword [edi + 0x10a28]
lea eax, [ebp - 0x1f4]
push eax
push esi
add ecx, 0x7e0
call fcn.00438410
add esi, 0x10
cmp esi, dword [ebp - 0x1fc]
jne 0x4561c0
mov esi, dword [ebp - 0x108]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1ec]
test edx, edx
je 0x45622b
mov ecx, dword [ebp - 0x1e4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x456221
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push ecx
push edx
call fcn.005187dc
add esp, 8
test esi, esi
je 0x456262
mov ecx, dword [ebp - 0x1f8]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x456258
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push ecx
push esi
call fcn.005187dc
add esp, 8
mov edx, dword [ebp - 0x20c]
test edx, edx
je 0x45629f
mov ecx, dword [ebp - 0x204]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x456295
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push ecx
push edx
call fcn.005187dc
add esp, 8
mov esi, dword [ebp - 0x118]
push 0x569fa8
call fcn.0052bf02
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 - 0x220]
push esi
push esi
call dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x168]
call dword [ebp - 0x140]
push 5
push esi
push esi
push dword [ebp - 0x168]
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x120]
push dword [ebp - 0x108]
call fcn.0051cad9
add esp, 4
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x220]
call dword [ebp - 0x13c]
cmp eax, 1
je 0x4567c4
mov eax, dword [0x5bdff0]
movsx ecx, word [edi + 0x10ab0]
mov eax, dword [eax + 0xe48]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x4567c4
xorps xmm0, xmm0
mov dword [ebp - 0x1ec], 0
movups xmmword [ebp - 0x20c], xmm0
mov dword [ebp - 0x1e8], 0
movups xmmword [ebp - 0x1fc], xmm0
mov dword [ebp - 0x1e4], 0
lea eax, [ebp - 0x20c]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x234]
call fcn.0042a350
mov esi, dword [ebp - 0x200]
mov dword [ebp - 0x138], esi
cmp esi, dword [ebp - 0x1fc]
je 0x45670d
mov ecx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f4]
neg ecx
mov dword [ebp - 0x264], ecx
neg eax
lea ecx, [esi + 0xc]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x114], ecx
nop dword [eax + eax]
mov eax, dword [ecx]
mov edx, dword [edi + 0x10a28]
add eax, 4
mov esi, dword [ecx - 4]
mov dword [ebp - 0x16c], eax
add esi, 4
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffc
mov dword [ebp - 0x170], esi
mov dword [ebp - 0x178], eax
mov eax, dword [ecx - 8]
add eax, 0xfffffffc
cmp dword [edx + 0xe3c8], 0
mov dword [ebp - 0x174], eax
je 0x4564ab
mov ecx, dword [ebp - 0x178]
lea eax, [ebp - 0x178]
mov edi, dword [ebp - 0x174]
add edx, 0x898
cmp ecx, dword [edx]
lea ecx, [ebp - 0x174]
cmovl eax, edx
cmp edi, dword [edx + 4]
mov edi, dword [ebp - 0x17c]
mov eax, dword [eax]
mov dword [ebp - 0x278], eax
lea eax, [edx + 4]
cmovl ecx, eax
cmp dword [edx + 8], esi
mov eax, dword [ecx]
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x274], eax
lea eax, [edx + 8]
cmovl ecx, eax
mov eax, dword [ecx]
lea ecx, [ebp - 0x16c]
mov dword [ebp - 0x270], eax
lea eax, [edx + 0xc]
mov edx, dword [ebp - 0x16c]
cmp dword [eax], edx
cmovl ecx, eax
mov eax, dword [ecx]
mov dword [ebp - 0x26c], eax
movups xmm0, xmmword [ebp - 0x278]
movups xmmword [ebp - 0x178], xmm0
mov esi, dword [ebp - 0x170]
push 0x569fa8
call fcn.0052bf02
mov edx, dword [ebp - 0x16c]
add esp, 4
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x11c], eax
push edx
push esi
push dword [ebp - 0x174]
mov esi, dword [ebp - 0x118]
push ecx
call esi
push 0x569fa8
mov dword [ebp - 0x108], eax
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x110], 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 2
push dword [ebp - 0x108]
push esi
push esi
call dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x128]
call dword [ebp - 0x140]
push 5
push esi
push esi
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
push esi
mov esi, dword [ebp - 0x120]
call esi
push dword [ebp - 0x110]
call fcn.0051cad9
add esp, 4
push dword [ebp - 0x108]
call esi
push dword [ebp - 0x11c]
call fcn.0051cad9
add esp, 4
lea eax, [ebp - 0x268]
lea ecx, [ebp - 0x178]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.004367d0
mov esi, dword [edi + 0x10a28]
lea ecx, [ebp - 0x244]
mov eax, dword [ebp - 0x244]
lea edx, [ebp - 0x240]
add esi, 0x898
cmp eax, dword [esi]
cmovl ecx, esi
mov eax, dword [ecx]
lea ecx, [esi + 4]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x240]
cmp eax, dword [ecx]
cmovl edx, ecx
lea ecx, [esi + 8]
mov eax, dword [edx]
lea edx, [ebp - 0x23c]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x284], eax
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x23c]
push 0x569fa8
cmovl edx, ecx
lea ecx, [esi + 0xc]
mov eax, dword [edx]
lea edx, [ebp - 0x238]
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x108], eax
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x238]
cmovl edx, ecx
mov esi, dword [edx]
mov dword [ebp - 0x27c], esi
movups xmm0, xmmword [ebp - 0x288]
movups xmmword [ebp - 0x244], xmm0
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x198], eax
push esi
push dword [ebp - 0x108]
mov esi, dword [ebp - 0x118]
push dword [ebp - 0x110]
push dword [ebp - 0x11c]
call esi
push 0x569fa8
mov dword [ebp - 0x108], eax
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x110], 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 2
push dword [ebp - 0x108]
push esi
push esi
call dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x128]
call dword [ebp - 0x140]
push 5
push esi
push esi
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
push esi
mov esi, dword [ebp - 0x120]
call esi
push dword [ebp - 0x110]
call fcn.0051cad9
add esp, 4
push dword [ebp - 0x108]
call esi
push dword [ebp - 0x198]
call fcn.0051cad9
mov ecx, dword [ebp - 0x114]
add esp, 4
add ecx, 0x10
mov dword [ebp - 0x114], ecx
lea eax, [ecx - 0xc]
cmp eax, dword [ebp - 0x1fc]
jne 0x4563e0
mov esi, dword [ebp - 0x138]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1ec]
test edx, edx
je 0x45674e
mov ecx, dword [ebp - 0x1e4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x456744
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push ecx
push edx
call fcn.005187dc
add esp, 8
test esi, esi
je 0x456785
mov ecx, dword [ebp - 0x1f8]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x45677b
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push ecx
push esi
call fcn.005187dc
add esp, 8
mov edx, dword [ebp - 0x20c]
test edx, edx
je 0x4567ee
mov ecx, dword [ebp - 0x204]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x4567b8
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push ecx
push edx
call fcn.005187dc
add esp, 8
jmp 0x4567ee
push 0
push 0
push 0
push 0
push dword [ebp - 0x128]
call dword [ebp - 0x140]
mov eax, dword [ebp - 0x220]
push 5
push eax
push eax
push dword [ebp - 0x128]
call dword [ebp - 0x10c]
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x168]
call dword [ebp - 0x13c]
cmp eax, 1
je 0x4569c1
mov esi, dword [edi + 0x10a28]
mov ecx, dword [esi + 0xe3c8]
test ecx, ecx
je 0x456822
mov eax, dword [ecx]
call dword [eax + 0x14]
mov esi, dword [edi + 0x10a28]
cmp byte [esi + 0x895], 0
mov eax, esi
mov byte [ebp - 0x1ac], 0
je 0x4568aa
inc dword [edi + 0x60]
cmp dword [edi + 0x60], 0xa
jle 0x4568aa
push 0x569fa8
mov dword [edi + 0x60], 0
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x138], eax
push dword [esi + 0x8a4]
push dword [esi + 0x8a0]
push dword [esi + 0x89c]
push dword [esi + 0x898]
call dword [ebp - 0x118]
push 2
mov esi, eax
mov eax, dword [ebp - 0x168]
push esi
push eax
push eax
call dword [ebp - 0x10c]
push esi
call dword [ebp - 0x120]
push dword [ebp - 0x138]
call fcn.0051cad9
mov eax, dword [edi + 0x10a28]
add esp, 4
mov byte [ebp - 0x1ac], 1
add eax, 0x7e0
mov ecx, eax
mov dword [ebp - 0x138], eax
call fcn.004387a0
test eax, eax
je 0x4569ac
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
push 1
push 1
lea eax, [ebp - 0x160]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x168]
call fcn.00429230
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 0x198], ecx
cmp ecx, dword [ebp - 0x15c]
je 0x456953
mov edi, dword [ebp - 0x138]
mov esi, ecx
nop dword [eax + eax]
push dword [ebp - 0x1ac]
lea eax, [ebp - 0x1d0]
mov ecx, edi
push esi
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.00436dd0
add esi, 0x10
cmp esi, dword [ebp - 0x15c]
jne 0x456920
mov edi, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x198]
mov byte [ebp - 4], 0xa
test ecx, ecx
je 0x4569ac
mov edx, dword [ebp - 0x158]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff0
cmp edx, 0x1000
jb 0x456984
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x456fbc
push edx
push ecx
call fcn.005187dc
mov dword [ebp - 0x158], 0
add esp, 8
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x160], 0
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x4569c1
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x10a38]
mov dword [ebp - 0x138], ecx
mov eax, dword [ecx + 0xbc]
mov esi, dword [eax]
cmp esi, eax
je 0x456a0d
mov edi, ecx
nop dword [eax + eax]
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 eax, dword [esi]
mov esi, eax
cmp eax, dword [edi + 0xbc]
jne 0x4569e0
mov edi, dword [ebp - 0x17c]
mov ecx, dword [edi + 0x10a38]
cmp byte [edi + 0x10ac1], 0
jne 0x456a3b
mov eax, dword [ecx]
push 1
call dword [eax + 0x78]
mov ecx, dword [edi + 0x10a28]
mov eax, 0x63
mov byte [edi + 0x10ac1], 1
mov edx, 1
cmp dword [ecx], eax
cmove eax, edx
mov dword [ecx], eax
push 0x569fa8
call fcn.0052bf02
add esp, 4
mov dword [ebp - 0x1bc], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x118]
mov ecx, dword [ebp - 0x1d8]
mov esi, dword [ebp - 0x10c]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x1c0], eax
call esi
mov eax, dword [ebp - 0x1c0]
push 1
push dword [ebp - 0x18c]
push eax
push eax
call esi
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x1c0]
mov ecx, dword [ebp - 0x190]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x1c0]
mov esi, dword [ebp - 0x120]
call esi
push dword [ebp - 0x1bc]
call fcn.0051cad9
push 0x569fa8
call fcn.0052bf02
add esp, 8
mov dword [ebp - 0x1c4], eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x118]
mov ecx, dword [ebp - 0x1d0]
push 5
push ecx
push ecx
push eax
mov dword [ebp - 0x1c8], eax
call dword [ebp - 0x10c]
mov eax, dword [ebp - 0x1c8]
push 1
push dword [ebp - 0x18c]
push eax
push eax
call dword [ebp - 0x10c]
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x1c8]
mov ecx, dword [ebp - 0x190]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
push dword [ebp - 0x1c8]
call esi
push dword [ebp - 0x1c4]
call fcn.0051cad9
mov ecx, dword [edi + 0x10a38]
add esp, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x88]
call eax
mov esi, eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x220]
call dword [ebp - 0x13c]
cmp eax, 1
je 0x456b70
mov edx, dword [esi]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x220]
mov ecx, esi
push eax
call dword [edx + 0xc]
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x230]
call dword [ebp - 0x13c]
cmp eax, 1
je 0x456b93
mov eax, dword [esi]
lea ecx, [ebp - 0x230]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x228]
call dword [ebp - 0x13c]
cmp eax, 1
je 0x456bb6
mov eax, dword [esi]
lea ecx, [ebp - 0x228]
push ecx
mov ecx, esi
call dword [eax + 8]
push dword [ebp - 0x1d0]
mov esi, dword [ebp - 0x120]
call esi
push dword [ebp - 0x1cc]
call fcn.0051cad9
add esp, 4
push dword [ebp - 0x1d8]
call esi
push dword [ebp - 0x1d4]
call fcn.0051cad9
add esp, 4
push dword [ebp - 0x168]
call esi
push dword [ebp - 0x164]
call fcn.0051cad9
add esp, 4
mov byte [ebp - 4], 6
push dword [ebp - 0x250]
call dword [ebp - 0x1b8]
mov esi, dword [ebp - 0x140]
push 0
push 0
push 0
push 0
push dword [ebp - 0x230]
call esi
push 0
push 0
push 0
push 0
push dword [ebp - 0x220]
call esi
push 0
push 0
push 0
push 0
push dword [ebp - 0x228]
call esi
mov eax, dword [edi + 0x10a28]
cmp byte [eax + 0xe8e4], 0
je 0x456d28
mov eax, dword [0x5bb8f8]
test eax, eax
jne 0x456c80
push 0x20
call fcn.005187ac
add esp, 4
mov dword [ebp - 0x29c], eax
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.0047a120
mov dword [0x5bb8f8], eax
cmp byte [eax + 0x11], 0
jne 0x456cb0
mov cl, byte [eax + 0xc]
test cl, cl
je 0x456cec
cmp byte [eax + 9], 0
jne 0x456cb0
cmp byte [eax + 7], 0
jne 0x456c9f
cmp byte [eax + 8], 0
je 0x456ca5
cmp byte [eax + 0xb], 0
je 0x456cb0
cmp cl, 1
jne 0x456cec
cmp byte [eax + 0xb], 0
jne 0x456cec
mov eax, dword [edi + 0x10a28]
mov ecx, dword [eax + 0xe3c8]
test ecx, ecx
je 0x456d28
cmp dword [ecx + 0x10], 0
jne 0x456cec
mov byte [ebp - 4], 4
push dword [ebp - 0x248]
mov dword [eax + 0xe8f0], 1
mov dword [eax + 0xe8f4], 1
call dword [ebp - 0x1b8]
jmp case.default.0x4555af
call dword [ebp - 0x1b0]
mov esi, eax
mov ecx, esi
sub ecx, dword [edi + 0x10ac4]
cmp ecx, 0x1f4
jbe 0x456d28
mov eax, dword [edi + 0x10a28]
push 2
push 0xf170
push 0x112
push dword [eax + 0xe404]
call dword [ebp - 0x130]
mov dword [edi + 0x10ac4], esi
mov byte [ebp - 4], 4
push dword [ebp - 0x248]
call dword [ebp - 0x1b8]
jmp case.default.0x4555af
cmp esi, 0xffffffff
jne case.default.0x4555af
mov byte [edi + 0x10a2c], 0
cmp byte [edi + 0x10a2c], 0
je 0x456d60
mov ecx, dword [ebp - 0x180]
mov edx, dword [ebp - 0x154]
jmp 0x455550
mov ecx, dword [edi + 0x10a38]
mov byte [edi + 0x10a2c], 0
mov eax, dword [ecx]
call dword [eax + 0x28]
mov eax, dword [ebp - 0x14c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [0x5b31a4], 1
test eax, eax
je 0x456da7
push 0x1388
push eax
call dword [ebp - 0x150]
push dword [ebp - 0x14c]
call esi
mov dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x184]
test eax, eax
je 0x456dc6
push 0x1388
push eax
call dword [ebp - 0x150]
mov eax, dword [ebp - 0x184]
push eax
call esi
mov eax, dword [ebp - 0x148]
test eax, eax
je 0x456de5
push 0x1388
push eax
call dword [ebp - 0x150]
mov eax, dword [ebp - 0x148]
push eax
call esi
mov eax, dword [edi + 0x10a28]
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread_n
push 9
push 0x5b0d48
mov dword [eax + 0xe410], 0
call fcn.0041ccb0
mov eax, dword [0x5bdff0]
add esp, 0xc
mov esi, dword [edi + 0x10a28]
cmp dword [eax + 0x798], 0
je 0x456e44
cmp dword [eax + 0x79c], 0
jne 0x456e44
movzx eax, byte [esi + 0xe8e5]
push eax
push 1
push 0
call fcn.004275c0
mov byte [esi + 0xe8e5], al
mov byte [esi + 0xe960], 0
push 1
push ecx
mov ecx, dword [esi + 0xe3c4]
mov byte [esi + 0xe96a], 0
call fcn.004829a0
push connect
call dword [ebp - 0x1e0]
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:SetBlockInputState_n
push 9
push 0x5b0d48
call fcn.0041ccb0
mov cl, 0xa0
call fcn.00474440
mov cl, 0xa2
call fcn.00474440
mov cl, 0xa4
call fcn.00474440
mov cl, 0xa1
call fcn.00474440
mov cl, 0xa3
call fcn.00474440
mov cl, 0xa5
call fcn.00474440
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:ClearShiftKeys_n
push 9
push 0x5b0d48
call fcn.0041ccb0
add esp, 0x18
push 0
push str.blackscreen
call dword [ebp - 0x1b4]
test eax, eax
je 0x456ed1
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 0x5b0d48
mov byte [0x5b31a7], 0
call fcn.0041ccb0
mov ecx, dword [edi + 0x10a28]
add esp, 0xc
call fcn.0044e330
push str.vncDesktopThread::run_undetached_:_quitting_desktop_server_thread:m_desktop__Shutdown_n
push 9
push 0x5b0d48
call fcn.0041ccb0
mov esi, dword [ebp - 0x120]
add esp, 0xc
push dword [ebp - 0x128]
call esi
push dword [ebp - 0x124]
call fcn.0051cad9
add esp, 4
mov dword [ebp - method.rfb::ClippedUpdateTracker.virtual_0], vtable.rfb::ClippedUpdateTracker.0
push dword [ebp - 0x18c]
call esi
push dword [ebp - 0x188]
call fcn.0051cad9
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 - 0x220]
call esi
push dword [ebp - 0x21c]
call fcn.0051cad9
add esp, 4
push dword [ebp - 0x228]
call esi
push dword [ebp - 0x224]
call fcn.0051cad9
add esp, 4
push dword [ebp - 0x230]
call esi
push dword [ebp - 0x22c]
call fcn.0051cad9
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.00518799
mov esp, ebp
pop ebp
ret 4
call fcn.0051ca88
nop dword [eax]
mov byte [edi + 0x45], dl
add byte [esi + 486557013], dh
push esi
inc ebp
add byte [edx], bl
push edi
inc ebp
add byte [esi + edx*2], dh
inc ebp
add ah, cl
int3