Function at 0x408bee
Capabilities:
Accept command line arguments
Check os version
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
push ebx
push esi
lea eax, [ebp - 0xa0]
push edi
push eax
mov dword [ebp - 0xa0], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push 3
xor esi, esi
pop ecx
xor edi, edi
cmp dword [ebp - 0x90], 2
push 1
pop ebx
jne 0x408c6c
cmp dword [ebp - 0x9c], ecx
mov dword [0x4162f0], 0x10
jbe 0x408c9e
cmp dword [ebp - 0x9c], 4
mov dword [0x4162f0], 0x11
jbe 0x408c9e
cmp dword [ebp - 0x9c], 5
mov dword [0x4162f0], 0x13
mov edi, ebx
jbe 0x408c9e
mov dword [0x4162f0], 0x17
xor edi, edi
jmp 0x408c9e
cmp dword [ebp - 0x90], esi
jne 0x408c7c
mov dword [0x4162f0], esi
jmp 0x408c9e
cmp dword [ebp - 0x9c], 4
mov dword [0x4162f0], ebx
mov edi, ebx
ja 0x408c98
jne 0x408c9e
cmp dword [ebp - 0x98], 0xa
jb 0x408c9e
mov dword [0x4162f0], ecx
mov eax, dword [0x4162f0]
mov dword [0x4162fc], 0x400
and eax, 2
mov dword [0x41623c], esi
jne 0x408cbe
mov dword [0x4162fc], esi
cmp dword [0x4162f0], 0x10
jl 0x408cd1
cmp eax, esi
je 0x408cd1
mov dword [0x41623c], ecx
call fcn.00402c72
mov eax, dword [ebp + 8]
push 0x2c4b6
push 0x40
mov dword [0x4162e0], eax
mov dword [0x41634c], esi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
cmp eax, esi
mov dword [0x4162dc], eax
jne 0x408d12
push 0x2010
push str.WinSFX32U
push str.Not_enough_memory
push esi
call dword [0x41630c]
jmp 0x408d27
mov dword [0x416274], esi
mov dword [0x416258], esi
call fcn.00408a58
test eax, eax
jne 0x408d2e
xor eax, eax
jmp 0x409031
xor eax, eax
cmp dword [0x4162f0], esi
sete al
test bl, al
jne 0x408d47
mov dword [0x416360], fcn.0040213e
mov eax, dword [0x4162dc]
mov dword [eax + 0x40], esi
mov dword [eax + 0x3c], esi
mov dword [eax + 0x48], esi
mov dword [eax + 0x44], esi
mov dword [eax + 0x4c], esi
mov dword [eax + 0x54], esi
mov dword [eax + 0x58], esi
mov dword [eax + 0x5c], esi
mov dword [eax + 0x64], esi
mov dword [eax + 0x68], edi
mov dword [eax + 0x6c], esi
mov dword [eax + 0x3a4c], esi
mov word [eax + 0x2abce], si
mov word [eax + 0x3643], si
mov word [eax + 0x2aeee], si
mov word [eax + 0x2ae4e], si
mov word [eax + 0x2932e], si
mov word [eax + 0x18f06], si
mov word [eax + 0x18706], si
add eax, 0x14506
push eax
push 0x100
call dword [0x4162a0]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ecx, dword [0x4162dc]
and eax, 0x3ff
cmp eax, 0x11
mov dword [ecx + 0x30], eax
jne 0x408dd6
mov dword [ecx + 0x50], ebx
mov dword [ecx + 0x60], ebx
jmp 0x408ddc
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x60], esi
push dword [ecx + 0x50]
call fcn.00404aab
cmp dword [0x4162f0], esi
je 0x408df4
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
jmp 0x408e26
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ecx, dword [0x4162dc]
push 0x800
add ecx, 0x2b4b6
push ecx
push 0xffffffffffffffff
push eax
push ebx
push dword [0x41623c]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [0x4162dc]
add eax, 0x2b4b6
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.004089eb
mov dword [ebp - 0xc], eax
mov dword [0x416310], ebx
mov dword [0x416300], esi
mov dword [0x416344], esi
mov dword [0x41625c], esi
mov dword [0x416280], ebx
mov dword [ebp - 8], esi
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
jge 0x408ecb
mov ecx, dword [ebp - 4]
mov edi, dword [ecx + eax*4]
inc eax
mov dword [ebp - 8], eax
cmp word [edi], 0x2d
jne 0x408eab
movzx eax, word [edi + 2]
push eax
call dword [0x416304]
cmp ax, 0x6e
jne 0x408e91
xor eax, eax
cmp word [edi + 4], 0x2d
sete al
add eax, 0xb
mov dword [0x41625c], eax
jmp 0x408e54
cmp ax, 0x63
jne 0x408e54
xor eax, eax
cmp word [edi + 4], 0x2d
setne al
add eax, 0xa
mov dword [0x416310], eax
jmp 0x408e54
cmp eax, ebx
jle 0x408e54
mov eax, dword [0x4162dc]
push 0x400
add eax, 0x18706
push edi
push eax
mov dword [0x416344], ebx
call fcn.00402c83
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.00408a4b
call fcn.00403b18
cmp dword [0x4162f0], esi
mov dword [0x416294], esi
je 0x408f25
lea eax, [ebp - 0xc8]
push eax
push 0x8002
push esi
call dword [0x416330]
test eax, eax
je 0x408f25
mov eax, dword [ebp - 0xc4]
mov dword [0x41626c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push esi
push 0x403d07
push 5
call dword [0x4162b4]
mov dword [0x416294], eax
mov eax, dword [0x4162dc]
push 0x104
add eax, 0x13ef6
push eax
push dword [ebp + 8]
call dword [0x416254]
call fcn.00408898
mov eax, dword [0x4162dc]
mov dword [0x4162a4], esi
mov dword [0x416244], esi
mov cl, byte [eax + 0x3a49]
test cl, 2
je 0x408f65
mov dword [0x416244], ebx
mov eax, dword [0x41625c]
cmp eax, esi
jne 0x408f79
test bl, cl
je 0x408f79
mov eax, ebx
mov dword [0x41625c], eax
cmp eax, 0xb
jne 0x408f86
mov dword [0x41625c], ebx
jmp 0x408f91
cmp eax, 0xc
jne 0x408f91
mov dword [0x41625c], esi
cmp dword [0x416310], 0xb
je 0x408f9f
test cl, 8
je 0x408fa5
mov dword [0x416310], esi
cmp dword [0x416310], 0xa
jne 0x408fb4
mov dword [0x416310], ebx
push ebx
push esi
call fcn.00406cc6
test eax, eax
je 0x40900b
mov eax, dword [0x4162dc]
push ebx
mov edi, 0x100
push 0x416234
add eax, 0x3643
push edi
push eax
call fcn.0040406d
mov eax, dword [0x4162dc]
add eax, 0x3643
cmp word [eax], si
jne 0x408ff2
push eax
push edi
call dword [0x4162a0]
mov eax, dword [0x4162dc]
push 0x40822c
push esi
push dword [eax + 0x150]
push dword [ebp + 8]
call fcn.00407ea1
mov eax, dword [0x416294]
cmp eax, esi
je 0x40901b
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov eax, dword [0x4162dc]
push eax
mov esi, dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
call fcn.00403d50
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10