Function at 0x5059d4
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 0x50633a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x50631f
mov eax, dword [ebp - 4]
call fcn.00506d34
xor eax, eax
push ebp
push 0x50630d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00506d04
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
xor eax, eax
push ebp
push 0x5062f0
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.004f8bbc
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x505b53
mov eax, dword [ebp - 4]
call fcn.00507500
cmp dword [eax + 8], 0
jle 0x505ac3
mov eax, dword [ebp - 4]
call fcn.00507500
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov edi, eax
dec edi
test edi, edi
jl 0x505b53
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x505b4f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
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.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
inc ebx
dec edi
jne 0x505ad8
test byte [ebp - 5], 4
je 0x505d67
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov edi, eax
dec edi
test edi, edi
jl 0x505c3d
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.00501450
test al, al
je 0x505c35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x34]
call fcn.00503a64
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005059bc
test al, al
jne 0x505c35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00503a40
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
inc ebx
dec edi
jne 0x505b76
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov edi, eax
sub edi, 2
test edi, edi
jl 0x505d77
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
cmp dword [eax + 0x34], 0
je 0x505d5d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x34]
call fcn.00503b5c
add al, 0xfe
sub al, 2
jae 0x505d5d
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00504654
call fcn.00501450
test al, al
jne 0x505d5d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
lea edx, [ebp - 0x20]
call fcn.00501180
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00504654
lea edx, [ebp - 0x30]
call fcn.00501180
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040c898
test eax, eax
je 0x505d5d
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040c6a0
test eax, eax
je 0x505d14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00503b6c
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
inc ebx
dec edi
jne 0x505c58
jmp 0x505d77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x505e4a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x505e58
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x505da1
dec esi
test esi, esi
jle 0x505dd1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00504654
cmp dword [eax + 0x34], 0
je 0x505dd1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00504654
mov eax, dword [eax + 0x34]
call fcn.00503b5c
cmp al, 3
je 0x505da0
test esi, esi
jl 0x505df6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00504654
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
pop edx
call fcn.005031d0
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
dec ebx
test ebx, ebx
jne 0x505d98
jmp 0x505e58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x50600b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x505fc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov esi, eax
dec esi
cmp esi, 0
jl 0x505f77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00500184
mov edx, dword [0x4f7c30]
call fcn.004051f0
test al, al
jne 0x505f56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00500184
mov edx, dword [0x4f7b6c]
call fcn.004051f0
test al, al
jne 0x505f56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00500184
mov edx, dword [0x4f7e64]
call fcn.004051f0
test al, al
jne 0x505f56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00500184
mov edx, dword [0x4f7f38]
call fcn.004051f0
test al, al
je 0x505f6d
test ebx, ebx
jg 0x505f56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
dec eax
jne 0x505f6d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004f8c04
dec esi
cmp esi, 0xffffffff
jne 0x505ea8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.005004a0
test al, al
je 0x505fb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
test eax, eax
jne 0x505fb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.00404fdc
dec ebx
cmp ebx, 0xffffffff
jne 0x505e87
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
test byte [ebp - 5], 1
je 0x506152
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x506160
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.005004a0
test al, al
jne 0x506146
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.00501450
test al, al
je 0x506146
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x34]
call fcn.00503b40
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.00502e18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.005004a0
test al, al
je 0x5060fd
test ebx, ebx
jle 0x5060f0
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00504654
call fcn.00501450
test al, al
je 0x5060f0
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00504654
mov eax, dword [eax + 0x34]
call fcn.00503b40
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00504654
mov eax, dword [eax + 0x34]
pop edx
call fcn.00503b48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f8c04
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
dec ebx
cmp ebx, 0xffffffff
jne 0x50602c
jmp 0x506160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x506296
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x50624d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
cmp dword [eax + 0x34], 0
je 0x506202
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00503b40
test ax, ax
je 0x5061cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
dec eax
jne 0x506202
mov eax, esi
call fcn.00503a34
test al, al
jne 0x506202
mov eax, esi
call fcn.00503b50
test al, al
jne 0x506202
mov eax, esi
call fcn.00503b5c
sub al, 2
jb 0x5061fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
dec eax
jne 0x506202
mov eax, esi
call fcn.00404fdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.005004a0
test al, al
je 0x506243
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
mov eax, dword [eax + 0x30]
call fcn.004f8bbc
test eax, eax
jne 0x506243
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00504654
call fcn.00404fdc
dec ebx
cmp ebx, 0xffffffff
jne 0x50618f
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040c0d8
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5062f7
call fcn.00404390
test eax, eax
jne 0x5062b3
mov ebx, 0x64
jmp 0x5062b5
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.004350a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x6323d8]
call fcn.0040a8e8
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.00405260
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x506341
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00407160
ret