Function at 0x438520
Capabilities:
Check os version

Disassembly:
sub esp, 0xd8
mov eax, dword [0x48a348]
xor eax, esp
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xdc]
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ebp, [edi + 4]
lea ecx, [ebp + 8]
push ecx
mov dword [esp + 0x14], eax
call fcn.00404eb0
lea esi, [ebp + 0x220]
call fcn.0044a250
mov eax, 1
lea esi, [edi + 0x84c]
lea edx, [esi + 4]
xor ebx, ebx
push edx
mov dword [ebp + 0x11c], eax
mov dword [ebp + 0x114], eax
mov dword [ebp + 0x118], eax
mov dword [ebp + 0x128], ebx
mov dword [ebp + 0x110], eax
mov byte [ebp], al
mov dword [ebp + 4], ebx
mov dword [ebp + 0x120], 0x7530
call fcn.00404eb0
mov dword [esi + 0x114], ebx
mov dword [esi + 0x10c], 1
mov dword [edi + 0x9ac], ebx
push str.._vncmenu.cpp_:_vncmenu_server__n
xor ecx, ecx
mov eax, 0x48c4e8
mov dword [edi + 0x9b4], ebx
call fcn.00401000
add esp, 4
push ebx
mov dword [edi + 0xcc4], ebx
mov dword [edi + 0xcd8], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push str.user32.dll
mov byte [edi + 0xcdc], bl
mov dword [edi + 0xce0], ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.ChangeWindowMessageFilter
push eax
mov dword [edi + 0xce4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x438638
mov ecx, dword [0x4a78c8]
push 1
push ecx
call eax
mov edx, dword [0x4a78bc]
push 1
push edx
call dword [esp + 0x1c]
mov eax, dword [0x4a78c4]
push 1
push eax
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xbb8]
mov dword [edi], ecx
call fcn.00449210
mov edx, dword [0x4a6550]
push 0x7f00
push ebx
mov dword [esp + 0x20], 0x30
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x439070
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edx
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebx
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push ebx
mov dword [esp + 0x38], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x7f00
push ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], str.WinVNC_Tray_Icon
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
mov ecx, dword [0x4a6550]
push ebx
push ecx
push ebx
push ebx
push 0xc8
push 0xc8
push accept
push accept
push 0xcf0000
push str.WinVNC_Tray_Icon
push str.WinVNC_Tray_Icon
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [edi + 0x9b8], eax
cmp eax, ebx
jne 0x43870b
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x4389cb
cmp dword [edi + 0xcc4], ebx
jne 0x438724
push str.wtsapi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [edi + 0xcc4], eax
mov eax, dword [edi + 0xcc4]
cmp eax, ebx
je 0x438748
push str.WTSRegisterSessionNotification
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x438748
mov edx, dword [edi + 0x9b8]
push ebx
push edx
call eax
mov eax, dword [edi + 0x9b8]
push edi
push 0xffffffffffffffeb
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edi + 0x9b8]
mov edx, dword [edx + 0x60]
push eax
call edx
mov eax, dword [edi]
push eax
mov ecx, ebp
call fcn.0043c920
test eax, eax
je 0x4386ff
mov eax, dword [edi]
mov ecx, esi
call fcn.00441b50
push ebx
test eax, eax
je 0x438700
mov ecx, dword [edi + 0x9b8]
push 0x1388
push 1
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [edi]
lea eax, [esp + 0x48]
push eax
mov dword [edi + 0x9b0], edx
mov dword [esp + 0x4c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x58], 2
jne 0x438911
cmp dword [esp + 0x4c], 5
jne 0x438870
cmp dword [esp + 0x50], 1
jb 0x438870
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x10
push 0x32
call ebp
push eax
push 0x31
call ebp
mov esi, dword [sym.imp.USER32.dll_LoadImageA]
push eax
push 1
push str.icon1.ico
push ebx
call esi
push 0x10
push 0x32
mov dword [edi + 0xcbc], eax
call ebp
push eax
push 0x31
call ebp
push eax
push 1
push str.icon2.ico
push ebx
call esi
mov dword [edi + 0xcc0], eax
cmp dword [edi + 0xcbc], ebx
jne 0x438844
push ebx
push 0x32
call ebp
push eax
push 0x31
call ebp
mov ecx, dword [0x4a218c]
push eax
push 1
push 0x66
push ecx
call esi
mov dword [edi + 0xcbc], eax
cmp dword [edi + 0xcc0], ebx
jne 0x4389b1
push ebx
push 0x32
call ebp
push eax
push 0x31
call ebp
mov edx, dword [0x4a218c]
push eax
push 1
push 0x86
push edx
call esi
jmp 0x4389ab
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x90
push 0x32
call esi
push eax
push 0x31
call esi
mov ebp, dword [sym.imp.USER32.dll_LoadImageA]
push eax
push 1
push str.icon1.ico
push ebx
call ebp
push 0x90
push 0x32
mov dword [edi + 0xcbc], eax
call esi
push eax
push 0x31
call esi
push eax
push 1
push str.icon2.ico
push ebx
call ebp
mov dword [edi + 0xcc0], eax
cmp dword [edi + 0xcbc], ebx
jne 0x4388e3
push 0x80
push 0x32
call esi
push eax
push 0x31
call esi
push eax
mov eax, dword [0x4a218c]
push 1
push 0x66
push eax
call ebp
mov dword [edi + 0xcbc], eax
cmp dword [edi + 0xcc0], ebx
jne 0x4389b1
push 0x80
push 0x32
call esi
push eax
push 0x31
call esi
mov ecx, dword [0x4a218c]
push eax
push 1
push 0x86
push ecx
jmp 0x4389a9
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x90
push 0x32
call esi
push eax
push 0x31
call esi
mov ebp, dword [sym.imp.USER32.dll_LoadImageA]
push eax
push 1
push str.icon1.ico
push ebx
call ebp
push 0x90
push 0x32
mov dword [edi + 0xcbc], eax
call esi
push eax
push 0x31
call esi
push eax
push 1
push str.icon2.ico
push ebx
call ebp
mov dword [edi + 0xcc0], eax
cmp dword [edi + 0xcbc], ebx
jne 0x438985
push 0x80
push 0x32
call esi
push eax
push 0x31
call esi
mov edx, dword [0x4a218c]
push eax
push 1
push 0x66
push edx
call ebp
mov dword [edi + 0xcbc], eax
cmp dword [edi + 0xcc0], ebx
jne 0x4389b1
push 0x80
push 0x32
call esi
push eax
push 0x31
call esi
push eax
mov eax, dword [0x4a218c]
push 1
push 0x86
push eax
call ebp
mov dword [edi + 0xcc0], eax
mov ecx, dword [0x4a218c]
push 0x68
push ecx
call dword [sym.imp.USER32.dll_LoadMenuA]
mov dword [edi + 0x9bc], eax
call fcn.00438ae0
mov ecx, dword [esp + 0xe4]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0045dc1f
add esp, 0xd8
ret 4