Function at 0x1003296
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b0
push ebx
push esi
lea eax, [ebp - 0xac]
push edi
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0xac], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x10033c7
mov dword [ebp - 4], 0x4b4
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov edx, 0x54d
cmp eax, edx
je 0x10032fc
cmp eax, 0x54c
je 0x10032fc
xor ecx, ecx
cmp eax, ecx
je 0x10033b8
push ecx
push 0x10
push ecx
push ecx
push eax
push ecx
jmp 0x10033b3
xor ebx, ebx
cmp dword [ebp - 4], edx
jne 0x100331e
imul ecx, ecx, 0x3c
mov eax, dword [ebp + 8]
lea ebx, [ebp - 0x1b0]
add ecx, dword [eax + 0x80]
lea esi, [ecx + eax + 0x84]
jmp 0x1003321
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x34]
push dword [esi + 0x30]
lea edi, [ecx + eax + 0x84]
call fcn.0100274b
test byte [0x100aab8], 1
mov dword [ebp + 8], eax
jne 0x10033a4
cmp byte [edi], 0
je 0x10033a4
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.01005dd2
test eax, eax
je 0x100336f
push 1
push 0x10
push dword [0x100b6dc]
call fcn.01005d84
test eax, eax
je 0x100336f
mov eax, 0x180000
jmp 0x1003371
xor eax, eax
mov ecx, dword [ebp + 8]
or ecx, eax
or ecx, 0x30
push ecx
push 0x100adf4
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test byte [ebp + 8], 4
je 0x1003393
cmp eax, 6
jmp 0x100339c
test byte [ebp + 8], 1
je 0x10033b8
cmp eax, 1
jne 0x10033b8
and dword [ebp - 4], 0
jmp 0x10033b8
push 0
push 0x30
push ebx
push 0x100adf4
push dword [ebp - 4]
push 0
call fcn.01003e44
xor eax, eax
pop edi
cmp dword [ebp - 4], eax
pop esi
pop ebx
sete al
leave
ret 4
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa8]
dec eax
je 0x1003435
dec eax
je 0x10033e5
mov dword [ebp - 4], 0x4ca
jmp 0x10032cd
push 1
mov word [0x100bc04], 2
pop edi
push 3
mov dword [0x100a2f8], edi
pop eax
mov dword [0x100a2fc], edi
cmp ecx, eax
ja 0x1003428
cmp ecx, eax
mov word [0x100bc04], di
jb 0x100341a
jne 0x100344b
cmp dword [ebp - 0xa4], 0x33
jae 0x100344b
mov dword [0x100a2f8], ebx
mov dword [0x100a2fc], ebx
jmp 0x100344b
cmp ecx, 5
jb 0x100344b
mov word [0x100bc04], ax
jmp 0x100344b
push 1
mov word [0x100bc04], bx
pop eax
push eax
mov dword [0x100a2f8], eax
mov dword [0x100a2fc], eax
pop edi
cmp dword [0x100aab4], ebx
jne 0x10032cd
mov esi, dword [ebp + 8]
cmp esi, ebx
je 0x10032cd
cmp word [0x100bc04], bx
jne 0x1003470
add esi, 0x40
jmp 0x1003473
add esi, 4
mov ebx, dword [ebp - 0xa0]
xor ecx, ecx
mov dword [ebp - 8], ecx
lea eax, [ecx + ecx*2]
push dword [esi + eax*8 + 4]
lea eax, [esi + eax*8]
push dword [eax]
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
call fcn.01002768
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x10], eax
lea eax, [ecx + ecx*2]
push dword [esi + eax*8 + 0x10]
lea eax, [esi + eax*8]
push dword [eax + 0xc]
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
call fcn.01002768
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x10]
mov dword [ebp + ecx*4 - 0x18], eax
test edx, edx
jl 0x1003517
test eax, eax
jg 0x1003517
test edx, edx
jne 0x1003501
test eax, eax
jne 0x10034ef
lea eax, [ecx + ecx*2]
movzx edx, bx
cmp edx, dword [esi + eax*8 + 8]
lea eax, [esi + eax*8]
jb 0x1003511
cmp edx, dword [eax + 0x14]
jmp 0x100350f
test edx, edx
jne 0x1003501
movzx edx, bx
lea eax, [ecx + ecx*2]
cmp edx, dword [esi + eax*8 + 8]
jae 0x1003531
jmp 0x1003511
test eax, eax
jne 0x1003531
movzx edx, bx
lea eax, [ecx + ecx*2]
cmp edx, dword [esi + eax*8 + 0x14]
jbe 0x1003531
test ecx, ecx
jne 0x100352a
jmp 0x100351b
cmp ecx, edi
je 0x100352a
inc ecx
cmp ecx, 2
mov dword [ebp - 8], ecx
jl 0x100347e
jmp 0x1003531
mov dword [ebp - 4], 0x54c
cmp dword [ebp - 4], 0
jne 0x10032d3
mov eax, dword [ebp + 8]
cmp dword [eax + 0x7c], 0
je 0x10032d3
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1b0]
push 0x104
push eax
push dword [ebp + 8]
call fcn.010025d4
test eax, eax
jne 0x10032d0
mov dword [ebp - 4], 0x54d
jmp 0x10032d0