Function at 0x4038a8
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c0
mov eax, dword [0x408004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x19c], 0x94
mov edi, ecx
xor ebx, ebx
push eax
mov dword [ebp - 0x1ac], edi
mov esi, ebx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x4038ee
mov esi, 0x4b4
jmp 0x40390c
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x198]
push 2
pop ecx
sub eax, 1
je 0x403961
sub eax, 1
je 0x403916
mov esi, 0x4ca
push ebx
push 0x10
push ebx
push ebx
jmp 0x403b85
xor ebx, ebx
mov word [0x409a40], cx
push 3
inc ebx
pop eax
mov dword [0x408184], ebx
mov dword [0x408180], ebx
cmp edx, eax
ja 0x403957
mov ecx, ebx
mov word [0x409a40], cx
jb 0x403949
jne 0x403979
cmp dword [ebp - 0x194], 0x33
jae 0x403979
and dword [0x408184], esi
and dword [0x408180], esi
jmp 0x403979
cmp edx, 5
jb 0x403979
mov cx, ax
jmp 0x403972
xor ebx, ebx
xor ecx, ecx
inc ebx
mov dword [0x408184], ebx
mov dword [0x408180], ebx
mov word [0x409a40], cx
cmp dword [0x408a34], esi
jne 0x403b8e
test edi, edi
je 0x403b8e
xor eax, eax
test cx, cx
setne al
xor ecx, ecx
dec eax
mov dword [ebp - 0x1a0], ecx
and eax, 0x3c
add eax, 4
add edi, eax
and dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x194]
imul eax, ecx, 0x18
mov ecx, dword [ebp - 0x198]
mov dword [ebp - 0x1a8], eax
push dword [eax + edi + 4]
push dword [eax + edi]
call fcn.00402bdd
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x1a8]
push dword [eax + edi + 0x10]
push dword [eax + edi + 0xc]
call fcn.00402bdd
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1a0]
test edx, edx
js 0x403a95
test eax, eax
jg 0x403a95
test edx, edx
jne 0x403a36
test eax, eax
mov eax, dword [ebp - 0x190]
jne 0x403a25
movzx edx, ax
mov eax, dword [ebp - 0x1a8]
cmp edx, dword [eax + edi + 8]
jb 0x403a4f
cmp edx, dword [eax + edi + 0x14]
jmp 0x403a4d
mov edx, dword [ebp - 0x1a8]
movzx eax, ax
cmp eax, dword [edx + edi + 8]
jae 0x403ab3
jmp 0x403a4f
test eax, eax
jne 0x403ab3
mov edx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x190]
movzx eax, ax
cmp eax, dword [edx + edi + 0x14]
jbe 0x403ab3
test ecx, ecx
je 0x403a9d
xor edx, edx
mov esi, 0x54c
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x1a4], eax
test edi, edi
je 0x403b16
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [edi + 0x34]
add ecx, 0x84
add eax, ecx
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x1a4], eax
test cl, 1
je 0x403b06
mov ebx, 0x104
jmp 0x403b16
cmp dword [ebp - 0x1a4], ebx
je 0x403a53
inc ecx
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x1a4], ecx
cmp ecx, 2
jl 0x4039ac
mov ebx, dword [ebp - 0x1ac]
cmp dword [ebx + 0x7c], esi
je 0x403b8e
lea eax, [ebp - 0x1a0]
push eax
push ecx
lea edx, [ebp - 0x108]
mov ecx, ebx
call fcn.00402a2c
test eax, eax
jne 0x403b8e
imul eax, dword [ebp - 0x1a0], 0x3c
lea edi, [ebx + 0x84]
mov ecx, dword [ebx + 0x80]
lea edx, [ebp - 0x108]
mov esi, 0x54d
add ecx, eax
add edi, ecx
jmp 0x403a5a
and cl, 2
movzx ebx, cl
neg ebx
sbb ebx, ebx
and ebx, 0x101
test byte [0x408a38], 1
jne 0x403b7b
test eax, eax
je 0x403b7b
cmp byte [eax], 0
je 0x403b7b
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.00406a9d
test eax, eax
je 0x403b4a
push ecx
call fcn.00406a43
test eax, eax
je 0x403b4a
mov eax, 0x180030
jmp 0x403b4d
push 0x30
pop eax
or eax, ebx
push eax
push 0x409154
push dword [ebp - 0x1a4]
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test bl, 4
je 0x403b6d
cmp eax, 6
jmp 0x403b75
test bl, 1
je 0x403b8e
cmp eax, 1
jne 0x403b8e
xor esi, esi
jmp 0x403b8e
push 0
push 0x30
push edx
push 0x409154
mov edx, esi
xor ecx, ecx
call fcn.00404657
mov ecx, dword [ebp - 4]
xor eax, eax
test esi, esi
pop edi
sete al
xor ecx, ebp
pop esi
pop ebx
call fcn.00406f80
leave
ret