Function at 0x4090a0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x491090
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x4ae650]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
push 0
push 0x3e8
mov dword [esp + 0x30], 0
mov eax, dword [0x4b3e58]
push 4
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push 1
mov ecx, 0x4b3e38
call fcn.0045c0b5
call fcn.00455695
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409108
push 0x80004005
call fcn.00406550
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0x2c], 1
call fcn.00435fd0
mov eax, dword [0x4b3ec8]
mov edx, dword [0x4b3ed0]
mov ecx, dword [0x4b3ec4]
add esp, 4
push 1
sub edx, eax
push edx
mov edx, dword [0x4b3ecc]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, 0x4b3ed4
call fcn.0045c075
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x49a3a0
call fcn.00406160
mov byte [esp + 0x2c], 2
mov edi, dword [esp + 0x18]
push ecx
add edi, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push edi
call fcn.00405c60
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x4b3ed4]
add eax, 0x1a4
mov eax, dword [eax]
add esp, 4
mov ecx, 0x4b3ed4
mov byte [esp + 0x30], 1
call eax
push 0
mov ecx, 0x4b4734
call fcn.0045c0b5
call fcn.00455695
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4091c9
push 0x80004005
call fcn.00406550
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0x28], 3
mov eax, dword [esp + 0x38]
sub eax, 0
je 0x409201
sub eax, 1
jne 0x409236
push 0x17de
call fcn.0045d52e
test eax, eax
je 0x40921e
push 0x17de
jmp 0x409214
push 0x17dd
call fcn.0045d52e
test eax, eax
je 0x40921e
push 0x17dd
push eax
lea ecx, [esp + 0x18]
call fcn.00405e80
mov edx, dword [0x4b41f8]
mov eax, dword [edx + 0x14c]
lea ecx, [esp + 0x10]
push ecx
mov ecx, 0x4b41f8
call eax
mov ecx, dword [esp + 0x50]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0044f130
add esp, 8
mov byte [esp + 0x28], 4
push eax
mov eax, dword [0x4b40ec]
mov edx, dword [eax + 0x14c]
mov ecx, 0x4b40ec
call edx
mov byte [esp + 0x28], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409285
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00455695
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40929f
push 0x80004005
call fcn.00406550
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc], eax
mov byte [esp + 0x28], 5
mov eax, dword [esp + 0x48]
cmp eax, 0x14
jae 0x4092d2
push 0x17dc
call fcn.0045d52e
test eax, eax
je 0x409328
push 0x17dc
jmp 0x40931e
cmp eax, 0x28
jae 0x4092ec
push 0x17db
call fcn.0045d52e
test eax, eax
je 0x409328
push 0x17db
jmp 0x40931e
cmp eax, 0x3c
jb 0x40930b
cmp eax, 0x64
ja 0x40930b
push 0x17d9
call fcn.0045d52e
test eax, eax
je 0x409328
push 0x17d9
jmp 0x40931e
push 0x17da
call fcn.0045d52e
test eax, eax
je 0x409328
push 0x17da
push eax
lea ecx, [esp + 0x14]
call fcn.00405e80
mov edx, dword [0x4b3fe0]
mov eax, dword [edx + 0x14c]
lea ecx, [esp + 0xc]
push ecx
mov ecx, 0x4b3fe0
call eax
mov byte [esp + 0x28], 3
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409365
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x28], 1
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40938a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x28], 0
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4093a8
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4093d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4093f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x20
ret 0x30