Function at 0x805674
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
call fcn.004059c8
xor eax, eax
push ebp
push 0x805e42
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
push ebp
push 0x805e1a
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov byte [ebp - 9], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x3c0], 0
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
call fcn.009297d0
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
call fcn.00942db4
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
cmp dword [eax + 0x1034], 2
jne 0x805701
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x805e24
xor edx, edx
push ebp
push 0x80572d
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x304]
cmp byte [eax + 0x30], 0
je 0x805723
call fcn.0077bc1c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x805737
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
xor edx, edx
call fcn.00942c10
mov eax, dword [ebp - 4]
mov byte [eax + 0x428], 0
mov eax, dword [ebp - 4]
call fcn.00809738
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
cmp dword [eax + 0xc], 0
jne 0x8059ab
mov dword [eax + 0xc], 1
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
call fcn.006dd09c
mov eax, 3
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
call fcn.006dd0b4
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
call fcn.006dd09c
mov eax, 3
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
call fcn.006dd0b4
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x358]
call fcn.006dd09c
mov eax, 3
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x358]
call fcn.006dd0b4
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
call fcn.006dd09c
mov eax, 3
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
call fcn.006dd0b4
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
call fcn.006dd09c
mov eax, 3
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
call fcn.006dd0b4
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
call fcn.006dd09c
mov eax, 3
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
call fcn.006dd0b4
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov edx, dword [eax + 0xa2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
call fcn.006cc700
xor eax, eax
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x334]
call fcn.0045840c
mov eax, 1
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x334]
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x4c]
add edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
call fcn.0045840c
mov eax, 4
call fcn.008ae474
mov edx, eax
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x348]
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x4c]
add edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
call fcn.00458458
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x32c]
sub ecx, dword [edx + 0x4c]
sar ecx, 1
jns 0x80595c
adc ecx, 0
add ecx, dword [eax + 0x44]
mov eax, ecx
xchg edx, eax
call fcn.0045840c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
call fcn.0045840c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x33c]
sub ecx, dword [edx + 0x4c]
sar ecx, 1
jns 0x8059a0
adc ecx, 0
add ecx, dword [eax + 0x44]
mov eax, ecx
xchg edx, eax
call fcn.0045840c
xor edx, edx
push ebp
push 0x805dde
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
xor edx, edx
call fcn.00458cdc
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x448], edx
mov dword [eax + 0x44c], 0xbff00000
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x450], edx
mov dword [eax + 0x454], 0xbff00000
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x460], edx
mov dword [eax + 0x464], 0xbff00000
mov eax, dword [ebp - 4]
mov byte [eax + 0x468], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x470], edx
mov dword [eax + 0x474], 0xbff00000
mov eax, dword [ebp - 4]
mov byte [eax + 0x478], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x458], 0
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov dword [eax + 0x1040], 1
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
mov eax, dword [eax + 0x558]
mov edx, 0x64
call fcn.005cf50c
mov edx, eax
xor eax, eax
call fcn.005cf504
mov edx, dword [0x98a548]
mov edx, dword [edx]
mov edx, dword [edx + 0x7c4]
mov dword [edx + 0x558], eax
mov eax, dword [0x98a738]
cmp byte [eax], 0
je 0x805ae0
mov eax, dword [0x98a698]
cmp byte [eax], 0
je 0x805ae0
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp byte [eax + 0x55c], 0
je 0x805acb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov edx, 0x2c
call fcn.006bb5b4
jmp 0x805b1e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov edx, 0x2b
call fcn.006bb5b4
jmp 0x805b1e
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp byte [eax + 0x55c], 0
je 0x805b0b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov edx, 0x22
call fcn.006bb5b4
jmp 0x805b1e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov edx, 0x21
call fcn.006bb5b4
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
mov dl, byte [eax + 0x55c]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
call fcn.00458bcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
cmp dword [eax + 0xc], 0x63
je 0x805bcb
mov dword [eax + 0xc], 0x63
xor edx, edx
call fcn.00458bcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov edx, 0x805e58
call fcn.004b1da8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x330]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
call fcn.008add24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
call fcn.0045840c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
call fcn.00458458
lea edx, [ebp - 0x10]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xe44]
call fcn.00485110
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
call fcn.004b1da8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
cmp byte [eax + 0x57], 0
jne 0x805c0d
mov dl, 1
call fcn.00458bcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov dl, 1
call fcn.00458dfc
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov ecx, dword [eax + 0xe44]
mov eax, dword [0x98a324]
mov edx, 0x805e64
call fcn.0040568c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov edx, 0x805e6c
call fcn.004b1e68
mov eax, dword [ebp - 4]
mov byte [eax + 0x428], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x42a], 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x2fc]
mov eax, dword [ebp - 4]
call fcn.008062ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
cmp byte [eax + 0x57], 0
jne 0x805cc7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
cmp byte [eax + 0x57], 0
jne 0x805cc7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
or edx, 0xffffffff
call fcn.00628c20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
or edx, 0xffffffff
call fcn.00458eb8
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x430]
push eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
call fcn.0045f564
push eax
mov eax, dword [ebp - 4]
call fcn.0045f564
mov edx, eax
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
pop ecx
call fcn.00942e28
test al, al
je 0x805d2b
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00805e78
mov byte [ebp - 9], 1
jmp 0x805dd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
xor edx, edx
call fcn.00942c10
mov eax, dword [ebp - 4]
mov byte [eax + 0x428], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x42a], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
xor edx, edx
call fcn.00458bcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov edx, dword [eax]
call dword [edx + 0x88]
xor edx, edx
push ebp
push 0x805db0
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x304]
cmp byte [eax + 0x30], 0
je 0x805da6
call fcn.0077bb88
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x805dba
mov eax, dword [ebp - 4]
call fcn.00809738
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x805e24
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x805de8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
xor edx, edx
mov dword [eax + 0xc], edx
mov edx, 0x1f4
call fcn.0044b198
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
mov dl, 1
call fcn.0044b188
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x805e24
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x805e49
lea eax, [ebp - 0x10]
call fcn.004053b0
lea eax, [ebp - 8]
call fcn.004053b0
ret