Function at 0x42f630
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x69c638
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x76f950]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
call fcn.00430530
call fcn.00447440
mov byte [0x77c2dd], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x38], 0
lea edx, [esp + 0x20]
mov ecx, str._gclim
call fcn.004312a0
test al, al
je 0x42f6f8
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 1
push 0x6e3fcc
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42f6bc
or edi, 0xffffffff
or ebx, edi
jmp 0x42f6c9
lea ecx, [esp + 0x20]
call fcn.00402770
mov edi, eax
mov ebx, edx
mov byte [esp + 0x38], 0
test esi, esi
je 0x42f6e4
mov eax, dword [esi]
test eax, eax
jne 0x42f6e1
mov ecx, esi
call fcn.004df580
jmp 0x42f6e4
dec eax
mov dword [esi], eax
mov eax, edi
and eax, ebx
cmp eax, 0xffffffff
je 0x42f6f8
mov esi, dword [0x77a698]
jmp 0x42f7da
mov eax, dword [0x77a69c]
mov esi, dword [0x77a698]
test eax, eax
ja 0x42f7c8
jb 0x42f739
cmp esi, 0x2000000
jbe 0x42f739
test eax, eax
ja 0x42f7c8
jb 0x42f739
cmp esi, 0x3000000
jbe 0x42f739
test eax, eax
ja 0x42f7c8
jb 0x42f739
cmp esi, 0x4000000
ja 0x42f755
xorps xmm0, xmm0
movlpd qword [0x77c2f0], xmm0
mov ebx, dword [0x77c2f4]
mov edi, dword [0x77c2f0]
jmp 0x42f7da
test eax, eax
ja 0x42f7c8
jb 0x42f763
cmp esi, 0x6000000
ja 0x42f76c
mov edi, 4
xor ebx, ebx
jmp 0x42f7da
test eax, eax
ja 0x42f7c8
jb 0x42f77a
cmp esi, 0x8000000
ja 0x42f783
mov edi, 8
xor ebx, ebx
jmp 0x42f7da
test eax, eax
ja 0x42f7c8
jb 0x42f791
cmp esi, 0xc000000
ja 0x42f79a
mov edi, 0xc
xor ebx, ebx
jmp 0x42f7da
test eax, eax
ja 0x42f7c8
jb 0x42f7a8
cmp esi, 0x10000000
ja 0x42f7b1
mov edi, 0x14
xor ebx, ebx
jmp 0x42f7da
test eax, eax
ja 0x42f7c8
jb 0x42f7bf
cmp esi, 0x20000000
ja 0x42f7c8
mov edi, 0x28
xor ebx, ebx
jmp 0x42f7da
push 0
push 0xa00000
push eax
push esi
call fcn.0063d920
mov edi, eax
mov ebx, edx
shld ebx, edi, 0x14
shl edi, 0x14
mov dword [0x77c2f4], ebx
mov dword [0x77c2f0], edi
test ebx, ebx
jne 0x42f7f9
cmp edi, 0x20000000
jb 0x42f80d
mov dword [0x77c2f0], 0x20000000
mov dword [0x77c2f4], 0
cmp dword [0x77a69c], 0
ja 0x42f83d
jb 0x42f820
cmp esi, 0x4000000
ja 0x42f83d
mov eax, dword [0x793dd0]
mov dword [0x793ddc], 0x64
cmp eax, 0x64
jbe 0x42f83d
add eax, 0xffffff9c
push eax
call fcn.004ff4b0
lea edx, [esp + 0x20]
mov ecx, str._gsplit
call fcn.004312a0
test al, al
je 0x42f90a
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 2
push 0x6e3fe8
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42f885
mov dword [0x772da8], 0
jmp 0x42f8ef
push 0x6e3ff0
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42f8a3
mov dword [0x772da8], 2
jmp 0x42f8ef
push 0x6e3ff8
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
jne 0x42f8e5
push str.simple
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
jne 0x42f8e5
push str.bidi
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42f8ef
mov dword [0x772da8], 3
jmp 0x42f8ef
mov dword [0x772da8], 1
mov byte [esp + 0x38], 0
test esi, esi
je 0x42f90a
mov eax, dword [esi]
test eax, eax
jne 0x42f907
mov ecx, esi
call fcn.004df580
jmp 0x42f90a
dec eax
mov dword [esi], eax
lea edx, [esp + 0x20]
mov ecx, str._holdalpha
call fcn.004312a0
test al, al
je 0x42f97d
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 3
push 0x6e4034
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
jne 0x42f95b
push 0x6e403c
lea ecx, [esp + 0x14]
call fcn.00406ae0
mov byte [0x77c305], 0
test al, al
je 0x42f962
mov byte [0x77c305], 1
mov byte [esp + 0x38], 0
test esi, esi
je 0x42f97d
mov eax, dword [esi]
test eax, eax
jne 0x42f97a
mov ecx, esi
call fcn.004df580
jmp 0x42f97d
dec eax
mov dword [esi], eax
lea edx, [esp + 0x20]
mov ecx, str._jpegdec
call fcn.004312a0
test al, al
je 0x42fa22
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 4
push 0x6e405c
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42f9c5
mov dword [0x772dac], 1
jmp 0x42fa07
push 0x6e406c
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42f9e3
mov dword [0x772dac], 0
jmp 0x42fa07
push 0x6e4074
lea ecx, [esp + 0x14]
call fcn.00406ae0
mov ecx, dword [0x772dac]
mov edx, 2
test al, al
cmovne ecx, edx
mov dword [0x772dac], ecx
mov byte [esp + 0x38], 0
test esi, esi
je 0x42fa22
mov eax, dword [esi]
test eax, eax
jne 0x42fa1f
mov ecx, esi
call fcn.004df580
jmp 0x42fa22
dec eax
mov dword [esi], eax
call fcn.004310a0
call fcn.004f7e80
lea edx, [esp + 0x20]
mov ecx, str._timerprec
mov edi, 1
call fcn.004312a0
test al, al
je 0x42fab7
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 5
push str.high
lea ecx, [esp + 0x14]
call fcn.00406ae0
mov ecx, edi
test al, al
cmovne edi, ecx
push str.higher
lea ecx, [esp + 0x14]
call fcn.00406ae0
mov ecx, 5
test al, al
cmovne edi, ecx
push str.normal
lea ecx, [esp + 0x14]
call fcn.00406ae0
mov ecx, 0xa
test al, al
cmovne edi, ecx
mov byte [esp + 0x38], 0
test esi, esi
je 0x42fab7
mov eax, dword [esi]
test eax, eax
jne 0x42fab4
mov ecx, esi
call fcn.004df580
jmp 0x42fab7
dec eax
mov dword [esi], eax
lea edx, [esp + 0x20]
mov ecx, str._drawthread
mov ebx, 1
call fcn.004312a0
test al, al
je 0x42fb1e
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 6
push 0x6e40dc
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42faf8
xor ebx, ebx
jmp 0x42fb03
lea ecx, [esp + 0x20]
call fcn.00402770
mov ebx, eax
mov byte [esp + 0x38], 0
test esi, esi
je 0x42fb1e
mov eax, dword [esi]
test eax, eax
jne 0x42fb1b
mov ecx, esi
call fcn.004df580
jmp 0x42fb1e
dec eax
mov dword [esi], eax
mov dword [0x772ce8], ebx
test edi, edi
je 0x42fb5b
push 8
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.WINMM.dll_timeGetDevCaps]
cmp edi, dword [esp + 0x18]
cmovb edi, dword [esp + 0x18]
cmp edi, dword [esp + 0x1c]
cmova edi, dword [esp + 0x1c]
push edi
mov dword [0x77a690], edi
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov byte [0x77a68c], 1
mov dl, byte [0x77b0b8]
mov ebx, dword [0x77a6f8]
mov eax, dword [0x77b0b4]
xor dl, bl
xor byte [eax + 0x77b0c0], dl
inc eax
and eax, 0xfff
xor dl, bh
xor byte [eax + 0x77b0c0], dl
xor dl, byte [0x77a6fa]
inc eax
and eax, 0xfff
xor byte [eax + 0x77b0c0], dl
xor dl, byte [0x77a6fb]
lea ecx, [eax + 1]
and ecx, 0xfff
inc ecx
xor byte [ecx + 0x77b0bf], dl
movzx eax, bl
and ecx, 0xfff
and eax, 1
add eax, ecx
mov byte [0x77b0b8], dl
and eax, 0xfff
lea edx, [esp + 0x20]
mov ecx, str._uselfh
mov dword [0x77b0b4], eax
call fcn.004312a0
test al, al
je 0x42fcbb
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 7
push 0x6e40f8
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
jne 0x42fc1a
push 0x6e4100
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42fca0
push 4
lea eax, [esp + 0x18]
push eax
push 0
mov dword [esp + 0x20], 2
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
test eax, eax
je 0x42fc5c
call fcn.004df4c0
mov edi, eax
push 0xffffffffffffffff
push str._info__Enable_LFH
mov ecx, edi
call fcn.0040bb30
mov dword [esp + 0x18], edi
mov byte [esp + 0x38], 8
jmp 0x42fc7a
call fcn.004df4c0
mov edi, eax
push 0xffffffffffffffff
push str._info__Cannot_Enable_LFH
mov ecx, edi
call fcn.0040bb30
mov dword [esp + 0x18], edi
mov byte [esp + 0x38], 9
xor dl, dl
lea ecx, [esp + 0x18]
call fcn.004e14a0
mov byte [esp + 0x38], 7
test edi, edi
je 0x42fca0
mov eax, dword [edi]
test eax, eax
jne 0x42fc9d
mov ecx, edi
call fcn.004df580
jmp 0x42fca0
dec eax
mov dword [edi], eax
mov byte [esp + 0x38], 0
test esi, esi
je 0x42fcbb
mov eax, dword [esi]
test eax, eax
jne 0x42fcb8
mov ecx, esi
call fcn.004df580
jmp 0x42fcbb
dec eax
mov dword [esi], eax
lea edx, [esp + 0x20]
mov ecx, str._ghcompact
call fcn.004312a0
test al, al
je 0x42fd27
lea ecx, [esp + 0x20]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x38], 0xa
push 0x6e417c
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
jne 0x42fd05
push 0x6e4184
lea ecx, [esp + 0x14]
call fcn.00406ae0
test al, al
je 0x42fd0c
mov byte [0x77a645], 1
mov byte [esp + 0x38], 0
test esi, esi
je 0x42fd27
mov eax, dword [esi]
test eax, eax
jne 0x42fd24
mov ecx, esi
call fcn.004df580
jmp 0x42fd27
dec eax
mov dword [esi], eax
mov dword [esp + 0x38], 0xffffffff
lea ecx, [esp + 0x20]
call fcn.004dd7c0
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret