Function at 0x10049940
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x1015d121
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x101b03d4]
xor eax, esp
mov dword [esp + 0x5c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101b03d4]
xor eax, esp
push eax
lea eax, [esp + 0x74]
mov dword fs:[0], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x88]
mov ebp, dword [esp + 0x9c]
mov edi, dword [esp + 0xac]
lea edx, [esp + 0x58]
mov dword [esp + 0x30], eax
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov eax, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], 1
mov ecx, dword [esp + 0x68]
mov byte [ecx], bl
mov dword [esp + 0x7c], 2
push edx
pop edx
push ebp
lea ecx, [esp + 0x18]
call fcn.1002e170
mov byte [esp + 0x7c], 3
mov ecx, ecx
mov edx, dword [esp + 0x14]
cmp dword [edx - 0xc], ebx
jne 0x10049a12
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x58]
push eax
mov ecx, esi
call fcn.10009270
mov dword [esp + 0x34], 1
mov byte [esp + 0x7c], 2
lea ecx, [esp + 0x14]
call fcn.1001c8b0
mov byte [esp + 0x7c], bl
jmp 0x10049bf3
push esi
call fcn.1003e830
add esp, 4
mov ecx, ecx
mov ecx, dword [esi + 0x228]
mov dword [esp + 0x3c], ecx
mov edi, edi
lea edx, [esi + 0x94]
mov dword [esi + 0x228], edx
mov ah, ah
mov eax, dword [esi + 0x228]
mov ebx, dword [eax + 0x190]
call fcn.1003b530
mov cl, cl
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x14]
push ecx
push edx
push edi
push eax
lea ecx, [esp + 0x50]
push esi
push ecx
call fcn.10046260
add esp, 0x18
mov byte [esp + 0x7c], 4
mov eax, dword [eax + 0x14]
push eax
lea ecx, [esp + 0x1c]
call fcn.1002e170
mov byte [esp + 0x7c], 6
lea ecx, [esp + 0x40]
call fcn.100068e0
mov ah, ah
lea ecx, [esp + 0x1c]
call fcn.100ece68
mov byte [esp + 0x7c], 7
mov ch, ch
mov eax, dword [esp + 0x18]
push 0
lea edx, [esp + 0x20]
push edx
push 0x101654d8
push eax
call fcn.10048800
add esp, 0x10
mov ebx, eax
mov ah, ah
push eax
pop eax
xor edi, edi
test ebx, ebx
jle 0x10049b01
mov eax, dword [esp + 0x20]
test edi, edi
jl 0x10049c1d
cmp edi, dword [esp + 0x24]
jge 0x10049c1d
mov ecx, dword [eax + edi*4]
cmp dword [ecx - 0xc], 0
jle 0x10049afa
push 1
mov eax, ecx
push eax
push 0x64
push esi
call fcn.10048aa0
add esp, 0x10
push ebx
pop ebx
mov eax, dword [esp + 0x20]
add edi, 1
cmp edi, ebx
jl 0x10049ac9
fld qword [esp + 0xa4]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
push 0
sub esp, 8
fstp qword [esp]
push edx
mov edx, dword [esp + 0xa0]
push ebp
push eax
mov eax, dword [esp + 0xa4]
push ecx
push edx
push eax
push 0x64
lea ecx, [esp + 0x68]
push esi
push ecx
call fcn.10048db0
add esp, 0x30
mov byte [esp + 0x7c], 8
lea edx, [esp + 0x58]
cmp eax, edx
je 0x10049b62
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
push eax
mov ecx, edx
call fcn.1000b340
mov byte [esp + 0x7c], 7
lea ecx, [esp + 0x40]
call fcn.100068e0
mov bh, bh
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x228], eax
mov edi, edi
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
call fcn.10009270
mov dword [esp + 0x34], 1
mov byte [esp + 0x7c], 6
lea ecx, [esp + 0x1c]
call fcn.100ed1b0
mov byte [esp + 0x7c], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10049bc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x7c], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10049bee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x7c], 0
lea ecx, [esp + 0x58]
call fcn.100068e0
mov eax, esi
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.100fb12a
add esp, 0x6c
ret
jmp fcn.100e9bf9