Function at 0x79bc52
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
push ebx
xor ebx, ebx
cmp byte [0xac04e8], bl
jne 0x79bf8f
push esi
push edi
mov dword [0xac0214], ebx
mov dword [0xac0210], ebx
mov dword [0xac0224], ebx
mov dword [0xac0208], ebx
mov dword [0x8e8474], ebx
mov dword [0xac0204], ebx
mov dword [0xac0200], ebx
mov dword [0xac01fc], ebx
mov dword [0xac020c], ebx
mov dword [0xac0218], ebx
mov dword [0x8e847c], ebx
mov dword [0x8e8478], ebx
mov dword [0xac0228], ebx
mov dword [0xac021c], ebx
mov dword [0xac0220], ebx
mov dword [0x8e8480], ebx
mov byte [0xac0470], bl
call fcn.0079f380
test eax, eax
je 0x79bf3e
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x28]
mov dword [0x8e8474], eax
lea eax, [ebp - 0x14]
push ebx
push eax
mov dword [ebp - 4], ebx
call fcn.0079f39b
mov eax, dword [ebp - 0x14]
cmp eax, ebx
lea esi, [ebp - 0x10]
mov edi, 0xac0470
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
movsd dword es:[edi], dword [esi]
pop ecx
mov dword [ebp - 0x18], eax
mov byte [0xac047c], bl
jle 0x79bf48
push 0xd
mov eax, 0xac0470
pop edx
mov edi, str.GenuineIntel
mov esi, eax
mov ecx, edx
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x79bd41
xor edi, edi
inc edi
mov dword [0x8e8480], edi
jmp 0x79bd93
mov edi, str.AuthenticAMD
mov esi, eax
mov ecx, edx
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x79bd5c
mov dword [0xac021c], 1
jmp 0x79bd90
mov edi, str.CyrixInstead
mov esi, eax
mov ecx, edx
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x79bd77
mov dword [0xac0220], 1
jmp 0x79bd90
mov esi, eax
mov edi, str.CentaurHauls
mov ecx, edx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x79bd90
mov dword [0xac0228], 1
xor edi, edi
inc edi
lea eax, [ebp - 0x14]
push edi
push eax
call fcn.0079f39b
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
mov eax, ecx
mov edx, ecx
sar eax, 8
sar edx, 4
and eax, 0xf
and edx, 0xf
and ecx, 0xf
cmp eax, 6
mov dword [0xac01fc], eax
mov dword [0xac0200], edx
mov dword [0xac0204], ecx
jl 0x79bdd1
mov dword [0x8e8478], edi
mov esi, SysReAllocStringLen
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.0079f39b
xor ebx, ebx
cmp dword [0xac021c], ebx
pop ecx
pop ecx
je 0x79be19
cmp dword [ebp - 0x14], esi
jbe 0x79be19
lea eax, [ebp - 0x14]
push reloc.DSOUND.dll_DirectSoundCreate
push eax
call fcn.0079f39b
mov eax, dword [ebp - 0xc]
pop ecx
pop ecx
mov ecx, eax
shr ecx, 0x1f
shr eax, 0x16
and eax, edi
mov dword [0xac0224], ecx
mov dword [0xac020c], eax
lea eax, [ebp - 0x14]
push edi
push eax
call fcn.0079f39b
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, ecx
shr eax, 0x1a
mov edx, ecx
shr edx, 0x17
and eax, edi
and edx, edi
mov dword [0xac0214], eax
mov eax, ecx
mov dword [0xac0208], edx
mov edx, ecx
shr eax, 0x19
shr edx, 4
shr ecx, 0xf
and eax, edi
and edx, edi
and ecx, edi
cmp eax, ebx
mov dword [0xac0210], eax
mov dword [0x8e847c], edx
mov dword [0xac0218], ecx
je 0x79be6f
mov dword [0xac020c], edi
push str.ISMMX
call fcn.00821d1b
cmp eax, ebx
pop ecx
je 0x79be8a
push eax
call fcn.0081cda3
pop ecx
mov dword [0xac0208], eax
push str.ISK3D
call fcn.00821d1b
cmp eax, ebx
pop ecx
je 0x79bea5
push eax
call fcn.0081cda3
pop ecx
mov dword [0xac0224], eax
lea eax, [ebp - 0xd0]
push eax
mov dword [ebp - 0xd0], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0xc0], edi
jne 0x79bed8
cmp dword [ebp - 0xc8], ebx
jne 0x79bed8
mov dword [0xac0214], ebx
mov dword [0xac0210], ebx
push str.ISSSE
call fcn.00821d1b
cmp eax, ebx
pop ecx
je 0x79bef3
push eax
call fcn.0081cda3
pop ecx
mov dword [0xac0210], eax
push str.ISSSE2
call fcn.00821d1b
cmp eax, ebx
pop ecx
je 0x79bf0e
push eax
call fcn.0081cda3
pop ecx
mov dword [0xac0214], eax
push str.ISMOVNT
call fcn.00821d1b
cmp eax, ebx
pop ecx
je 0x79bf29
push eax
call fcn.0081cda3
pop ecx
mov dword [0xac020c], eax
cmp dword [ebp - 0x18], 2
jl 0x79bf48
lea eax, [ebp - 0x14]
push 2
push eax
call fcn.0079f39b
pop ecx
pop ecx
jmp 0x79bf48
call fcn.0079f3b9
mov dword [0xac0220], eax
call fcn.0079b824
mov ecx, eax
cmp ecx, ebx
pop edi
mov eax, 0xf4240
pop esi
jne 0x79bf64
call fcn.0079b8f7
push 5
mov ecx, eax
pop eax
mul ecx
cmp edx, ebx
mov dword [0xac04f0], eax
mov dword [0xac04f4], edx
mov dword [0xac04ec], eax
ja 0x79bf7f
cmp eax, 0xffffffff
jb 0x79bf86
or dword [0xac04ec], 0xffffffff
mov byte [0xac04e8], 1
jmp 0x79bf9a
mov edx, dword [0xac04f4]
mov eax, dword [0xac04f0]
cmp dword [0xac04ec], ebx
je 0x79c07a
mov dword [0xac0480], eax
mov dword [0xac0484], edx
call fcn.0079f3db
mov edx, 0xac0488
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp cl, bl
jne 0x79bfbb
mov eax, dword [0x8e8474]
mov dword [0xac0498], eax
xor eax, eax
mov cl, byte [eax + 0xac0470]
mov byte [eax + 0xac049c], cl
inc eax
cmp cl, bl
jne 0x79bfd1
mov eax, dword [0xac01fc]
mov dword [0xac04ac], eax
mov eax, dword [0xac0200]
mov dword [0xac04b0], eax
mov eax, dword [0xac0204]
mov dword [0xac04b4], eax
mov eax, dword [0x8e8478]
mov dword [0xac04b8], eax
mov eax, dword [0x8e8480]
mov dword [0xac04bc], eax
mov eax, dword [0xac021c]
mov dword [0xac04c0], eax
mov eax, dword [0xac0220]
mov dword [0xac04c4], eax
mov eax, dword [0xac0228]
mov dword [0xac04c8], eax
mov eax, dword [0x8e847c]
mov dword [0xac04cc], eax
mov eax, dword [0xac0218]
mov dword [0xac04d0], eax
mov eax, dword [0xac020c]
mov dword [0xac04d4], eax
mov eax, dword [0xac0208]
mov dword [0xac04d8], eax
mov eax, dword [0xac0210]
mov dword [0xac04dc], eax
mov eax, dword [0xac0214]
mov dword [0xac04e0], eax
mov eax, dword [0xac0224]
mov dword [0xac04e4], eax
jmp 0x79c088
push 0x68
push 0xac0480
call fcn.0079af42
pop ecx
pop ecx
mov eax, dword [0xac04ec]
pop ebx
leave
ret