Function at 0x479840
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x47a1b6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x47a18b
mov eax, dword [ebp - 4]
call fcn.0047ab90
xor eax, eax
push ebp
push 0x47a189
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0047ab68
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
xor eax, eax
push ebp
push 0x47a16c
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x4799bf
mov eax, dword [ebp - 4]
call fcn.0047b378
cmp dword [eax + 8], 0
jle 0x47992f
mov eax, dword [ebp - 4]
call fcn.0047b378
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov edi, eax
dec edi
test edi, edi
jl 0x4799bf
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x4799bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
inc ebx
dec edi
jne 0x479944
test byte [ebp - 5], 4
je 0x479bd3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov edi, eax
dec edi
test edi, edi
jl 0x479aa9
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.004756e0
test al, al
je 0x479aa1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x34]
call fcn.00477c58
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00479828
test al, al
jne 0x479aa1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00477c34
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
inc ebx
dec edi
jne 0x4799e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov edi, eax
sub edi, 2
test edi, edi
jl 0x479be3
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
cmp dword [eax + 0x34], 0
je 0x479bc9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x34]
call fcn.00477d50
add al, 0xfe
sub al, 2
jae 0x479bc9
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047880c
call fcn.004756e0
test al, al
jne 0x479bc9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
lea edx, [ebp - 0x20]
call fcn.00475410
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047880c
lea edx, [ebp - 0x30]
call fcn.00475410
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00408004
test eax, eax
je 0x479bc9
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00407e04
test eax, eax
je 0x479b80
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00477d60
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
inc ebx
dec edi
jne 0x479ac4
jmp 0x479be3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x479cb6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x479cc4
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x479c0d
dec esi
test esi, esi
jle 0x479c3d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0047880c
cmp dword [eax + 0x34], 0
je 0x479c3d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0047880c
mov eax, dword [eax + 0x34]
call fcn.00477d50
cmp al, 3
je 0x479c0c
test esi, esi
jl 0x479c62
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0047880c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
pop edx
call fcn.00477404
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
dec ebx
test ebx, ebx
jne 0x479c04
jmp 0x479cc4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x479e77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x479e2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov esi, eax
dec esi
cmp esi, 0
jl 0x479de3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474444
mov edx, dword [0x46ce30]
call fcn.00404058
test al, al
jne 0x479dc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474444
mov edx, dword [0x46cd7c]
call fcn.00404058
test al, al
jne 0x479dc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474444
mov edx, dword [0x46d010]
call fcn.00404058
test al, al
jne 0x479dc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474444
mov edx, dword [0x46d0d4]
call fcn.00404058
test al, al
je 0x479dd9
test ebx, ebx
jg 0x479dc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
dec eax
jne 0x479dd9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0046db58
dec esi
cmp esi, 0xffffffff
jne 0x479d14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.00474764
test al, al
je 0x479e24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
call fcn.0046db10
test eax, eax
jne 0x479e24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.00403ecc
dec ebx
cmp ebx, 0xffffffff
jne 0x479cf3
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
test byte [ebp - 5], 1
je 0x479fbe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x479fcc
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.00474764
test al, al
jne 0x479fb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.004756e0
test al, al
je 0x479fb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x34]
call fcn.00477d34
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.0047704c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.00474764
test al, al
je 0x479f69
test ebx, ebx
jle 0x479f5c
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047880c
call fcn.004756e0
test al, al
je 0x479f5c
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047880c
mov eax, dword [eax + 0x34]
call fcn.00477d34
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047880c
mov eax, dword [eax + 0x34]
pop edx
call fcn.00477d3c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0046db58
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
dec ebx
cmp ebx, 0xffffffff
jne 0x479e98
jmp 0x479fcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x47a102
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x47a0b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
cmp dword [eax + 0x34], 0
je 0x47a06e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00477d34
test ax, ax
je 0x47a038
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
dec eax
jne 0x47a06e
mov eax, esi
call fcn.00477c28
test al, al
jne 0x47a06e
mov eax, esi
call fcn.00477d44
test al, al
jne 0x47a06e
mov eax, esi
call fcn.00477d50
sub al, 2
jb 0x47a067
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db10
dec eax
jne 0x47a06e
mov eax, esi
call fcn.00403ecc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.00474764
test al, al
je 0x47a0af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
mov eax, dword [eax + 0x30]
call fcn.0046db10
test eax, eax
jne 0x47a0af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047880c
call fcn.00403ecc
dec ebx
cmp ebx, 0xffffffff
jne 0x479ffb
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040797c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x70]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47a173
call fcn.00402ff0
test eax, eax
jne 0x47a11f
mov ebx, 0x64
jmp 0x47a121
xor ebx, ebx
push ebx
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad10
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x53dd00]
call fcn.004073a4
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004040c8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47a1bd
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00404e94
ret