Function at 0x56f574
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 8]
mov ebx, dword [ebx + 8]
mov ebx, dword [ebx + 8]
add ebx, 0xffffffe4
mov byte [ebp - 1], 0
xor edi, edi
mov byte [ebp - 9], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x1c], eax
xor edx, edx
push ebp
push 0x56fda2
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebx]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
cmp eax, dword [edx - 0x24]
jae 0x56fab7
mov eax, dword [ebx]
cmp byte [eax], 0x7b
jne 0x56f6ff
mov eax, dword [ebx]
call fcn.00635e70
test al, al
je 0x56f6ea
mov eax, dword [ebx]
add eax, 3
call fcn.00635e84
test al, al
je 0x56f6ea
lea edx, [ebp - 0x28]
mov eax, dword [ebx]
add eax, 4
call fcn.00635eb0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x28]
mov dword [eax - 0x794], edx
mov edx, dword [ebp - 0x24]
mov dword [eax - 0x790], edx
mov edx, dword [ebp - 0x20]
mov dword [eax - 0x78c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00636030
mov esi, eax
mov eax, esi
sub ax, 0xd6
je 0x56f667
sub ax, 0x60
je 0x56f691
jmp 0x56f6d5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax - 0x790]
mov eax, esi
call fcn.005716c4
pop ecx
mov byte [ebp - 9], 3
jmp 0x56faa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
or word [eax - 2], 0x1000
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax - 0x790]
mov eax, esi
call fcn.005716c4
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
and word [eax - 2], 0xefff
jmp 0x56faa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00568a5c
pop ecx
jmp 0x56faa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00568a5c
pop ecx
jmp 0x56faa0
mov eax, dword [ebx]
call fcn.00635e84
test al, al
je 0x56fa28
lea edx, [ebp - 0x28]
mov eax, dword [ebx]
inc eax
call fcn.00635eb0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x28]
mov dword [eax - 0x794], edx
mov edx, dword [ebp - 0x24]
mov dword [eax - 0x790], edx
mov edx, dword [ebp - 0x20]
mov dword [eax - 0x78c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00636030
movzx eax, ax
cmp eax, 0x138
jg 0x56f7a2
je 0x56f980
cmp eax, 0x134
jg 0x56f789
je 0x56f915
sub eax, 0x1d
je 0x56f7df
sub eax, 0x6f
je 0x56f90c
sub eax, 0x49
je 0x56fa01
jmp 0x56fa14
sub eax, 0x135
je 0x56f933
sub eax, 2
je 0x56f951
jmp 0x56fa14
cmp eax, 0x13f
jg 0x56f7c6
je 0x56fa07
sub eax, 0x13a
je 0x56f9ac
dec eax
je 0x56f9c7
jmp 0x56fa14
sub eax, 0x1e9
je 0x56f9e2
sub eax, 7
je 0x56fa0d
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x790]
inc eax
add dword [ebx], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov dword [eax - 0x790], 0xffffffff
test edi, edi
jle 0x56f905
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
cmp edi, dword [eax - 0x7ac]
jle 0x56f882
lea eax, [edi + edi*2]
sar eax, 1
jns 0x56f83c
adc eax, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov dword [edx - 0x7ac], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7a8]
call fcn.00401fac
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7ac]
call fcn.00401e58
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov dword [edx - 0x7a8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov esi, dword [eax - 0x7a8]
lea eax, [edi + esi]
mov dword [ebp - 0x10], eax
cmp esi, dword [ebp - 0x10]
jae 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x24]
sub eax, dword [ebx]
mov edx, dword [ebp - 0x10]
sub edx, esi
call fcn.0065b28c
mov dword [ebp - 0x14], eax
mov edx, esi
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x14]
call fcn.004023c8
add esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add dword [ebx], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x24]
sub eax, dword [ebx]
cmp eax, 0x20
jge 0x56f8fb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00566cc4
pop ecx
cmp esi, dword [ebp - 0x10]
jb 0x56f8a0
jmp 0x56fa14
xor edi, edi
jmp 0x56fa14
mov byte [ebp - 9], 1
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x28], eax
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, eax
mov eax, 0x3e8
call fcn.0065b28c
call fcn.0065b2a8
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x34], eax
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, eax
mov eax, 0x3e8
call fcn.0065b28c
call fcn.0065b2a8
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x38], eax
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x24], eax
jmp 0x56fa14
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
jmp 0x56fa14
mov byte [ebp - 9], 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.00635f08
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x20], eax
jmp 0x56fa14
mov byte [ebp - 9], 3
jmp 0x56fa14
mov byte [ebp - 9], 4
jmp 0x56fa14
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3c], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x790]
inc eax
add dword [ebx], eax
jmp 0x56fa77
mov eax, dword [ebx]
mov al, byte [eax]
xor edx, edx
mov dl, al
mov ecx, dword [0x672420]
cmp byte [ecx + edx], 0xff
je 0x56fa6d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x7ac]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff858
call fcn.00568788
pop ecx
mov edi, eax
jmp 0x56fab7
cmp al, 0x7d
jne 0x56fa75
inc dword [ebx]
jmp 0x56fab7
inc dword [ebx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x24]
sub eax, dword [ebx]
cmp eax, 0x20
jge 0x56faa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00566cc4
pop ecx
mov eax, dword [ebx]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
cmp eax, dword [edx - 0x24]
jb 0x56f5e5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
call fcn.00561aa0
test al, al
je 0x56faff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
mov eax, dword [eax + 0x24]
call fcn.004b2de0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
call fcn.00561ae4
jmp 0x56fd98
cmp byte [ebp - 9], 0
je 0x56fb1b
test edi, edi
jne 0x56fb28
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
cmp dword [eax - 0x7b0], 0
jne 0x56fb28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56fdb7
xor eax, eax
push ebp
push 0x56fd7f
push dword fs:[eax]
mov dword fs:[eax], esp
mov al, byte [ebp - 9]
dec eax
sub al, 2
jb 0x56fb4d
je 0x56fb80
dec al
je 0x56fc19
jmp 0x56fc3a
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x46], 0
push edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7a8]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055e620
cmp byte [ebp - 9], 2
sete al
mov edx, dword [ebp - 0x18]
mov byte [edx + 0x44], al
jmp 0x56fc3a
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x46], 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
cmp dword [eax - 0x7b0], 0
jne 0x56fbb8
push edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7a8]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055e620
jmp 0x56fc3a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7b0]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7b4]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055e620
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7b4]
call fcn.00401fac
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
xor edx, edx
mov dword [eax - 0x7b4], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
xor edx, edx
mov dword [eax - 0x7b0], edx
jmp 0x56fc3a
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x46], 1
push edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7a8]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055e620
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x2c], 0
jle 0x56fc50
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x30], 0
jg 0x56fd75
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055e4e0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x34], 0x64
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x38], 0x64
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0x46]
dec al
je 0x56fc7e
dec al
je 0x56fca5
jmp 0x56fcc9
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
jmp 0x56fd3c
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x3c]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x3c]
mov edx, dword [eax]
call dword [edx + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
jmp 0x56fd3c
mov dl, 1
mov eax, dword [0x64ddc0]
call fcn.00650168
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x56fd35
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x46], 0
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 8]
call fcn.00650750
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 8]
call fcn.00650b2c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56fd3c
mov eax, dword [ebp - 8]
call fcn.004028c0
ret
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
mov edx, eax
shl eax, 4
sub eax, edx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x30]
mov edx, eax
shl eax, 4
sub eax, edx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
call fcn.0053a1b8
test al, al
je 0x56fd75
mov dl, 1
mov eax, dword [ebp - 0x18]
call fcn.0055e4e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56fd98
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56fdb3
mov byte [ebp - 1], 1
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret