Function at 0x4544c0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4cbdf6
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eadc8]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
cmp dword [ebp + 0x46e40], 2
jne 0x45468e
mov ecx, dword [0x639220]
call fcn.00489840
test eax, eax
jne 0x45453e
mov edi, 0x4dbd00
call fcn.004021e0
push eax
call fcn.00441e30
add esp, 4
push 0
push 1
call fcn.004838e0
add esp, 8
test eax, eax
je 0x455224
mov byte [0x6391a2], 1
jmp 0x455224
mov ecx, dword [0x639220]
push 2
call fcn.0048a3b0
test eax, eax
je 0x455224
mov ecx, dword [0x639220]
call fcn.0048a3f0
mov cl, byte [eax]
xor ebx, ebx
cmp cl, bl
jne 0x454578
mov ecx, dword [0x639220]
push 1
call fcn.0048a670
jmp 0x455224
cmp cl, 0xfe
jne 0x455224
movzx eax, byte [eax + 1]
sub eax, 1
je 0x454668
sub eax, 5
je 0x454602
sub eax, 0xe
jne 0x455224
mov edi, 0x4df89c
call fcn.004021e0
push eax
call fcn.00441e30
add esp, 4
cmp byte [0x4f78e4], bl
je 0x455224
cmp byte [0x4f78e6], bl
jne 0x455224
mov ecx, dword [0x639220]
push 2
mov byte [0x4f78e4], bl
mov byte [0x4f78e5], bl
mov byte [0x4f78e6], bl
mov dword [ebp + 0x46e40], 1
call fcn.0048a670
mov byte [ebp + 0x202], 4
mov byte [ebp + 0x203], bl
jmp 0x455224
mov edi, 0x4df798
call fcn.004021e0
push eax
call fcn.00441e30
add esp, 4
cmp byte [0x4f78e4], bl
je 0x455224
cmp byte [0x4f78e6], bl
jne 0x455224
mov ecx, dword [0x639220]
push 2
mov byte [0x4f78e4], bl
mov byte [0x4f78e5], bl
mov byte [0x4f78e6], bl
mov dword [ebp + 0x46e40], 1
call fcn.0048a670
mov byte [ebp + 0x202], 4
mov byte [ebp + 0x203], bl
jmp 0x455224
mov ecx, dword [0x639220]
push 2
mov dword [ebp + 0x46e40], ebx
call fcn.0048a670
mov byte [ebp + 0x202], 2
mov byte [ebp + 0x203], 0x27
jmp 0x455224
xor edi, edi
cmp byte [0x6392f6], 0
je 0x4546f4
cmp byte [0x4f78e4], 0
je 0x4546ab
cmp byte [0x4f78e6], 0
je 0x4546d8
push edi
push 1
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x4546d8
push edi
push 0x39
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x4546d8
push edi
push 0x1c
call fcn.004838e0
add esp, 8
test eax, eax
je 0x4546f4
mov byte [0x6392f6], 0
mov byte [0x4f78e4], 0
mov byte [0x4f78e5], 0
mov byte [0x4f78e6], 0
cmp dword [0x639494], edi
je 0x454a20
push edi
push 1
call fcn.004838e0
add esp, 8
test eax, eax
je 0x454715
mov dword [0x639494], edi
mov eax, dword [0x639498]
sub eax, 4
je 0x45498a
sub eax, 1
je 0x454965
sub eax, 1
je 0x454965
cmp byte [0x4f78e4], 1
jne 0x454933
cmp byte [0x4f78e6], 0
jne 0x454933
cmp dword [0x4f78e8], 0x64
jle 0x454933
mov edi, dword [0x4f78ec]
cmp edi, 0x1f4
jge 0x454933
lea eax, [edi - 0x8d]
cmp eax, 0x12
ja 0x4547a4
push 1
push 0x8c
push 0xdc
mov edi, 0xc
mov ebx, 0x639440
call fcn.00433ec0
mov edi, dword [0x4f78ec]
mov dword [0x639498], 1
lea ecx, [edi - 0xa1]
cmp ecx, 0x12
ja 0x4547da
push 1
push 0xa0
push 0xdc
mov edi, 0xc
mov ebx, 0x639450
call fcn.00433ec0
mov edi, dword [0x4f78ec]
mov dword [0x639498], 2
lea edx, [edi - 0xb5]
cmp edx, 0x12
ja 0x454810
push 1
push 0xb4
push 0xdc
mov edi, 0xc
mov ebx, 0x639460
call fcn.00433ec0
mov edi, dword [0x4f78ec]
mov dword [0x639498], 3
lea eax, [edi - 0xdd]
cmp eax, 0x12
ja 0x454908
add ebp, 0x426be
mov ecx, 0x639440
mov eax, ebp
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x454850
test dl, dl
je 0x45484c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x454850
add eax, 2
add ecx, 2
test dl, dl
jne 0x454830
xor eax, eax
jmp 0x454855
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x454908
mov ecx, 0x639460
mov eax, 0x639450
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x454887
test dl, dl
je 0x454883
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x454887
add eax, 2
add ecx, 2
test dl, dl
jne 0x454867
xor eax, eax
jmp 0x45488c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x454908
mov eax, 0x639450
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x454898
sub eax, edx
cmp eax, 4
jb 0x454908
call fcn.00433f60
mov ecx, dword [0x639220]
push 8
call fcn.00489fd0
mov ecx, dword [0x639220]
push 0xd
push ebp
call fcn.0048a1b0
mov ecx, dword [0x639220]
push 0xd
push 0x639450
call fcn.0048a1b0
mov ecx, dword [0x639220]
call fcn.0048a2d0
mov edi, dword [0x4f78ec]
mov dword [0x639498], 4
mov byte [0x4f78e4], 0
mov byte [0x4f78e5], 0
mov byte [0x4f78e6], 0
add edi, 0xfffffed3
cmp edi, 0x12
ja 0x454933
call fcn.00433f60
xor eax, eax
mov dword [0x639498], eax
mov dword [0x639494], eax
mov byte [0x4f78e4], al
mov byte [0x4f78e5], al
mov byte [0x4f78e6], al
push 0
push 0x1c
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x454956
push eax
push 0xf
call fcn.004838e0
add esp, 8
test eax, eax
je 0x455224
mov dword [0x639498], 0
jmp 0x455224
cmp byte [0x4f78e4], 1
jne 0x455224
cmp byte [0x4f78e6], 0
jne 0x455224
mov dword [0x639494], edi
jmp 0x45520f
mov ecx, dword [0x639220]
push 2
call fcn.0048a3b0
test eax, eax
je 0x455224
mov ecx, dword [0x639220]
call fcn.0048a3f0
mov cl, byte [eax]
test cl, cl
jne 0x4549c2
mov ecx, dword [0x639220]
push 1
call fcn.0048a670
jmp 0x455224
cmp cl, 0xfe
jne 0x455224
cmp byte [eax + 1], 1
jne 0x454a04
mov eax, 0x639450
sub ebp, eax
mov dword [0x639498], 5
add ebp, 0x426be
mov cl, byte [eax]
mov byte [eax + ebp], cl
inc eax
test cl, cl
jne 0x4549e8
mov ecx, dword [0x639220]
push 2
call fcn.0048a670
jmp 0x455224
mov ecx, dword [0x639220]
push 2
mov dword [0x639498], 6
call fcn.0048a670
jmp 0x455224
mov ecx, dword [0x639220]
push 1
call fcn.0048a3b0
or ebx, 0xffffffff
test eax, eax
je case.0x454a5a.1
mov ecx, dword [0x639220]
call fcn.0048a3f0
mov edi, eax
movzx eax, byte [edi]
cmp eax, 0xfe
ja case.0x454a5a.1
movzx ecx, byte [eax + 0x4552a4]
jmp dword [ecx*4 + 0x455288]
mov ecx, dword [0x639220]
push 1
call fcn.0048a670
jmp case.0x454a5a.1
mov ecx, dword [0x639220]
push 0x1b
call fcn.0048a3b0
test eax, eax
je case.0x454a5a.1
call fcn.00454390
test al, al
je case.0x454a5a.1
mov byte [0x6392d3], 1
mov dword [ebp + 0x46e40], 1
jmp 0x454e06
mov ecx, dword [0x639220]
push 6
call fcn.0048a3b0
test eax, eax
je case.0x454a5a.1
call fcn.00454430
jmp case.0x454a5a.1
mov dl, byte [edi + 1]
mov byte [ebp + 0x42668], dl
mov eax, dword [edi + 2]
mov dword [ebp + 0x4266c], eax
mov ecx, dword [edi + 6]
mov dword [ebp + 0x42670], ecx
mov ecx, dword [0x639220]
push 0xa
call fcn.0048a670
jmp case.0x454a5a.1
mov ecx, dword [0x639220]
push 2
call fcn.0048a3b0
test eax, eax
je case.0x454a5a.1
mov al, byte [edi + 1]
test al, al
je case.0x454b85.12
cmp byte [0x6392d3], 0
mov byte [0x6392d2], al
jne 0x454b56
mov ecx, dword [0x639220]
mov dword [ebp + 0x46e40], 1
mov byte [ebp + 0x42739], 0
push 2
mov byte [0x6392d3], 1
mov byte [esi + 0x969], 2
call fcn.0048a670
jmp case.0x454a5a.1
mov ecx, dword [0x4ed29c]
movzx eax, al
cmp ecx, ebx
je 0x454c50
inc dword [0x63933c]
mov dword [0x639470], eax
add eax, 0xfffffff6
cmp eax, 0xd
ja case.0x454b85.12
movzx edx, byte [eax + 0x4553c0]
jmp dword [edx*4 + 0x4553a4]
imul ecx, ecx, 0x34
mov byte [ecx + 0x63936d], 2
mov ecx, dword [0x639220]
push 2
call fcn.0048a670
jmp case.0x454a5a.1
imul ecx, ecx, 0x34
mov byte [ecx + 0x63936d], 1
mov ecx, dword [0x639220]
push 2
call fcn.0048a670
jmp case.0x454a5a.1
push 0x34
push 0
push 0x639340
call fcn.00493ca0
mov ecx, dword [0x639220]
add esp, 0xc
push 2
call fcn.0048a670
jmp case.0x454a5a.1
push 0x34
push 0
push 0x639374
call fcn.00493ca0
mov ecx, dword [0x639220]
add esp, 0xc
push 2
call fcn.0048a670
jmp case.0x454a5a.1
push 0x34
push 0
push 0x6393a8
call fcn.00493ca0
mov ecx, dword [0x639220]
add esp, 0xc
push 2
call fcn.0048a670
jmp case.0x454a5a.1
push 0x34
push 0
push 0x6393dc
call fcn.00493ca0
mov ecx, dword [0x639220]
add esp, 0xc
push 2
call fcn.0048a670
jmp case.0x454a5a.1
sub eax, 2
je 0x454c73
sub eax, 1
jne case.0x454b85.12
mov ecx, dword [0x639220]
push 2
mov byte [0x6392d2], 6
call fcn.0048a670
jmp case.0x454a5a.1
mov byte [0x6392d2], 5
mov ecx, dword [0x639220]
push 2
call fcn.0048a670
jmp case.0x454a5a.1
mov ecx, dword [0x639220]
push 0x1402
call fcn.0048a3b0
test eax, eax
je case.0x454a5a.1
mov ecx, dword [0x639220]
call fcn.0048a3f0
push 0x2c
mov esi, eax
call fcn.0048d65a
add esp, 4
mov dword [esp + 0x30], eax
xor edi, edi
mov dword [esp + 0x28], edi
cmp eax, edi
je 0x454cd7
push edi
push 0x10
push 0x50
mov ecx, eax
call fcn.0047b160
jmp 0x454cd9
xor eax, eax
mov dword [esp + 0x28], ebx
push 0x14
mov dword [ebp + 0x46e3c], eax
call fcn.0048d65a
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], 1
cmp eax, edi
je 0x454d06
mov ecx, eax
call fcn.0047dcb0
jmp 0x454d08
xor eax, eax
mov dword [esp + 0x28], 0xffffffff
mov ecx, dword [ebp + 0x46e3c]
mov dword [ebp + 0x46e38], eax
lea eax, [esp + 0x1c]
push eax
inc esi
call fcn.0047a6f0
mov ecx, dword [ebp + 0x46e3c]
xor edx, edx
cmp dx, word [ecx + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], edi
jge 0x454dd7
mov bl, byte [0x4efb84]
jmp 0x454d50
mov eax, dword [ebp + 0x46e3c]
xor ecx, ecx
xor edi, edi
cmp cx, word [eax + 0x1e]
jge 0x454dad
mov cl, byte [esi]
mov dl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
inc esi
movzx ecx, cl
movzx eax, al
and ecx, 0xfffffff8
inc esi
shr eax, 3
shl ecx, 5
movzx edx, dl
test bl, bl
je 0x454d8a
and edx, 0xfffffffc
or ecx, edx
add ecx, ecx
jmp 0x454d8f
and edx, 0xfffffff8
or ecx, edx
mov edx, dword [esp + 0x30]
add ecx, ecx
add ecx, ecx
or ecx, eax
mov word [edx + edi*2], cx
mov eax, dword [ebp + 0x46e3c]
movsx ecx, word [eax + 0x1e]
inc edi
inc esi
cmp edi, ecx
jl 0x454d60
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + edx*2]
mov edx, dword [ebp + 0x46e3c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
movsx ecx, word [edx + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x454d50
mov ecx, dword [ebp + 0x46e3c]
call fcn.0047a720
mov ecx, dword [0x639220]
push 0x1401
call fcn.0048a670
mov esi, dword [esp + 0x34]
or ebx, 0xffffffff
cmp byte [0x6392d3], 0
je 0x455224
cmp dword [0x4ed29c], ebx
je 0x454f67
mov eax, dword [0x63933c]
cmp eax, 7
ja case.0x454e20.3
jmp dword [eax*4 + 0x4553d0]
push 1
push 0x140
push 0xdc
mov edi, 0x12
mov ebx, 0x639474
call fcn.00433ec0
mov ecx, dword [0x639220]
push 0xf0
mov dword [0x63933c], 1
call fcn.00489fd0
movzx edx, byte [ebp + 0x42739]
mov ecx, dword [0x639220]
push 1
push edx
call fcn.0048a260
mov ecx, dword [0x639220]
call fcn.0048a2d0
jmp case.0x454e20.3
push 0
push 0x1c
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x454eaa
cmp byte [0x4f78e4], 1
jne case.0x454e20.3
cmp byte [0x4f78e6], al
jne case.0x454e20.3
mov dword [0x63933c], 2
jmp 0x4550e1
call fcn.00433f60
mov ecx, dword [0x639220]
push 7
call fcn.00489fd0
mov eax, dword [0x4ed29c]
mov ecx, dword [0x639220]
push 1
push eax
call fcn.0048a260
mov ecx, dword [0x639220]
push 0x12
push 0x639474
call fcn.0048a1b0
mov ecx, dword [0x639220]
call fcn.0048a2d0
mov dword [0x63933c], 3
jmp case.0x454e20.3
push 0
push 0x1c
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x454f33
cmp byte [0x4f78e4], 1
jne case.0x454e20.3
cmp byte [0x4f78e6], al
jne case.0x454e20.3
mov dword [0x4ed29c], ebx
mov dword [0x63933c], 0
jmp 0x4550e1
mov ecx, dword [0x639220]
push 0x1b
call fcn.0048a3b0
test eax, eax
je case.0x454e20.3
call fcn.00454390
jmp case.0x454e20.3
cmp dword [0x639488], 0
je 0x454fa8
push 0
push 0x1c
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x454f99
cmp byte [0x4f78e4], 1
jne case.0x454e20.3
cmp byte [0x4f78e6], al
jne case.0x454e20.3
mov dword [0x639488], 0
jmp 0x4550e1
movzx eax, byte [esi + 0x969]
sub eax, 1
je 0x454fd8
sub eax, 1
jne 0x454fed
call fcn.00454370
test al, al
je 0x454fd8
push 1
mov ecx, 0x4dca14
mov byte [0x6392d2], 0
call fcn.004512c0
add esp, 4
mov byte [0x4f78e6], 0
mov byte [0x4f78e5], 0
mov byte [0x4f78e4], 0
mov cl, byte [esi + 0x96a]
cmp cl, 1
je 0x455001
cmp cl, 2
jne case.0x454e20.3
cmp byte [ebp + 0x46e44], 0
jne case.0x454e20.3
mov al, byte [0x63948c]
add al, al
add al, cl
dec al
mov byte [ebp + 0x42739], al
movzx eax, al
imul eax, eax, 0x34
cmp byte [eax + 0x63936d], 1
jbe 0x45506a
mov ecx, dword [0x639220]
push 0xf0
call fcn.00489fd0
movzx ecx, byte [ebp + 0x42739]
push 1
push ecx
mov ecx, dword [0x639220]
call fcn.0048a260
mov ecx, dword [0x639220]
call fcn.0048a2d0
mov dword [0x639488], 1
jmp 0x4550e1
lea eax, [eax + 0x639340]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x455073
sub eax, edx
je 0x4550b5
cmp dword [ebp + 0x46e40], 0
je 0x4550a2
mov ecx, dword [0x639220]
push 0xf9
call fcn.00489fd0
mov ecx, dword [0x639220]
call fcn.0048a2d0
mov eax, 0x21
call fcn.00451890
mov byte [ebp + 0x46e44], 1
jmp 0x4550e1
cmp byte [0x6392d3], 0
je 0x4550e1
mov edx, dword [0x516efc]
push 1
mov ecx, 0x4dca14
mov byte [0x6392d2], 0
mov byte [edx + 0x973], 0
call fcn.004512c0
add esp, 4
mov byte [0x4f78e6], 0
mov byte [0x4f78e5], 0
mov byte [0x4f78e4], 0
mov edi, esi
call fcn.00450230
mov cl, byte [0x4f78e4]
cmp cl, 1
jne 0x45511c
cmp eax, 0x1a
jne 0x45523f
mov byte [0x689250], cl
jmp 0x4551c4
cmp byte [0x689250], 0
mov byte [0x689250], 0
je 0x45513f
cmp eax, 0x1a
jne 0x45513f
mov byte [ebp + 0x202], 7
mov byte [ebp + 0x203], 0
cmp byte [0x689251], 0
mov byte [0x689251], 0
je 0x45515e
cmp eax, 0x1d
jne 0x45515e
mov dword [0x63948c], 0
cmp byte [0x689252], 0
mov byte [0x689252], 0
je 0x45517d
cmp eax, 0x21
jne 0x45517d
mov dword [0x63948c], 1
cmp byte [0x689253], 0
mov byte [0x689253], 0
je 0x4551a0
cmp eax, 0x25
jne 0x4551a0
mov edx, dword [0x63948c]
add edx, edx
mov dword [0x4ed29c], edx
cmp byte [0x689254], 0
mov byte [0x689254], 0
je 0x4551c4
cmp eax, 0x28
jne 0x4551c4
mov eax, dword [0x63948c]
lea edx, [eax + eax + 1]
mov dword [0x4ed29c], edx
cmp byte [0x6392d2], 0
je 0x455224
test cl, cl
je 0x4551da
cmp byte [0x4f78e6], 0
je 0x455208
push 0
push 1
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x455208
push eax
push 0x39
call fcn.004838e0
add esp, 8
test eax, eax
jne 0x455208
push eax
push 0x1c
call fcn.004838e0
add esp, 8
test eax, eax
je 0x455224
mov byte [0x6392d2], 0
mov byte [0x4f78e6], 0
mov byte [0x4f78e5], 0
mov byte [0x4f78e4], 0
mov eax, 1
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 8
cmp eax, 0x1d
jne 0x455250
mov byte [0x689251], 1
jmp 0x4551c4
cmp eax, 0x21
jne 0x455261
mov byte [0x689252], 1
jmp 0x4551c4
cmp eax, 0x25
jne 0x455272
mov byte [0x689253], 1
jmp 0x4551c4
cmp eax, 0x28
jne 0x4551c4
mov byte [0x689254], 1
jmp 0x4551c4