Function at 0x664238
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x664688
push dword fs:[eax]
mov dword fs:[eax], esp
or edi, 0xffffffff
or esi, 0xffffffff
xor ebx, ebx
lea eax, [ebp - 0x14c]
call fcn.0042e39c
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 4]
call fcn.00425e40
call fcn.0042e360
dec eax
je 0x6642ad
dec eax
je 0x664335
jmp case.default.0x66451f
call fcn.0042e388
sub eax, 0xa
jb 0x6642c3
sub eax, 0x50
jb 0x6642ef
je 0x66432e
jmp case.default.0x66451f
mov eax, dword [ebp - 4]
mov edx, 0x6646a4
call fcn.0040b690
je 0x6642e1
mov eax, dword [ebp - 4]
mov edx, 0x6646b4
call fcn.0040b690
jne 0x6642e8
mov bl, 2
jmp case.default.0x66451f
mov bl, 1
jmp case.default.0x66451f
cmp dword [0x6d19c0], 0x4005a
jne 0x664302
mov bl, 5
jmp case.default.0x66451f
mov eax, dword [ebp - 4]
mov edx, 0x6646c4
call fcn.0040b690
je 0x664320
mov eax, dword [ebp - 4]
mov edx, 0x6646a4
call fcn.0040b690
jne 0x664327
mov bl, 4
jmp case.default.0x66451f
mov bl, 3
jmp case.default.0x66451f
mov bl, 5
jmp case.default.0x66451f
call fcn.0042e374
add eax, 0xfffffffd
cmp eax, 7
ja case.default.0x66451f
jmp dword [eax*4 + 0x66434d]
call fcn.0042e388
dec eax
je 0x664384
sub eax, 4
je 0x66438b
sub eax, 0x2e
je 0x664392
jmp case.default.0x66451f
mov bl, 6
jmp case.default.0x66451f
mov bl, 7
jmp case.default.0x66451f
mov bl, 8
jmp case.default.0x66451f
mov bl, 9
jmp case.default.0x66451f
call fcn.0042e388
sub eax, 1
jb 0x6643b4
je 0x6643bb
dec eax
je 0x6643c2
jmp case.default.0x66451f
mov bl, 0xa
jmp case.default.0x66451f
mov bl, 0xb
jmp case.default.0x66451f
mov dword [ebp - 0x148], 0x11c
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
call fcn.00664b50
push 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x6643eb
mov bl, 0xe
jmp case.default.0x66451f
cmp word [ebp - 0x2c], 0
je 0x66440f
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x66440f
cmp byte [ebp - 0x2e], 1
jne 0x66440f
mov bl, 0xd
jmp case.default.0x66451f
mov bl, 0xc
jmp case.default.0x66451f
call fcn.0042e388
cmp eax, 2
jne 0x66450d
push 0
lea eax, [ebp - 8]
push eax
mov ecx, 0x6646d4
mov edx, 0x6646f8
mov eax, 0x80000002
call fcn.00667334
lea edx, [ebp - 0x150]
mov eax, dword [0x6ca7cc]
call fcn.004100a8
mov eax, dword [ebp - 0x150]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
je 0x66448a
lea edx, [ebp - 0x154]
mov eax, dword [0x6ca8a0]
call fcn.004100a8
mov eax, dword [ebp - 0x154]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
jne 0x664494
mov esi, 3
jmp 0x664514
lea edx, [ebp - 0x158]
mov eax, dword [0x6cab2c]
call fcn.004100a8
mov eax, dword [ebp - 0x158]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
je 0x6644e0
lea edx, [ebp - 0x15c]
mov eax, dword [0x6cabb8]
call fcn.004100a8
mov eax, dword [ebp - 0x15c]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
jne 0x6644e7
mov esi, 2
jmp 0x664514
call fcn.00664754
mov edi, eax
cmp edi, 6
jne 0x6644fa
mov esi, 4
jmp 0x664514
cmp edi, 0xa
jne 0x664504
or esi, 0xffffffff
jmp 0x664514
call fcn.0042e388
mov esi, eax
jmp 0x664514
call fcn.0042e388
mov esi, eax
mov eax, esi
cmp eax, 4
ja case.default.0x66451f
jmp dword [eax*4 + 0x664526]
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x664561
cmp byte [ebp - 0x2e], 1
jne 0x664561
mov bl, 0xf
jmp case.default.0x66451f
mov bl, 0x10
jmp case.default.0x66451f
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x66458f
cmp byte [ebp - 0x2e], 1
jne 0x66458f
mov bl, 0x11
jmp case.default.0x66451f
mov bl, 0x12
jmp case.default.0x66451f
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x6645ba
cmp byte [ebp - 0x2e], 1
jne 0x6645ba
mov bl, 0x13
jmp case.default.0x66451f
mov bl, 0x15
jmp case.default.0x66451f
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x6645e2
cmp byte [ebp - 0x2e], 1
jne 0x6645e2
mov bl, 0x16
jmp case.default.0x66451f
mov bl, 0x18
jmp case.default.0x66451f
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x66460a
cmp byte [ebp - 0x2e], 1
jne 0x66460a
mov bl, 0x19
jmp case.default.0x66451f
mov bl, 0x1a
jmp case.default.0x66451f
call fcn.0042e374
mov edi, eax
call fcn.0042e388
mov esi, eax
cmp edi, 0xa
jl 0x66465d
sub edi, 0xa
jne 0x66465d
cmp esi, 0xffffffff
jne 0x664632
call fcn.0066494c
mov esi, eax
sub esi, 1
jae 0x66465d
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x66465b
cmp byte [ebp - 0x2e], 1
jne 0x66465b
mov bl, 0x19
jmp 0x66465d
mov bl, 0x1a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x66468f
lea eax, [ebp - 0x15c]
mov edx, 5
call fcn.0040a830
lea eax, [ebp - 8]
mov edx, 2
call fcn.0040a830
ret