Function at 0x4033d7
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, dword [0x40700c]
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 0x40341d
mov esi, 0x4b4
jmp 0x403434
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x198]
dec eax
je 0x40348f
dec eax
je 0x403440
mov esi, 0x4ca
push edi
push 0x10
push edi
push edi
push esi
push edi
jmp 0x4036ac
xor ecx, ecx
inc ecx
push 2
pop eax
mov dword [0x4072d8], ecx
mov dword [0x407264], ecx
mov word [0x408b60], ax
cmp edx, 3
ja 0x403485
mov eax, ecx
push 3
pop ecx
mov word [0x408b60], ax
cmp edx, ecx
jb 0x403477
jne 0x4034a6
cmp dword [ebp - 0x194], 0x33
jae 0x4034a6
mov dword [0x4072d8], edi
mov dword [0x407264], edi
jmp 0x4034a6
cmp edx, 5
jb 0x4034a6
push 3
pop eax
jmp 0x4034a0
xor ecx, ecx
xor eax, eax
inc ecx
mov dword [0x4072d8], ecx
mov dword [0x407264], ecx
mov word [0x408b60], ax
cmp dword [0x407a34], esi
jne 0x4036b1
test ebx, ebx
je 0x4036b1
lea edi, [ebx + 0x40]
test ax, ax
je 0x4034c5
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.004027b2
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.004027b2
mov ecx, dword [ebp - 0x1a8]
test ecx, ecx
js 0x4035b5
test eax, eax
jg 0x4035b5
test ecx, ecx
jne 0x403559
test eax, eax
mov eax, dword [ebp - 0x190]
jne 0x403548
movzx ecx, ax
mov eax, dword [ebp - 0x1a4]
cmp ecx, dword [eax + edi + 8]
jb 0x403572
cmp ecx, dword [eax + edi + 0x14]
jmp 0x403570
mov ecx, dword [ebp - 0x1a4]
movzx eax, ax
cmp eax, dword [ecx + edi + 8]
jae 0x4035cc
jmp 0x403572
test eax, eax
jne 0x4035cc
mov eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x1a4]
movzx eax, ax
cmp eax, dword [ecx + edi + 0x14]
jbe 0x4035cc
test edx, edx
je 0x4035ba
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 0x403601
mov eax, dword [ecx + 0x80]
imul edx, edx, 0x3c
add eax, edx
lea edi, [ecx + 0x84]
add edi, eax
lea edx, [ebp - 0x108]
jmp 0x403607
cmp edx, 1
je 0x403576
push 2
inc edx
pop eax
mov dword [ebp - 0x1a0], edx
cmp edx, eax
jl 0x4034cd
cmp dword [ebx + 0x7c], esi
je 0x4036b1
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x108]
push eax
push ebx
call fcn.00402612
test eax, eax
jne 0x4036b1
mov edx, dword [ebp - 0x1a0]
mov esi, 0x54d
jmp 0x40357b
mov edx, dword [ebp - 0x1a8]
test edi, edi
je 0x40363a
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 0x403629
mov ebx, 0x104
jmp 0x40363c
and al, 2
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 0x101
jmp 0x40363c
mov ecx, ebx
test byte [0x407a38], 1
jne 0x40369f
cmp byte [ecx], 0
je 0x40369f
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.00406396
test eax, eax
je 0x40366b
call fcn.00406346
test eax, eax
je 0x40366b
mov eax, 0x180000
jmp 0x40366d
xor eax, eax
or eax, ebx
or eax, 0x30
push eax
mov eax, dword [ebp - 0x1a0]
push 0x408274
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test bl, 4
je 0x403691
cmp eax, 6
jmp 0x403699
test bl, 1
je 0x4036b1
cmp eax, 1
jne 0x4036b1
xor esi, esi
jmp 0x4036b1
push 0
push 0x30
push edx
push 0x408274
push esi
push 0
call fcn.004040e2
mov ecx, dword [ebp - 4]
xor eax, eax
test esi, esi
pop edi
sete al
pop esi
xor ecx, ebp
pop ebx
call fcn.004068a6
leave
ret