Function at 0x60846c
Capabilities:
Get number of processors

Disassembly:
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6081d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6081f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
lea edx, [ebp - 0x3d8]
push edx
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x7572bc], eax
mov dword [ebp - 0x600], 0x2b
mov dword [ebp - 0x250], 0x92
mov ecx, dword [ebp - 0x600]
cmp ecx, dword [ebp - 0x250]
jle 0x608258
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push ecx
push dword [ebp + 0xc]
call fcn.0060593a
pop ecx
pop ecx
pop ebp
mov dword [ebp - 0x2d4], 0x59
mov dword [ebp - 0x334], 0x8e
mov edx, dword [ebp - 0x2d4]
cmp edx, dword [ebp - 0x334]
jle 0x608311
sub esp, 0xc
mov eax, dword [0x675657b8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor esi, esi
cmp dword [0x675661d8], esi
jne 0x6082c9
cmp dword [0x675661dc], esi
jne 0x6082c9
push 0x675661d8
call dword [0x6753f0ec]
cmp dword [0x675661d8], esi
jne 0x6082c9
cmp dword [0x675661dc], esi
jne 0x6082c9
mov dword [0x675661d8], 1
mov dword [0x675661dc], esi
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
call dword [0x6753f0e8]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
sbb ecx, dword [ebp + 0xc]
push esi
push 0x3e8
add byte [ecx + 0x50], dl
call 0x6a7539
push dword [0x675661dc]
push dword [0x675661d8]
push edx
push eax
call 0x6a7769
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call 0x6a7263
leave
mov dword [ebp - 0x2d0], 0x55
mov dword [ebp - 0x120], 0x7c
mov eax, dword [ebp - 0x2d0]
cmp eax, dword [ebp - 0x120]
jle 0x608383
mov ecx, dword [ebp + 8]
push esi
mov esi, eax
call 0x608514
xor edx, edx
mov dword [edi], eax
div dword [esi + 8]
mov esi, dword [esi]
test esi, esi
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
je 0x60837f
and dword [ebp + 0xc], 0
and dword [ebx], 0
mov esi, dword [esi + edx*4]
jmp 0x60837b
mov eax, dword [esi + 0x58]
cmp eax, dword [edi]
jne 0x608375
mov eax, dword [esi]
push dword [ebp + 8]
push eax
call dword [0x100413cc]
test eax, eax
pop ecx
pop ecx
je 0x608386
mov dword [ebp + 0xc], esi
mov esi, dword [esi + 0x54]
test esi, esi
jne 0x60835c
xor eax, eax
pop esi
pop ebp
lea ecx, [ebp - 0x52c]
push ecx
lea edx, [ebp - 0x78]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x757260], eax
mov dword [ebp - 0x1bc], 0x51
mov dword [ebp - 0x3e8], 0x70
mov eax, dword [ebp - 0x1bc]
cmp eax, dword [ebp - 0x3e8]
jle 0x6083e5
cli
invalid
push dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
push dword [ebp + 0x10]
mov eax, dword [ecx]
push dword [ebp + 0xc]
call dword [eax + 0x28]
cmp eax, dword [ebp + 0xc]
jne 0x6083e1
cmp edx, dword [ebp + 0x10]
jne 0x6083e1
xor eax, eax
jmp 0x6083e4
or eax, 0xffffffff
pop ebp
mov dword [ebp - 0x6e0], 0x10
mov dword [ebp - 0x6dc], 0x86
mov ecx, dword [ebp - 0x6e0]
cmp ecx, dword [ebp - 0x6dc]
jle 0x60846c
push 0xffffffffffffffff
push 0x465289
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x487088]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
call fcn.00606616
push eax
mov ecx, dword [ebp - 0x10]
call fcn.0060649d
and dword [ebp - 4], 0
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
call 0x60889d
movzx eax, al
test eax, eax
jne 0x608459
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
call fcn.006063f3
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
add byte [eax], al
pop ecx
leave
mov dword [ebp - 0x784], 4
mov dword [ebp - 0x47c], 0x6a
mov edx, dword [ebp - 0x784]
cmp edx, dword [ebp - 0x47c]
jle 0x6084b2
cmp dword [ebp + 0x14], 1
jbe 0x60849b
mov eax, 0x80070057
jmp 0x6084b1
push dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
push dword [ebp + 0x14]
mov eax, dword [eax + 8]
push dword [ebp + 0x10]
push eax
call dword [0x1002b260]
pop ebp
lea eax, [ebp - 0x384]
push eax
lea ecx, [ebp - 0x78]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x757264], eax
mov dword [ebp - 0x11c], 9
mov dword [ebp - 0x10], 0x69
mov edx, dword [ebp - 0x11c]
cmp edx, dword [ebp - 0x10]
jle 0x608574
push 0xfffffffffffffffe
push 0x1000c588
push 0x10009265
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x10010024]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
add byte [eax], al
mov dword [ebp - 0x18], esp
mov dword [ebp - 4], 0
push 0x10000000
call 0x60846c
add esp, 4
test eax, eax
je 0x60858c
mov eax, dword [ebp + 8]
sub eax, 0x10000000
push eax
push 0x10000000
call 0x60849c
add esp, 8
test eax, eax
je 0x60858c
mov eax, dword [eax + 0x24]
shr eax, 0x1f
not eax
and eax, 1
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
mov dword [ebp - 0xb8], 0x64
mov dword [ebp - 0x88c], 0xb7
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0x88c]
jle 0x608673
invalid
push ebx
xor ebx, ebx
push esi
mov esi, ecx
inc ebx
push edi
test byte [esi + 0x3c], bl
je 0x6085bf
push dword [ebp + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push ecx
push eax
push ebx
call fcn.005ffd07
add esp, 0x10
mov edi, eax
jmp 0x6085c2
mov edi, dword [ebp + 8]
mov eax, dword [esi + 0x3c]
shr eax, 1
test bl, al
je 0x6085dc
mov eax, dword [esi + 0x10]
push edi
push eax
push 2
call fcn.0061a95a
add esp, 0xc
mov edi, eax
mov eax, dword [esi + 0x3c]
shr eax, 2
test bl, al
je 0x6085fb
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
push edi
push ecx
push eax
push 3
call fcn.005ffd07
mov eax, dword [esi + 0x3c]
shr eax, 3
test bl, al
je 0x60861a
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
push edi
push ecx
push eax
push 4
call fcn.005ffd07
add esp, 0x10
mov edi, eax
mov eax, dword [esi + 0x3c]
shr eax, 4
test bl, al
je 0x608635
mov eax, dword [esi + 0x28]
push edi
mov eax, dword [esi + 0x3c]
shr eax, 5
test bl, al
je 0x608654
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
xor byte [edi + 0x51], dl
push eax
push 6
call fcn.005ffd07
add esp, 0x10
mov edi, eax
add esi, 4
mov ecx, esi
into
call fcn.0061a39a
test al, al
jne 0x60866d
push edi
push esi
call 0x64e8f2
pop ecx
pop ecx
mov edi, eax
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
mov dword [ebp - 0x478], 0x58
mov dword [ebp - 0xc], 0xb9
mov ecx, dword [ebp - 0x478]
cmp ecx, dword [ebp - 0xc]
jle 0x608774
sub esp, 0x2c
mov eax, dword [0x10050390]
xor eax, ebp
mov dword [ebp - 0xc], eax
call fcn.00607d40
mov dword [ebp - 8], eax
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
add al, 0
je 0x6086f9
mov ecx, dword [ebp - 8]
cmp dword [ecx], 0x138a
jne 0x6086ee
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ebp + 0xc]
jne 0x6086ee
push 0x10044930
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
push edx
call fcn.00607d20
add esp, 8
test eax, eax
je 0x6086ee
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
jmp 0x6086f9
mov ecx, dword [ebp - 8]
add ecx, 0x20
mov dword [ebp - 8], ecx
jmp 0x6086af
cmp dword [ebp - 0x28], 0
jne 0x608703
xor eax, eax
jmp 0x608767
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x18], 0
je 0x608717
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 4], ecx
jmp 0x608748
lea edx, [ebp - 0x24]
mov dword [ebp - 4], edx
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 0x10044930
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x1c]
call eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jge 0x608748
xor eax, eax
jmp 0x608767
mov ecx, dword [ebp + 0x20]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ecx + 0x10]
push eax
invalid