Function at 0x1002fd2
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b0
push ebx
push esi
push edi
lea eax, [ebp - 0xac]
xor edi, edi
push eax
mov dword [ebp - 4], edi
mov dword [ebp - 0xac], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x10030df
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 0x1003038
cmp eax, 0x54c
je 0x1003038
xor ecx, ecx
cmp eax, ecx
je 0x10030d0
push ecx
push 0x10
push ecx
push ecx
push eax
push ecx
jmp 0x10030cb
and dword [ebp - 0xc], 0
cmp eax, edx
jne 0x1003060
mov eax, dword [ebp + 8]
imul ecx, ecx, 0x3c
mov edx, dword [eax + 0x80]
add edx, ecx
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 0xc], ecx
lea esi, [edx + eax + 0x84]
jmp 0x1003063
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x34]
push dword [esi + 0x30]
lea edi, [ecx + eax + 0x84]
call fcn.010024b1
test byte [0x100ecb8], 1
mov ebx, eax
jne 0x10030ba
cmp byte [edi], 0
je 0x10030ba
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, ebx
or al, 0x30
push eax
push 0x100eff4
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test bl, 4
je 0x10030aa
cmp eax, 6
jmp 0x10030b2
test bl, 1
je 0x10030d0
cmp eax, 1
jne 0x10030d0
and dword [ebp - 4], 0
jmp 0x10030d0
push 0
push 0x30
push dword [ebp - 0xc]
push 0x100eff4
push dword [ebp - 4]
push 0
call fcn.01003ae7
xor eax, eax
pop edi
cmp dword [ebp - 4], eax
pop esi
pop ebx
sete al
leave
ret 4
mov eax, dword [ebp - 0x9c]
dec eax
je 0x1003141
dec eax
je 0x10030f7
mov dword [ebp - 4], 0x4ca
jmp 0x1003009
cmp dword [ebp - 0xa8], 3
push 1
pop ebx
mov word [0x100fe04], 2
mov dword [0x100b2f8], ebx
mov dword [0x100b2fc], ebx
ja 0x1003157
cmp dword [ebp - 0xa8], 3
mov word [0x100fe04], bx
jb 0x1003133
jne 0x1003157
cmp dword [ebp - 0xa4], 0x33
jae 0x1003157
mov dword [0x100b2f8], edi
mov dword [0x100b2fc], edi
jmp 0x1003157
push 1
mov word [0x100fe04], di
pop eax
push eax
mov dword [0x100b2f8], eax
mov dword [0x100b2fc], eax
pop ebx
cmp dword [0x100ecb4], edi
jne 0x1003009
mov esi, dword [ebp + 8]
cmp esi, edi
je 0x1003009
cmp word [0x100fe04], di
jne 0x100317c
add esi, 0x40
jmp 0x100317f
add esi, 4
mov edi, 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.010024ce
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.010024ce
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x10]
mov dword [ebp + ecx*4 - 0x18], eax
test edx, edx
jl 0x1003223
test eax, eax
jg 0x1003223
test edx, edx
jne 0x100320d
test eax, eax
jne 0x10031fb
lea eax, [ecx + ecx*2]
movzx edx, di
cmp edx, dword [esi + eax*8 + 8]
lea eax, [esi + eax*8]
jb 0x100321d
cmp edx, dword [eax + 0x14]
jmp 0x100321b
test edx, edx
jne 0x100320d
movzx edx, di
lea eax, [ecx + ecx*2]
cmp edx, dword [esi + eax*8 + 8]
jae 0x100323d
jmp 0x100321d
test eax, eax
jne 0x100323d
movzx edx, di
lea eax, [ecx + ecx*2]
cmp edx, dword [esi + eax*8 + 0x14]
jbe 0x100323d
test ecx, ecx
jne 0x1003236
jmp 0x1003227
cmp ecx, ebx
je 0x1003236
inc ecx
cmp ecx, 2
mov dword [ebp - 8], ecx
jl 0x100318a
jmp 0x100323d
mov dword [ebp - 4], 0x54c
cmp dword [ebp - 4], 0
jne 0x100300f
mov eax, dword [ebp + 8]
cmp dword [eax + 0x7c], 0
je 0x100300f
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1b0]
push 0x104
push eax
push dword [ebp + 8]
call fcn.01002325
test eax, eax
jne 0x100300c
mov dword [ebp - 4], 0x54d
jmp 0x100300c