Function at 0x403497
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
push esp
pop ebp
sub esp, 0x1c0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x19c], 0x94
mov ebx, ecx
sub edi, edi
push eax
mov dword [ebp - 0x1ac], ebx
push edi
pop esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
or eax, eax
jne 0x4034dd
mov esi, 0x4b4
jmp 0x4034f4
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x198]
dec eax
je 0x40354d
dec eax
je 0x4034fe
mov esi, 0x4ca
push edi
push 0x10
push edi
push edi
jmp 0x40376e
xor ecx, ecx
inc ecx
mov dword [0x4081f8], ecx
mov dword [0x4081c4], ecx
push 2
pop eax
mov word [0x409a80], ax
cmp edx, 3
ja 0x403543
push ecx
pop eax
push 3
pop ecx
mov word [0x409a80], ax
cmp edx, ecx
jb 0x403535
jne 0x403564
cmp dword [ebp - 0x194], 0x33
jae 0x403564
mov dword [0x4081f8], edi
mov dword [0x4081c4], edi
jmp 0x403564
cmp edx, 5
jb 0x403564
push 3
pop eax
jmp 0x40355e
xor ecx, ecx
xor eax, eax
inc ecx
mov dword [0x4081f8], ecx
mov dword [0x4081c4], ecx
mov word [0x409a80], ax
cmp dword [0x408954], esi
jne 0x403777
or ebx, ebx
je 0x403777
test ax, ax
jne 0x403582
add ebx, 0x40
jmp 0x403585
add ebx, 4
mov dword [ebp - 0x1b0], ebx
mov dword [ebp - 0x1a0], edi
mov edx, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x198]
imul eax, edi, 0x18
mov dword [ebp - 0x1a4], eax
push dword [eax + ebx + 4]
push dword [eax + ebx]
call fcn.00402861
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a4]
push dword [eax + ebx + 0x10]
push dword [eax + ebx + 0xc]
call fcn.00402861
mov ecx, dword [ebp - 0x1a8]
test ecx, ecx
js 0x403676
test eax, eax
jg 0x403676
or ecx, ecx
jne 0x403615
or eax, eax
mov eax, dword [ebp - 0x190]
jne 0x403604
movzx ecx, ax
mov eax, dword [ebp - 0x1a4]
cmp ecx, dword [eax + ebx + 8]
jb 0x40362e
cmp ecx, dword [eax + ebx + 0x14]
jmp 0x40362c
mov ecx, dword [ebp - 0x1a4]
movzx eax, ax
cmp eax, dword [ecx + ebx + 8]
jae 0x40368d
jmp 0x40362e
test eax, eax
jne 0x40368d
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x190]
movzx eax, ax
cmp eax, dword [ecx + ebx + 0x14]
jbe 0x40368d
test edi, edi
je 0x40367b
mov esi, 0x54c
and dword [ebp - 0x1a0], 0
sub ebx, ebx
and dword [ebp - 0x1a8], 0
mov edx, dword [ebp - 0x1ac]
cmp esi, 0x54d
jne 0x4036c7
mov ecx, dword [edx + 0x80]
imul eax, edi, 0x3c
add ecx, 0x84
add ecx, eax
lea eax, [ebp - 0x108]
add ecx, edx
mov dword [ebp - 0x1a0], eax
jmp 0x4036cd
cmp edi, 1
je 0x403632
push 2
inc edi
pop eax
mov dword [ebp - 0x1a0], edi
cmp edi, eax
jl 0x403591
mov ecx, dword [ebp - 0x1ac]
cmp dword [ecx + 0x7c], esi
je 0x403777
lea eax, [ebp - 0x1a0]
push eax
push ecx
lea edx, [ebp - 0x108]
call fcn.004026bc
or eax, eax
jne 0x403777
mov edi, dword [ebp - 0x1a0]
mov esi, 0x54d
jmp 0x403637
mov ecx, dword [ebp - 0x1b0]
or ecx, ecx
je 0x4036fb
mov edi, dword [ecx + 0x34]
mov eax, dword [ecx + 0x30]
add edi, 0x84
add edi, edx
test al, 1
je 0x4036ea
mov ebx, 0x104
jmp 0x403701
and al, 2
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 0x101
jmp 0x403701
mov edi, dword [ebp - 0x1a8]
test byte [0x408958], 1
jne 0x40375f
cmp byte [edi], 0
je 0x40375f
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.00406534
or eax, eax
je 0x403731
push ecx
call fcn.004064d9
test eax, eax
je 0x403731
mov eax, 0x180000
jmp 0x403733
sub eax, eax
or eax, ebx
or eax, 0x30
push eax
push 0x409194
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test bl, 4
je 0x403751
cmp eax, 6
jmp 0x403759
test bl, 1
je 0x403777
cmp eax, 1
jne 0x403777
xor esi, esi
jmp 0x403777
push 0
push 0x30
push dword [ebp - 0x1a0]
push 0x409194
push esi
pop edx
sub ecx, ecx
call fcn.004041b0
mov ecx, dword [ebp - 4]
xor eax, eax
test esi, esi
pop edi
sete al
xor ecx, ebp
pop esi
pop ebx
call fcn.004069ed
mov esp, ebp
pop ebp
ret