Function at 0x4036af
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1bc
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 ebx, ecx
xor edi, edi
push eax
mov dword [ebp - 0x1ac], ebx
mov esi, edi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x4036f8
mov esi, 0x4b4
jmp 0x403944
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x198]
push 2
pop ecx
sub eax, 1
je 0x40376a
sub eax, 1
je 0x40371b
mov esi, 0x4ca
jmp 0x403944
xor eax, eax
mov word [0x409a40], cx
inc eax
mov dword [0x408184], eax
mov dword [0x408180], eax
cmp edx, 3
ja 0x40375d
mov ecx, eax
push 3
pop eax
mov word [0x409a40], cx
cmp edx, eax
jb 0x40374f
jne 0x403780
cmp dword [ebp - 0x194], 0x33
jae 0x403780
mov dword [0x408184], edi
mov dword [0x408180], edi
jmp 0x403780
cmp edx, 5
jb 0x403780
push 3
pop eax
mov cx, ax
jmp 0x403779
xor eax, eax
xor ecx, ecx
inc eax
mov dword [0x408184], eax
mov dword [0x408180], eax
mov word [0x409a40], cx
cmp dword [0x408a34], esi
jne 0x4039da
test ebx, ebx
je 0x4039da
xor eax, eax
test cx, cx
setne al
add ebx, 4
lea edi, [eax - 1]
and edi, 0x3c
add edi, ebx
xor ebx, ebx
mov dword [ebp - 0x1a8], ebx
mov edx, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x198]
imul eax, ebx, 0x18
mov dword [ebp - 0x1a0], eax
push dword [eax + edi + 4]
push dword [eax + edi]
call fcn.00402a5a
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a0]
push dword [eax + edi + 0x10]
push dword [eax + edi + 0xc]
call fcn.00402a5a
mov ecx, dword [ebp - 0x1a4]
mov edx, 0x54d
test ecx, ecx
js 0x4038d4
test eax, eax
jg 0x4038d4
test ecx, ecx
jne 0x40383c
test eax, eax
mov eax, dword [ebp - 0x190]
jne 0x403827
movzx ecx, ax
mov eax, dword [ebp - 0x1a0]
cmp ecx, dword [eax + edi + 8]
jb 0x40385d
cmp ecx, dword [eax + edi + 0x14]
jmp 0x403857
mov ecx, dword [ebp - 0x1a0]
movzx eax, ax
cmp eax, dword [ecx + edi + 8]
jae 0x4038f4
jmp 0x40385d
test eax, eax
jne 0x4038f4
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x190]
movzx eax, ax
cmp eax, dword [ecx + edi + 0x14]
jbe 0x4038f4
test ebx, ebx
je 0x4038d9
mov esi, 0x54c
and dword [ebp - 0x1a4], 0
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x1a0], ecx
cmp esi, edx
mov edx, dword [ebp - 0x1ac]
jne 0x4038a6
imul eax, dword [ebp - 0x1a8], 0x3c
lea edi, [edx + 0x84]
mov ecx, dword [edx + 0x80]
add ecx, eax
lea eax, [ebp - 0x108]
add edi, ecx
mov dword [ebp - 0x1a4], eax
mov ecx, ebx
test edi, edi
je 0x40395d
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x30]
add ecx, 0x84
add ecx, edx
mov dword [ebp - 0x1a0], ecx
test al, 1
je 0x40394e
mov ebx, 0x104
jmp 0x40395d
cmp ebx, 1
je 0x4038eb
inc ebx
mov dword [ebp - 0x1a8], ebx
cmp ebx, 2
jl 0x4037af
jmp 0x4038f0
mov esi, 0x54c
test esi, esi
jne 0x403926
mov ecx, dword [ebp - 0x1ac]
cmp dword [ecx + 0x7c], 0
je 0x4039da
lea eax, [ebp - 0x1a8]
push eax
push ecx
lea edx, [ebp - 0x108]
call fcn.004028b9
test eax, eax
jne 0x4039da
mov edx, 0x54d
mov esi, edx
cmp esi, edx
je 0x403866
cmp esi, 0x54c
je 0x403866
test esi, esi
je 0x4039da
xor edi, edi
push edi
push 0x10
push edi
push edi
jmp 0x4039d1
and al, 2
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 0x101
test byte [0x408a38], 1
jne 0x4039c2
test ecx, ecx
je 0x4039c2
cmp byte [ecx], 0
je 0x4039c2
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.004067bf
test eax, eax
je 0x403991
push ecx
call fcn.00406769
test eax, eax
je 0x403991
mov eax, 0x180030
jmp 0x403994
push 0x30
pop eax
or eax, ebx
push eax
push 0x409154
push dword [ebp - 0x1a0]
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test bl, 4
je 0x4039b4
cmp eax, 6
jmp 0x4039bc
test bl, 1
je 0x4039da
cmp eax, 1
jne 0x4039da
xor esi, esi
jmp 0x4039da
push 0
push 0x30
push dword [ebp - 0x1a4]
push 0x409154
mov edx, esi
xor ecx, ecx
call fcn.00404469
mov ecx, dword [ebp - 4]
xor eax, eax
test esi, esi
pop edi
sete al
xor ecx, ebp
pop esi
pop ebx
call fcn.00406ca0
mov esp, ebp
pop ebp
ret