Function at 0x45c160
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf1be
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x4f5568]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], edi
lea ecx, [edi + 4]
call fcn.00461d40
lea ecx, [edi + 0xc70]
call fcn.0041e390
mov dword [edi + 0xd80], 0
lea eax, [edi + 0x10e0]
mov dword [edi + 0xd78], 1
mov dword [edi + 0xed4], 0
push eax
mov dword [edi + 0xedc], 0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push str.vncmenu.cpp_:_vncmenu_server__n
push 0
push 0x4f6c50
mov dword [ebp - 4], 0
call fcn.00414f90
add esp, 0xc
mov dword [edi + 0x120c], 0
mov dword [edi + 0x1220], 0
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push str.user32.dll
mov byte [edi + 0x1224], 0
mov dword [edi + 0x1228], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x45c28d
push str.ChangeWindowMessageFilter
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x45c286
push 1
push dword [0x503c6c]
call esi
push 1
push dword [0x503c54]
call esi
push 1
push dword [0x503c4c]
call esi
push 1
push dword [0x503c50]
call esi
push 1
push dword [0x503c68]
call esi
push 1
push dword [0x503c64]
call esi
push 1
push dword [0x503c5c]
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ebx, dword [ebp + 8]
lea ecx, [edi + 0x1100]
mov dword [edi + 0x10f8], 0
mov dword [edi + 0x10fc], 0
mov dword [edi], ebx
call fcn.0046fff0
mov eax, dword [0x502598]
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push 0
mov dword [ebp - 0x44], 0x30
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0x45d1f0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], eax
call esi
push 0x7f00
push 0
mov dword [ebp - 0x2c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0
mov dword [ebp - 0x28], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x7f00
push 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], str.WinVNC_Tray_Icon
call esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
push dword [0x502598]
push 0
push 0
push 0xc8
push 0xc8
push accept
push accept
push 0xcf0000
push str.WinVNC_Tray_Icon
push str.WinVNC_Tray_Icon
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [edi + 0xee0], eax
test eax, eax
jne 0x45c37b
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x45c594
cmp dword [edi + 0x120c], 0
jne 0x45c395
push str.wtsapi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [edi + 0x120c], eax
mov eax, dword [edi + 0x120c]
test eax, eax
je 0x45c3b9
push str.WTSRegisterSessionNotification
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x45c3b9
push 0
push dword [edi + 0xee0]
call eax
push edi
push 0xffffffffffffffeb
push dword [edi + 0xee0]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [ebx]
mov ecx, ebx
push dword [edi + 0xee0]
call dword [eax + 0x68]
push dword [edi]
lea ecx, [edi + 4]
call fcn.00461dd0
test eax, eax
je 0x45c36e
push dword [edi]
lea ecx, [edi + 0xc6c]
call fcn.004686f0
push 0
test eax, eax
je 0x45c370
push 0x1388
push 1
push dword [edi + 0xee0]
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [edi]
mov dword [edi + 0xed8], eax
lea eax, [edi + 0x122c]
push eax
mov dword [eax], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [edi + 0x123c], 2
jne 0x45c4d0
cmp dword [edi + 0x1230], 5
jne 0x45c4d0
cmp dword [edi + 0x1234], 1
jb 0x45c4d0
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x10
push 0x32
call esi
push eax
push 0x31
call esi
mov ebx, dword [sym.imp.USER32.dll_LoadImageA]
push eax
push 1
push str.icon1.ico
push 0
call ebx
push 0x10
push 0x32
mov dword [edi + 0x1204], eax
call esi
push eax
push 0x31
call esi
push eax
push 1
push str.icon2.ico
push 0
call ebx
cmp dword [edi + 0x1204], 0
mov dword [edi + 0x1208], eax
jne 0x45c4bc
push 0
push 0x32
call esi
push eax
push 0x31
call esi
push eax
push 1
push 0x66
push dword [0x502044]
call ebx
mov dword [edi + 0x1204], eax
cmp dword [edi + 0x1208], 0
jne 0x45c573
push 0
jmp 0x45c554
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x90
push 0x32
call esi
push eax
push 0x31
call esi
mov ebx, dword [sym.imp.USER32.dll_LoadImageA]
push eax
push 1
push str.icon1.ico
push 0
call ebx
push 0x90
push 0x32
mov dword [edi + 0x1204], eax
call esi
push eax
push 0x31
call esi
push eax
push 1
push str.icon2.ico
push 0
call ebx
cmp dword [edi + 0x1204], 0
mov dword [edi + 0x1208], eax
jne 0x45c546
push 0x80
push 0x32
call esi
push eax
push 0x31
call esi
push eax
push 1
push 0x66
push dword [0x502044]
call ebx
mov dword [edi + 0x1204], eax
cmp dword [edi + 0x1208], 0
jne 0x45c573
push 0x80
push 0x32
call esi
push eax
push 0x31
call esi
push eax
push 1
push 0x86
push dword [0x502044]
call ebx
mov dword [edi + 0x1208], eax
push 0x68
push dword [0x502044]
call dword [sym.imp.USER32.dll_LoadMenuA]
mov ecx, edi
mov dword [edi + 0xee4], eax
call fcn.0045c740
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4