Function at 0x879ae8
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
call fcn.00405880
lea eax, [ebp - 0xc]
call fcn.00405880
xor eax, eax
push ebp
push 0x879fb4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.004055f0
jne 0x879b34
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004055f0
je 0x879f99
xor edx, edx
push ebp
push 0x879f92
push dword fs:[edx]
mov dword fs:[edx], esp
xor ecx, ecx
mov dl, 1
mov eax, dword [0x629c30]
call fcn.0062ad18
mov dword [ebp - 0x10], eax
xor edx, edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x12c]
mov eax, dword [ebp - 0x10]
call fcn.00637aa0
mov byte [eax + 0x30], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x88]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov ebx, dword [0x8a91bc]
mov ebx, dword [ebx]
imul ebx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov eax, 0x64
call fcn.00432610
mov edx, eax
xor eax, eax
call fcn.004326fc
mov edx, dword [0x8a91bc]
imul dword [edx]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
call fcn.0043040c
mov edi, eax
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.004055f0
je 0x879c75
mov eax, dword [edi + 0xc]
mov edx, 0x879fcc
call fcn.0042a894
mov eax, dword [edi + 0xc]
mov edx, 0xa
call fcn.0042a90c
mov eax, dword [edi + 0xc]
mov dl, byte [0x879fd4]
call fcn.0042a938
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
call fcn.0043040c
mov edx, dword [ebp - 8]
call fcn.004a25e8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
call fcn.0043040c
mov edx, dword [ebp - 8]
call fcn.004a25cc
mov edx, dword [0x8a91bc]
mov edx, dword [edx]
imul edx, dword [ebp + 0x24]
add edx, 3
add edx, edx
add eax, edx
mov edx, eax
mov eax, esi
call fcn.004326fc
mov esi, eax
mov edx, 0xfa
mov eax, esi
call fcn.004326fc
mov esi, eax
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004055f0
je 0x879ce8
mov edx, dword [ebp + 0x18]
mov eax, edi
call fcn.0042b818
push 0xa
lea eax, [ebp - 0x31]
push eax
mov ecx, esi
sub ecx, ebx
sub ecx, 3
sub ecx, dword [ebp + 0xc]
lea eax, [ebx + 3]
add eax, dword [ebp + 0xc]
xor edx, edx
call fcn.0041d124
lea eax, [ebp - 0x31]
push eax
mov eax, dword [ebp + 0x10]
or eax, 0x40c10
push eax
mov eax, dword [ebp - 0xc]
call fcn.004054d8
push eax
mov eax, edi
call fcn.0042b91c
push eax
mov eax, dword [ebp - 0xc]
call fcn.004054c8
mov edx, eax
pop eax
pop ecx
call fcn.00474648
mov dword [ebp - 0x18], eax
lea eax, [ebx + 3]
mov edi, eax
add edi, edi
add edi, dword [ebp - 0x14]
add edi, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0
jle 0x879cfe
add edi, 0xa
mov eax, dword [ebp - 0x10]
call fcn.00637aa0
mov edx, 0xffffff
call fcn.005ed478
cmp byte [ebp + 0x1c], 0
je 0x879d1c
mov byte [ebp - 0x21], 0
jmp 0x879d20
mov byte [ebp - 0x21], 2
push 1
mov al, byte [ebp - 0x21]
push eax
push 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
add eax, edi
add eax, dword [ebp - 0x1c]
add eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00637aa0
mov edx, esi
pop ecx
call fcn.005ed80c
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x88]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
call fcn.0043040c
mov esi, eax
cmp byte [ebp + 0x1c], 0
jne 0x879d79
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
jmp 0x879d93
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, edi
mov dword [ebp - 0x20], eax
test ebx, ebx
jle 0x879dd7
mov eax, dword [esi + 0x14]
mov edx, dword [ebp + 0x2c]
call fcn.0042ae58
mov eax, dword [ebp - 0x20]
add eax, edi
push eax
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
mov edx, dword [ebp - 0x20]
xor eax, eax
call fcn.0041d124
lea edx, [ebp - 0x44]
mov eax, esi
call fcn.0042b2d0
mov eax, dword [esi + 0x14]
mov edx, dword [ebp + 0x28]
call fcn.0042ae58
sub edi, ebx
add edi, dword [ebp - 0x20]
push edi
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
sub ecx, ebx
mov edx, dword [ebp - 0x20]
add edx, ebx
mov eax, ebx
call fcn.0041d124
lea edx, [ebp - 0x44]
mov eax, esi
call fcn.0042b2d0
cmp dword [ebp - 0x14], 0
jle 0x879ec2
mov eax, dword [esi + 0xc]
mov edx, 0x879fcc
call fcn.0042a894
mov eax, dword [esi + 0xc]
mov edx, 0xa
call fcn.0042a90c
mov eax, dword [esi + 0xc]
mov dl, byte [0x879fd4]
call fcn.0042a938
mov eax, dword [esi + 0xc]
xor edx, edx
call fcn.0042a66c
lea eax, [ebx + 3]
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x31]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
sub ecx, ebx
sub ecx, 3
lea edx, [ebx + 3]
add edx, dword [ebp - 0x20]
lea eax, [ebx + 3]
call fcn.0041d124
mov eax, dword [esi + 0xc]
call fcn.0087f3dc
lea eax, [ebp - 0x31]
push eax
push 0x810
mov eax, dword [ebp - 8]
call fcn.004054d8
push eax
mov eax, esi
call fcn.0042b91c
push eax
mov eax, dword [ebp - 8]
call fcn.004054c8
mov edx, eax
pop eax
pop ecx
call fcn.00474648
cmp dword [ebp - 0x18], 0
jle 0x879f62
mov edx, dword [ebp + 0x18]
mov eax, esi
call fcn.0042b818
mov eax, dword [esi + 0xc]
mov edx, dword [ebp + 0x14]
call fcn.0042a66c
lea eax, [ebx + 3]
add eax, 5
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x31]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
sub ecx, ebx
sub ecx, 3
sub ecx, dword [ebp + 0xc]
lea edx, [ebx + 3]
add edx, dword [ebp - 0x14]
add edx, 5
add edx, dword [ebp - 0x20]
lea eax, [ebx + 3]
add eax, dword [ebp + 0xc]
call fcn.0041d124
mov eax, dword [esi + 0xc]
call fcn.0087f3dc
lea eax, [ebp - 0x31]
push eax
mov eax, dword [ebp + 0x10]
or eax, 0x40810
push eax
mov eax, dword [ebp - 0xc]
call fcn.004054d8
push eax
mov eax, esi
call fcn.0042b91c
push eax
mov eax, dword [ebp - 0xc]
call fcn.004054c8
mov edx, eax
pop eax
pop ecx
call fcn.00474648
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00645d50
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x879f99
lea eax, [ebp - 0x10]
call fcn.00411378
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x879fbb
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00405280
ret