Function at 0x10044220
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10053df8
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1007ff50]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x50]
mov ecx, esi
mov dword [esp + 0x50], edi
call fcn.10042ee0
mov ebp, dword [esp + 0x54]
xor eax, eax
cmp edi, ebp
je 0x10044636
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x18], esi
call fcn.100441b0
cmp edi, ebp
mov ecx, dword [esp + 0x34]
jae 0x10044627
mov eax, dword [esp + 0x38]
lea ebx, [ebx]
test ecx, ecx
je 0x10044634
mov edx, eax
sub edx, ecx
sar edx, 2
je 0x10044627
cmp ecx, eax
mov esi, eax
jbe 0x100442c9
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x30]
mov ebx, edx
lea edx, [esi - 4]
cmp edx, eax
mov dword [esp + 0x1c], esi
ja 0x100442de
cmp edx, ecx
jae 0x100442ec
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add esi, 0xfffffffc
cmp esi, dword [ebx + 8]
jb 0x10044302
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
test ecx, ecx
mov esi, dword [esi]
jne 0x1004430c
xor edx, edx
jmp 0x10044313
mov edx, eax
sub edx, ecx
sar edx, 2
cmp edx, dword [esp + 0x64]
jg 0x1004464a
mov bl, byte [edi]
add edi, 1
cmp edi, ebp
mov byte [esp + 0x14], bl
jb 0x10044333
cmp bl, 0x65
jne 0x10044704
mov edx, dword [esi + 0x10]
shr edx, 0x1d
sub edx, 1
je 0x100443a3
sub edx, 1
jne 0x10044479
cmp bl, 0x65
jne 0x1004437d
mov eax, edi
sub eax, dword [esi + 4]
mov dword [esi + 8], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1004461b
mov eax, dword [esp + 0x38]
mov edx, eax
sub edx, ecx
sar edx, 2
je 0x1004461f
sub eax, 4
mov dword [esp + 0x38], eax
jmp 0x1004461f
mov ecx, esi
call fcn.10042d00
test eax, eax
mov dword [esp + 0x18], eax
je 0x1004478c
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
call fcn.100441b0
jmp 0x10044471
cmp bl, 0x65
jne 0x100443d9
mov ecx, edi
sub ecx, dword [esi + 4]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1004461b
mov eax, dword [esp + 0x38]
mov edx, eax
sub edx, ecx
sar edx, 2
je 0x1004461f
sub eax, 4
mov dword [esp + 0x38], eax
jmp 0x1004461f
mov eax, dword [esp + 0x14]
push eax
call fcn.10048780
add esp, 4
test al, al
je 0x1004481e
lea ecx, [esp + 0x20]
push ecx
movsx eax, bl
sub eax, 0x30
push 0x3a
cdq
push ebp
push edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
call fcn.100423e0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x10044ca5
mov ebx, dword [esp + 0x20]
lea edx, [ebx + edi + 3]
cmp edx, ebp
ja 0x10044ca5
cmp byte [edi], 0x3a
jne 0x10044ca5
add edi, 1
cmp edi, ebp
je 0x100448ae
push edi
mov ecx, esi
call fcn.100431c0
test eax, eax
mov dword [esp + 0x18], eax
je 0x1004493e
add edi, ebx
cmp edi, ebp
jae 0x100449ce
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
call fcn.100441b0
mov bl, byte [edi]
mov byte [esp + 0x14], bl
add edi, 1
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
sub edx, 1
test edx, edx
mov dword [esp + 0x68], edx
jle 0x10044a5e
cmp ecx, eax
mov esi, eax
jbe 0x100444a0
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x30]
mov ebp, edx
lea edx, [esi - 4]
cmp edx, eax
mov dword [esp + 0x1c], esi
ja 0x100444b5
cmp edx, ecx
jae 0x100444bb
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
add esi, 0xfffffffc
cmp esi, dword [ebp + 8]
jb 0x100444c9
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp bl, 0x64
mov esi, dword [esi]
je 0x100445ff
cmp bl, 0x69
je 0x100445aa
cmp bl, 0x6c
je 0x1004459b
mov ecx, dword [esp + 0x14]
push ecx
call fcn.10048780
add esp, 4
test al, al
je 0x10044aee
mov ebp, dword [esp + 0x54]
movsx eax, bl
sub eax, 0x30
cdq
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x28]
push edx
push 0x3a
push ebp
push edi
mov dword [esp + 0x38], eax
call fcn.100423e0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x10044b7e
mov ebx, dword [esp + 0x28]
lea eax, [ebx + edi + 1]
cmp eax, ebp
ja 0x10044b7e
cmp byte [edi], 0x3a
jne 0x10044b7e
mov ecx, dword [esi + 0x10]
and ecx, 0x1fffffff
or ecx, 0x60000000
add edi, 1
push ebx
mov dword [esi + 0x10], ecx
mov dword [esi], edi
mov dword [esi + 0xc], ebx
call fcn.10042510
mov edx, edi
sub edx, eax
lea eax, [edx - 1]
mov ecx, ebx
sub ecx, eax
add ecx, edi
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add esp, 4
test ecx, ecx
je 0x10044594
mov edx, eax
sub edx, ecx
sar edx, 2
je 0x10044594
sub eax, 4
mov dword [esp + 0x38], eax
add edi, ebx
jmp 0x1004461f
lea eax, [edi - 1]
mov dword [esi + 0x10], 0x40000000
mov dword [esi + 4], eax
jmp 0x1004460c
mov eax, dword [esp + 0x54]
cmp edi, eax
mov ebx, edi
jae 0x100445c0
cmp byte [ebx], 0x65
je 0x100445c0
add ebx, 1
cmp ebx, eax
jb 0x100445b4
mov ecx, dword [esi + 0x10]
mov eax, ebx
sub eax, edi
and ecx, 0x1fffffff
or ecx, 0x80000000
mov dword [esi], edi
mov dword [esi + 0xc], eax
add edi, 0xffffffff
add eax, 2
cmp ebx, dword [esp + 0x54]
mov dword [esi + 0x10], ecx
mov dword [esi + 4], edi
mov dword [esi + 8], eax
je 0x10044c0e
lea ecx, [esp + 0x30]
lea edi, [ebx + 1]
call fcn.10043d50
jmp 0x10044613
lea edx, [edi - 1]
mov dword [esi + 0x10], 0x20000000
mov dword [esi + 4], edx
mov dword [esi + 0xc], 0
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
cmp edi, ebp
jb 0x100442a0
test ecx, ecx
je 0x10044634
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test byte [0x10080184], 1
jne 0x10044679
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add esp, 4
mov ebx, dword [esp + 0x5c]
mov edx, 0xc2
mov esi, 0x10080180
mov dword [ebx], edx
mov dword [ebx + 4], esi
lea esp, [esp]
test ecx, ecx
je 0x100446d6
sub eax, ecx
sar eax, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x100446b6
cmp eax, 2
jne 0x100446c3
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x100446c3
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x10044690
mov eax, dword [esp + 0x60]
test eax, eax
je 0x100446e4
sub edi, dword [esp + 0x50]
mov dword [eax], edi
lea ecx, [esp + 0x30]
call fcn.10043d20
or eax, 0xffffffff
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test byte [0x10080184], 1
jne 0x10044733
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add esp, 4
mov ebx, dword [esp + 0x5c]
mov edx, 0xc0
mov esi, 0x10080180
mov dword [ebx], edx
mov dword [ebx + 4], esi
test ecx, ecx
je 0x100446d6
sub eax, ecx
sar eax, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x1004476c
cmp eax, 2
jne 0x10044779
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044779
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x10044746
test byte [0x10080184], 1
jne 0x100447b3
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0x2d
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x100447d0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044806
cmp eax, 2
jne 0x10044813
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044813
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x100447d0
test byte [0x10080184], 1
jne 0x10044845
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xbe
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10044860
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov edx, dword [esp + 0x38]
sub edx, eax
sar edx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044896
cmp eax, 2
jne 0x100448a3
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x100448a3
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044860
test byte [0x10080184], 1
jne 0x100448d5
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xc0
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x100448f0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044926
cmp eax, 2
jne 0x10044933
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044933
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x100448f0
test byte [0x10080184], 1
jne 0x10044965
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0x2d
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10044980
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov edx, dword [esp + 0x38]
sub edx, eax
sar edx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x100449b6
cmp eax, 2
jne 0x100449c3
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x100449c3
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044980
test byte [0x10080184], 1
jne 0x100449f5
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xc0
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10044a10
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044a46
cmp eax, 2
jne 0x10044a53
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044a53
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044a10
test byte [0x10080184], 1
jne 0x10044a8d
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add esp, 4
mov ebx, dword [esp + 0x5c]
mov edx, 0xc3
mov esi, 0x10080180
mov dword [ebx], edx
mov dword [ebx + 4], esi
test ecx, ecx
je 0x100446d6
sub eax, ecx
sar eax, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044ace
cmp eax, 2
jne 0x10044adb
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044adb
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x10044aa0
test byte [0x10080184], 1
jne 0x10044b15
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xc1
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10044b30
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov edx, dword [esp + 0x38]
sub edx, eax
sar edx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044b66
cmp eax, 2
jne 0x10044b73
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044b73
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044b30
test byte [0x10080184], 1
jne 0x10044ba5
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xbf
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10044bc0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044bf6
cmp eax, 2
jne 0x10044c03
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044c03
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044bc0
test byte [0x10080184], 1
jne 0x10044c35
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xc0
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10044c8e
mov edx, dword [esp + 0x38]
sub edx, eax
sar edx, 2
je 0x10044c8e
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044c76
cmp eax, 2
jne 0x10044c83
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044c83
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044c48
mov eax, dword [esp + 0x60]
test eax, eax
je 0x100446e4
sub ebx, dword [esp + 0x50]
mov dword [eax], ebx
jmp 0x100446e4
test byte [0x10080184], 1
jne 0x10044ccc
or dword [0x10080184], 1
push 0x10054490
mov dword [0x10080180], 0x10056478
call fcn.1004a387
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, 0xbf
mov ecx, 0x10080180
mov dword [edx], eax
mov dword [edx + 4], ecx
nop
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100446d6
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 2
je 0x100446d6
lea ecx, [esp + 0x30]
call fcn.10043e70
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 1
je 0x10044d16
cmp eax, 2
jne 0x10044d23
mov eax, dword [ecx + 0xc]
test eax, eax
jbe 0x10044d23
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x30]
call fcn.10043d50
jmp 0x10044ce0