Function at 0x409050
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x48fbf0
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x4ad650]
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 [0x4b2e50]
push 4
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push 1
mov ecx, 0x4b2e30
call fcn.0045ab7a
call fcn.00454183
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4090b8
push 0x80004005
call fcn.00406520
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.00435210
mov eax, dword [0x4b2ec0]
mov edx, dword [0x4b2ec8]
mov ecx, dword [0x4b2ebc]
add esp, 4
push 1
sub edx, eax
push edx
mov edx, dword [0x4b2ec4]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, 0x4b2ecc
call fcn.0045ab3a
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x499380
call fcn.00406140
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.00405c40
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x4b2ecc]
add eax, 0x1a4
mov eax, dword [eax]
add esp, 4
mov ecx, 0x4b2ecc
mov byte [esp + 0x30], 1
call eax
push 0
mov ecx, 0x4b372c
call fcn.0045ab7a
call fcn.00454183
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409179
push 0x80004005
call fcn.00406520
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 0x4091b1
sub eax, 1
jne 0x4091e6
push 0x17de
call fcn.0045bffd
test eax, eax
je 0x4091ce
push 0x17de
jmp 0x4091c4
push 0x17dd
call fcn.0045bffd
test eax, eax
je 0x4091ce
push 0x17dd
push eax
lea ecx, [esp + 0x18]
call fcn.00405e60
mov edx, dword [0x4b31f0]
mov eax, dword [edx + 0x14c]
lea ecx, [esp + 0x10]
push ecx
mov ecx, 0x4b31f0
call eax
mov ecx, dword [esp + 0x50]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0044dc50
add esp, 8
mov byte [esp + 0x28], 4
push eax
mov eax, dword [0x4b30e4]
mov edx, dword [eax + 0x14c]
mov ecx, 0x4b30e4
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 0x409235
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00454183
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40924f
push 0x80004005
call fcn.00406520
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 0x409282
push 0x17dc
call fcn.0045bffd
test eax, eax
je 0x4092d8
push 0x17dc
jmp 0x4092ce
cmp eax, 0x28
jae 0x40929c
push 0x17db
call fcn.0045bffd
test eax, eax
je 0x4092d8
push 0x17db
jmp 0x4092ce
cmp eax, 0x3c
jb 0x4092bb
cmp eax, 0x64
ja 0x4092bb
push 0x17d9
call fcn.0045bffd
test eax, eax
je 0x4092d8
push 0x17d9
jmp 0x4092ce
push 0x17da
call fcn.0045bffd
test eax, eax
je 0x4092d8
push 0x17da
push eax
lea ecx, [esp + 0x14]
call fcn.00405e60
mov edx, dword [0x4b2fd8]
mov eax, dword [edx + 0x14c]
lea ecx, [esp + 0xc]
push ecx
mov ecx, 0x4b2fd8
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 0x409315
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 0x40933a
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 0x409358
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 0x409380
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 0x4093a0
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