Function at 0x409880
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x4cff04]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x114], 4
jb 0x409b3d
cmp dword [ebp - 0x108], 2
jne 0x409b3d
push esi
push 0
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.00408a90
call fcn.00420090
push 0x64
push 0x4db4e8
push 0x66
push edi
mov dword [0x4db4d8], edi
call dword [sym.imp.USER32.dll_LoadStringW]
push 0
push 0x49ebb0
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
test esi, esi
je 0x40994d
push 0x30
push str.Warning
push str.A_previous_instance_of_UniKey_is_already_running._This_instance_will_now_stop.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push esi
call dword [sym.imp.USER32.dll_BringWindowToTop]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push 0
push 0x9c42
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
pop esi
xor eax, eax
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00420b40
mov esp, ebp
pop ebp
ret 0x10
push edi
call fcn.004088e0
add esp, 4
test eax, eax
je 0x409939
mov ecx, 0x4db5b0
call fcn.0040eeb0
push edi
mov ecx, 0x4db828
call fcn.00409180
test eax, eax
je 0x409939
mov eax, dword [ebp - 0x114]
cmp eax, 6
ja 0x409989
jne 0x409997
cmp dword [ebp - 0x110], 2
jb 0x409997
push dword [0x4db82c]
call fcn.00408960
add esp, 4
push dword [0x4db82c]
call fcn.004095d0
add esp, 4
test eax, eax
je 0x409939
call fcn.00418610
cmp dword [0x4db5b0], 0
je 0x4099d1
push 0
push 0x9c42
push 0x111
push dword [0x4db82c]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x4099d9
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [ebp - 0x134]
push 0
push 0
push 0
push eax
call ebx
test eax, eax
je 0x409b01
mov esi, dword [sym.imp.USER32.dll_IsWindow]
mov edi, dword [sym.imp.USER32.dll_IsDialogMessageW]
nop dword [eax]
nop word [eax + eax]
mov eax, dword [0x4dc5fc]
mov eax, dword [eax + 4]
push dword [eax + 0x4dc600]
call esi
test eax, eax
je 0x409a43
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x4dc5fc]
mov eax, dword [eax + 4]
push dword [eax + 0x4dc600]
call edi
test eax, eax
jne 0x409aea
mov eax, dword [0x4dbe84]
mov eax, dword [eax + 4]
push dword [eax + 0x4dbe88]
call esi
test eax, eax
je 0x409a72
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x4dbe84]
mov eax, dword [eax + 4]
push dword [eax + 0x4dbe88]
call edi
test eax, eax
jne 0x409aea
mov eax, dword [0x4dcad0]
mov eax, dword [eax + 4]
push dword [eax + 0x4dcad4]
call esi
test eax, eax
je 0x409aa1
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x4dcad0]
mov eax, dword [eax + 4]
push dword [eax + 0x4dcad4]
call edi
test eax, eax
jne 0x409aea
mov eax, dword [0x4dd0b4]
mov eax, dword [eax + 4]
push dword [eax + 0x4dd0b8]
call esi
test eax, eax
je 0x409ad0
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x4dd0b4]
mov eax, dword [eax + 4]
push dword [eax + 0x4dd0b8]
call edi
test eax, eax
jne 0x409aea
lea eax, [ebp - 0x134]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x134]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x134]
push eax
call ebx
test eax, eax
jne 0x409a10
mov eax, dword [0x4db4e0]
pop ebx
test eax, eax
je 0x409b26
push 0
push 0
push 0x12
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageW]
push 0xffffffffffffffff
push dword [0x4db4dc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
pop esi
mov eax, 1
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00420b40
mov esp, ebp
pop ebp
ret 0x10
push 0x10
push str.Platform_not_supported
push str.This_version_runs_only_in_Windows_NT.40_2000_XP_only_nYou_can_download_UniKey_running_on_all_Windows_platforms_at_http:__unikey.org
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
xor ecx, ebp
pop edi
call fcn.00420b40
mov esp, ebp
pop ebp
ret 0x10