Function at 0x514cc0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x78c0d8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x856918]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
movzx edi, word [esi + 0xa8]
lea ebx, [esi + 0xa8]
call fcn.005139a0
movzx eax, di
add eax, 0xffffffd2
cmp eax, 0x49
ja case.0x514d11.47
movzx eax, byte [eax + 0x515274]
jmp dword [eax*4 + 0x515250]
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx]
test al, 0x10
je 0x514d34
and al, 1
movsx eax, al
neg eax
sbb eax, eax
add eax, 0xa
push eax
jmp 0x515230
and al, 1
movsx eax, al
neg eax
sbb eax, eax
add eax, 2
push eax
jmp 0x515230
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
and eax, 0x10
or eax, 6
shr eax, 1
push eax
jmp 0x515230
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
and edx, 0x10
or edx, 8
shr edx, 1
push edx
jmp 0x515230
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
and ecx, 0x10
or ecx, 0xa
shr ecx, 1
push ecx
jmp 0x515230
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
and eax, 0x10
or eax, 0xc
shr eax, 1
push eax
jmp 0x515230
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
and edx, 0x10
or edx, 0xe
shr edx, 1
push edx
jmp 0x515230
mov eax, dword [esp + 0x40]
test byte [eax], 0x10
mov ecx, 0
setne cl
lea ecx, [ecx*8 + 8]
push ecx
jmp 0x515230
lea eax, [esp + 0x1c]
mov edx, 0x3a
xor ebp, ebp
mov edi, 1
push eax
mov ecx, ebx
mov word [esp + 0x20], dx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
call fcn.0050eb70
test eax, eax
je 0x514e93
lea ecx, [esp + 0x1c]
call fcn.0050eff0
mov dword [esp + 0x38], ebp
movzx eax, word [ebx]
movzx ecx, al
cmp cx, ax
jne 0x514e17
mov dl, byte [ebx]
mov byte [esp + 0x14], dl
jmp 0x514e1c
mov byte [esp + 0x14], 0
push edi
push edi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
call fcn.0050f170
mov ecx, esi
call fcn.005139a0
cmp word [ebx], bp
je 0x514e43
cmp word [ebx], 0x5d
jne 0x514e04
cmp dword [ebx + 4], edi
jne 0x514e04
mov ecx, esi
call fcn.005139a0
push 0x10
call fcn.005645f4
mov edi, eax
add esp, 4
cmp edi, ebp
je 0x514e77
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
and edx, 0x10
push edx
lea ecx, [esp + 0x20]
call fcn.0050f030
push eax
mov ecx, edi
call fcn.0050fb70
jmp 0x514e79
xor eax, eax
push eax
mov ecx, esi
call fcn.0050ec20
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.0050e420
mov eax, esi
jmp 0x515237
lea ecx, [esp + 0x1c]
mov eax, 0x5e
push ecx
mov ecx, ebx
mov word [esp + 0x20], ax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
call fcn.0050eb70
test eax, eax
je 0x514ed1
mov ecx, esi
call fcn.005139a0
push 0x48
call fcn.005645f4
add esp, 4
cmp eax, ebp
je 0x514ef3
push ebp
jmp 0x514ee0
push 0x48
call fcn.005645f4
add esp, 4
cmp eax, ebp
je 0x514ef3
push edi
mov edx, dword [esp + 0x44]
mov ecx, dword [edx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.00512540
jmp 0x514ef5
xor eax, eax
push eax
mov ecx, esi
call fcn.0050ec20
mov ebp, eax
mov dword [esp + 0x18], ebp
cmp word [ebx], 0
jne 0x514f13
cmp dword [ebx + 4], 1
je 0x515016
cmp word [ebx], 0x5d
jne 0x514f23
cmp dword [ebx + 4], 1
je 0x515016
cmp dword [esi + 0xac], 1
movzx edi, word [ebx]
jne 0x514fa9
cmp di, 0x2e
je 0x514f8f
cmp di, 0x77
je 0x514f8f
cmp di, 0x57
je 0x514f8f
cmp di, 0x73
je 0x514f8f
cmp di, 0x53
je 0x514f8f
cmp di, 0x64
je 0x514f8f
cmp di, 0x44
je 0x514f8f
cmp di, 0x5b
jne 0x514fa9
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1c]
mov edx, 0x3a
push eax
lea ecx, [esi + 0xb8]
mov word [esp + 0x20], dx
mov dword [esp + 0x24], 1
call fcn.0050eb70
test eax, eax
je 0x514fa9
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, esi
call fcn.00514cc0
push eax
lea ecx, [ebp + 0x2c]
call fcn.0050eba0
jmp 0x514f03
cmp word [esi + 0xb8], 0x2d
jne 0x515001
cmp dword [esi + 0xbc], 1
jne 0x515001
cmp dword [esi + 0xcc], 0
jne 0x515001
mov ebp, dword [esp + 0x18]
add ebp, 4
push edi
mov ecx, ebp
call fcn.0050eee0
movzx edx, word [esi + 0xc8]
push edx
mov ecx, ebp
call fcn.0050eee0
mov ecx, esi
call fcn.005139a0
mov ecx, esi
call fcn.005139a0
mov ecx, esi
call fcn.005139a0
mov ebp, dword [esp + 0x18]
jmp 0x514f03
push edi
lea ecx, [ebp + 0x18]
call fcn.0050eee0
mov ecx, esi
call fcn.005139a0
jmp 0x514f03
mov ecx, esi
call fcn.005139a0
mov eax, dword [esp + 0x40]
test byte [eax], 8
je 0x515228
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
add esi, 4
cdq
sub eax, edx
sar eax, 1
xor edi, edi
mov dword [esp + 0x40], eax
test eax, eax
jle 0x51515b
jmp 0x515050
mov ecx, dword [esi + 0xc]
movzx eax, word [ecx + edi*4]
lea ecx, [ecx + edi*4]
cmp ax, 0x5a
ja 0x5150d0
cmp word [ecx + 2], 0x41
jb 0x5150d0
mov edx, 0x41
cmp dx, ax
jbe 0x515075
mov eax, edx
jmp 0x515078
movzx eax, ax
movzx eax, ax
push eax
call fcn.00569769
mov ecx, dword [esi + 0xc]
movzx ebp, ax
movzx eax, word [ecx + edi*4 + 2]
mov edx, 0x5a
add esp, 4
cmp dx, ax
jae 0x51509d
mov eax, edx
jmp 0x5150a0
movzx eax, ax
movzx eax, ax
push eax
call fcn.00569769
mov ecx, dword [esi + 0xc]
movzx ebx, ax
lea eax, [ecx + edi*4]
add esp, 4
cmp bp, word [eax]
jb 0x5150c0
cmp bx, word [eax + 2]
jbe 0x5150d0
push ebp
mov ecx, esi
call fcn.0050eee0
push ebx
mov ecx, esi
call fcn.0050eee0
mov edx, dword [esi + 0xc]
movzx eax, word [edx + edi*4]
lea ecx, [edx + edi*4]
cmp ax, 0x7a
ja 0x515150
cmp word [ecx + 2], 0x61
jb 0x515150
mov ecx, 0x61
cmp cx, ax
jbe 0x5150f5
mov eax, ecx
jmp 0x5150f8
movzx eax, ax
movzx edx, ax
push edx
call fcn.0056766e
movzx ebp, ax
mov eax, dword [esi + 0xc]
movzx eax, word [eax + edi*4 + 2]
mov ecx, 0x7a
add esp, 4
cmp cx, ax
jae 0x51511d
mov eax, ecx
jmp 0x515120
movzx eax, ax
movzx edx, ax
push edx
call fcn.0056766e
movzx ebx, ax
mov eax, dword [esi + 0xc]
lea eax, [eax + edi*4]
add esp, 4
cmp bp, word [eax]
jb 0x515140
cmp bx, word [eax + 2]
jbe 0x515150
push ebp
mov ecx, esi
call fcn.0050eee0
push ebx
mov ecx, esi
call fcn.0050eee0
inc edi
cmp edi, dword [esp + 0x40]
jl 0x515050
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x20]
add esi, 0x18
xor ebx, ebx
mov dword [esp + 0x40], eax
test eax, eax
jle 0x515228
mov ebp, dword [esp + 0x18]
jmp 0x515180
mov eax, dword [esi + 0xc]
lea edi, [ebx + ebx]
movzx ecx, word [eax + edi]
add eax, edi
push ecx
call fcn.005690e1
add esp, 4
test eax, eax
je 0x5151d0
mov eax, dword [esi + 0xc]
movzx edx, word [eax + edi]
add eax, edi
push edx
call fcn.00569769
add esp, 4
push eax
mov ecx, ebp
call fcn.0050fdf0
test eax, eax
jne 0x5151d0
mov eax, dword [esi + 0xc]
add eax, edi
movzx eax, word [eax]
push eax
call fcn.00569769
add esp, 4
push eax
mov ecx, esi
call fcn.0050eee0
mov eax, dword [esi + 0xc]
movzx ecx, word [eax + edi]
add eax, edi
push ecx
call fcn.00569160
add esp, 4
test eax, eax
je 0x51521d
mov eax, dword [esi + 0xc]
movzx edx, word [eax + edi]
add eax, edi
push edx
call fcn.0056766e
add esp, 4
push eax
mov ecx, ebp
call fcn.0050fdf0
test eax, eax
jne 0x51521d
mov eax, dword [esi + 0xc]
add eax, edi
movzx eax, word [eax]
push eax
call fcn.0056766e
add esp, 4
push eax
mov ecx, esi
call fcn.0050eee0
inc ebx
cmp ebx, dword [esp + 0x40]
jl 0x515180
mov eax, dword [esp + 0x18]
jmp 0x515237
push 0
mov ecx, esi
call fcn.00513e80
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4