Function at 0x4092c0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x457c70]
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 0x409577
cmp dword [ebp - 0x108], 2
jne 0x409577
push esi
push 0
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.00408480
call fcn.0041c200
push 0x64
push 0x463330
push 0x66
push edi
mov dword [0x463320], edi
call dword [sym.imp.USER32.dll_LoadStringW]
push 0
push 0x4438a8
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
test esi, esi
je 0x40938d
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.0041cc0e
mov esp, ebp
pop ebp
ret 0x10
push edi
call fcn.004082d0
add esp, 4
test eax, eax
je 0x409379
mov ecx, 0x4633f8
call fcn.0040e330
push edi
mov ecx, 0x463468
call fcn.00408b00
test eax, eax
je 0x409379
mov eax, dword [ebp - 0x114]
cmp eax, 6
ja 0x4093c9
jne 0x4093d7
cmp dword [ebp - 0x110], 2
jb 0x4093d7
push dword [0x46346c]
call fcn.00408350
add esp, 4
push dword [0x46346c]
call fcn.00408f40
add esp, 4
test eax, eax
je 0x409379
call fcn.00414d60
cmp dword [0x4633f8], 0
je 0x409411
push 0
push 0x9c42
push 0x111
push dword [0x46346c]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x409419
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 0x409541
mov esi, dword [sym.imp.USER32.dll_IsWindow]
mov edi, dword [sym.imp.USER32.dll_IsDialogMessageW]
jmp 0x409450
mov eax, dword [0x48650c]
mov eax, dword [eax + 4]
push dword [eax + 0x486510]
call esi
test eax, eax
je 0x409483
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x48650c]
mov eax, dword [eax + 4]
push dword [eax + 0x486510]
call edi
test eax, eax
jne 0x40952a
mov eax, dword [0x485ee0]
mov eax, dword [eax + 4]
push dword [eax + 0x485ee4]
call esi
test eax, eax
je 0x4094b2
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x485ee0]
mov eax, dword [eax + 4]
push dword [eax + 0x485ee4]
call edi
test eax, eax
jne 0x40952a
mov eax, dword [0x486894]
mov eax, dword [eax + 4]
push dword [eax + 0x486898]
call esi
test eax, eax
je 0x4094e1
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x486894]
mov eax, dword [eax + 4]
push dword [eax + 0x486898]
call edi
test eax, eax
jne 0x40952a
mov eax, dword [0x486e74]
mov eax, dword [eax + 4]
push dword [eax + 0x486e78]
call esi
test eax, eax
je 0x409510
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x486e74]
mov eax, dword [eax + 4]
push dword [eax + 0x486e78]
call edi
test eax, eax
jne 0x40952a
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 0x409450
mov eax, dword [0x463324]
mov esi, dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
pop ebx
test eax, eax
je 0x409554
push eax
call esi
mov eax, dword [0x463328]
test eax, eax
je 0x409560
push eax
call esi
pop esi
mov eax, 1
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041cc0e
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.0041cc0e
mov esp, ebp
pop ebp
ret 0x10