Function at 0x409215
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 0x409293
cmp dword [ebp - 0x9c], ecx
mov dword [0x41d44c], 0x10
jbe 0x4092c5
cmp dword [ebp - 0x9c], 4
mov dword [0x41d44c], 0x11
jbe 0x4092c5
cmp dword [ebp - 0x9c], 5
mov dword [0x41d44c], 0x13
mov edi, ebx
jbe 0x4092c5
mov dword [0x41d44c], 0x17
xor edi, edi
jmp 0x4092c5
cmp dword [ebp - 0x90], esi
jne 0x4092a3
mov dword [0x41d44c], esi
jmp 0x4092c5
cmp dword [ebp - 0x9c], 4
mov dword [0x41d44c], ebx
mov edi, ebx
ja 0x4092bf
jne 0x4092c5
cmp dword [ebp - 0x98], 0xa
jb 0x4092c5
mov dword [0x41d44c], ecx
mov eax, dword [0x41d44c]
mov dword [0x41d464], 0x400
and eax, 2
mov dword [0x41d2f4], esi
jne 0x4092e5
mov dword [0x41d464], esi
cmp dword [0x41d44c], 0x10
jl 0x4092f8
cmp eax, esi
je 0x4092f8
mov dword [0x41d2f4], ecx
call fcn.0040318c
cmp eax, ebx
jne 0x409364
mov eax, dword [ebp + 8]
push 0x2c4b6
push 0x40
mov dword [0x41d42c], eax
mov dword [0x41d4d8], esi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
cmp eax, esi
mov dword [0x41d428], eax
jne 0x40934a
push 0x2010
push 0x40f978
push str.Not_enough_memory
push esi
call dword [0x41d47c]
call fcn.00403113
mov eax, 0x801e
jmp 0x409676
mov dword [0x41d354], esi
mov dword [0x41d328], esi
call fcn.00409081
test eax, eax
jne 0x40936e
call fcn.00403113
mov eax, 0x8023
jmp 0x409676
xor eax, eax
cmp dword [0x41d44c], esi
sete al
test bl, al
jne 0x409387
mov dword [0x41d514], fcn.0040213f
mov eax, dword [0x41d428]
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 [0x41d3c0]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ecx, dword [0x41d428]
and eax, 0x3ff
cmp eax, 0x11
mov dword [ecx + 0x30], eax
jne 0x409416
mov dword [ecx + 0x50], ebx
mov dword [ecx + 0x60], ebx
jmp 0x40941c
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x60], esi
push dword [ecx + 0x50]
call fcn.004050aa
cmp dword [0x41d44c], esi
je 0x409434
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
jmp 0x409466
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ecx, dword [0x41d428]
push 0x800
add ecx, 0x2b4b6
push ecx
push 0xffffffffffffffff
push eax
push ebx
push dword [0x41d2f4]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [0x41d428]
add eax, 0x2b4b6
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.00409014
mov dword [ebp - 0xc], eax
mov dword [0x41d484], ebx
mov dword [0x41d468], esi
mov dword [0x41d4cc], esi
mov dword [0x41d32c], esi
mov dword [0x41d37c], ebx
mov dword [ebp - 8], esi
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
jge 0x40950b
mov ecx, dword [ebp - 4]
mov edi, dword [ecx + eax*4]
inc eax
mov dword [ebp - 8], eax
cmp word [edi], 0x2d
jne 0x4094eb
movzx eax, word [edi + 2]
push eax
call dword [0x41d46c]
cmp ax, 0x6e
jne 0x4094d1
xor eax, eax
cmp word [edi + 4], 0x2d
sete al
add eax, 0xb
mov dword [0x41d32c], eax
jmp 0x409494
cmp ax, 0x63
jne 0x409494
xor eax, eax
cmp word [edi + 4], 0x2d
setne al
add eax, 0xa
mov dword [0x41d484], eax
jmp 0x409494
cmp eax, ebx
jle 0x409494
mov eax, dword [0x41d428]
push 0x400
add eax, 0x18706
push edi
push eax
mov dword [0x41d4cc], ebx
call fcn.004031f4
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.00409074
call fcn.00404089
cmp dword [0x41d44c], esi
mov dword [0x41d3a4], esi
je 0x409565
lea eax, [ebp - 0xc8]
push eax
push 0x8002
push esi
call dword [0x41d4ac]
test eax, eax
je 0x409565
mov eax, dword [ebp - 0xc4]
mov dword [0x41d34c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push esi
push 0x40427a
push 5
call dword [0x41d3d8]
mov dword [0x41d3a4], eax
mov eax, dword [0x41d428]
push 0x104
add eax, 0x13ef6
push eax
push dword [ebp + 8]
call dword [0x41d320]
call fcn.00408ec1
mov eax, dword [0x41d428]
mov dword [0x41d3c4], esi
mov dword [0x41d300], esi
mov cl, byte [eax + 0x3a49]
test cl, 2
je 0x4095a5
mov dword [0x41d300], ebx
mov eax, dword [0x41d32c]
cmp eax, esi
jne 0x4095b9
test bl, cl
je 0x4095b9
mov eax, ebx
mov dword [0x41d32c], eax
cmp eax, 0xb
jne 0x4095c6
mov dword [0x41d32c], ebx
jmp 0x4095d1
cmp eax, 0xc
jne 0x4095d1
mov dword [0x41d32c], esi
cmp dword [0x41d484], 0xb
je 0x4095df
test cl, 8
je 0x4095e5
mov dword [0x41d484], esi
cmp dword [0x41d484], 0xa
jne 0x4095f4
mov dword [0x41d484], ebx
push ebx
push esi
call fcn.004072c1
test eax, eax
je 0x40964b
mov eax, dword [0x41d428]
push ebx
mov edi, 0x100
push 0x41cf04
add eax, 0x3643
push edi
push eax
call fcn.0040466e
mov eax, dword [0x41d428]
add eax, 0x3643
cmp word [eax], si
jne 0x409632
push eax
push edi
call dword [0x41d3c0]
mov eax, dword [0x41d428]
push 0x40882a
push esi
push dword [eax + 0x150]
push dword [ebp + 8]
call fcn.0040849e
mov eax, dword [0x41d3a4]
cmp eax, esi
je 0x40965b
push eax
call dword [0x41d504]
mov eax, dword [0x41d428]
push eax
mov esi, dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
call fcn.00404351
call fcn.00403113
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10