Function at 0x403467
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x19c]
mov ebx, ecx
xor edi, edi
push eax
mov dword [ebp - 0x1ac], ebx
mov esi, edi
mov dword [ebp - 0x19c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x4034ad
mov esi, 0x4b4
jmp 0x4034c4
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x198]
dec eax
je 0x40351f
dec eax
je 0x4034d0
mov esi, 0x4ca
push edi
push 0x10
push edi
push edi
push esi
push edi
jmp 0x40373c
xor ecx, ecx
inc ecx
push 2
pop eax
mov dword [0x4085e0], ecx
mov dword [0x40856c], ecx
mov word [0x409e60], ax
cmp edx, 3
ja 0x403515
mov eax, ecx
push 3
pop ecx
mov word [0x409e60], ax
cmp edx, ecx
jb 0x403507
jne 0x403536
cmp dword [ebp - 0x194], 0x33
jae 0x403536
mov dword [0x4085e0], edi
mov dword [0x40856c], edi
jmp 0x403536
cmp edx, 5
jb 0x403536
push 3
pop eax
jmp 0x403530
xor ecx, ecx
xor eax, eax
inc ecx
mov dword [0x4085e0], ecx
mov dword [0x40856c], ecx
mov word [0x409e60], ax
cmp dword [0x408d34], esi
jne 0x403741
test ebx, ebx
je 0x403741
lea edi, [ebx + 0x40]
test ax, ax
je 0x403555
lea edi, [ebx + 4]
xor edx, edx
mov dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x198]
mov eax, edx
imul eax, eax, 0x18
push dword [eax + edi + 4]
mov dword [ebp - 0x1a4], eax
push dword [eax + edi]
mov eax, dword [ebp - 0x194]
call fcn.00402842
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a4]
push dword [eax + edi + 0x10]
push dword [eax + edi + 0xc]
mov eax, dword [ebp - 0x194]
call fcn.00402842
mov ecx, dword [ebp - 0x1a8]
test ecx, ecx
js 0x403645
test eax, eax
jg 0x403645
test ecx, ecx
jne 0x4035e9
test eax, eax
mov eax, dword [ebp - 0x190]
jne 0x4035d8
movzx ecx, ax
mov eax, dword [ebp - 0x1a4]
cmp ecx, dword [eax + edi + 8]
jb 0x403602
cmp ecx, dword [eax + edi + 0x14]
jmp 0x403600
mov ecx, dword [ebp - 0x1a4]
movzx eax, ax
cmp eax, dword [ecx + edi + 8]
jae 0x40365c
jmp 0x403602
test eax, eax
jne 0x40365c
mov eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x1a4]
movzx eax, ax
cmp eax, dword [ecx + edi + 0x14]
jbe 0x40365c
test edx, edx
je 0x40364a
mov esi, 0x54c
and dword [ebp - 0x1a8], 0
mov ecx, dword [ebp - 0x1ac]
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x1a0], eax
cmp esi, 0x54d
jne 0x403691
mov eax, dword [ecx + 0x80]
imul edx, edx, 0x3c
add eax, edx
lea edi, [ecx + 0x84]
add edi, eax
lea edx, [ebp - 0x108]
jmp 0x403697
cmp edx, 1
je 0x403606
push 2
inc edx
pop eax
mov dword [ebp - 0x1a0], edx
cmp edx, eax
jl 0x40355d
cmp dword [ebx + 0x7c], esi
je 0x403741
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x108]
push eax
push ebx
call fcn.004026a2
test eax, eax
jne 0x403741
mov edx, dword [ebp - 0x1a0]
mov esi, 0x54d
jmp 0x40360b
mov edx, dword [ebp - 0x1a8]
test edi, edi
je 0x4036ca
mov eax, dword [edi + 0x34]
add eax, 0x84
add ecx, eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x1a0], ecx
test al, 1
je 0x4036b9
mov ebx, 0x104
jmp 0x4036cc
and al, 2
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 0x101
jmp 0x4036cc
mov ecx, ebx
test byte [0x408d38], 1
jne 0x40372f
cmp byte [ecx], 0
je 0x40372f
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.00406425
test eax, eax
je 0x4036fb
call fcn.004063d5
test eax, eax
je 0x4036fb
mov eax, 0x180000
jmp 0x4036fd
xor eax, eax
or eax, ebx
or eax, 0x30
push eax
mov eax, dword [ebp - 0x1a0]
push 0x409574
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test bl, 4
je 0x403721
cmp eax, 6
jmp 0x403729
test bl, 1
je 0x403741
cmp eax, 1
jne 0x403741
xor esi, esi
jmp 0x403741
push 0
push 0x30
push edx
push 0x409574
push esi
push 0
call fcn.00404172
mov ecx, dword [ebp - 4]
xor eax, eax
test esi, esi
pop edi
sete al
pop esi
xor ecx, ebp
pop ebx
call fcn.00406935
leave
ret