Function at 0x491850
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58c5b2
mov eax, dword fs:[0]
push eax
sub esp, 0x44
push ebx
push esi
push edi
mov eax, dword [0x6236f8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor eax, eax
lea ecx, [esi + 0x20]
xor edi, edi
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], ax
call fcn.0041d8d0
lea ecx, [esi + 0x24]
call fcn.0041d8d0
mov eax, 0xffffff
lea ecx, [esi + 0x54]
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], edi
call fcn.0041d8d0
lea ecx, [esi + 0x58]
mov dword [esi + 0x50], edi
call fcn.0041d8d0
fldz
xor eax, eax
fstp qword [esi + 0x1f8]
lea ecx, [esi + 0x5c]
mov dword [esi + 0x1f4], edi
mov dword [esi + 0x16c], eax
mov dword [esi + 0x170], edi
call fcn.0041d8d0
fldz
xor eax, eax
fstp qword [esi + 0x208]
mov ecx, esi
mov dword [esi + 0x204], edi
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], edi
call fcn.00490100
mov dword [esi + 0x98], edi
mov dword [esi + 0x9c], edi
mov dword [esi + 0xc8], edi
mov dword [esi + 0xcc], edi
mov dword [esi + 0xf8], edi
mov dword [esi + 0xfc], edi
mov dword [esi + 0x128], edi
mov dword [esi + 0x12c], edi
mov dword [esi + 0x158], edi
mov dword [esi + 0x15c], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x184], edi
mov dword [esi + 0x188], edi
mov dword [esi + 0x18c], edi
mov dword [esi + 0x194], edi
mov dword [esi + 0x198], edi
mov dword [esi + 0x19c], edi
lea ecx, [esi + 0x60]
mov dword [esi + 0x1a4], edi
mov dword [esi + 0x1a8], edi
mov dword [esi + 0x1ac], edi
mov dword [esi + 0x1b4], edi
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], edi
mov dword [esi + 0x1c4], edi
mov dword [esi + 0x1c8], edi
mov dword [esi + 0x1cc], edi
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1d8], edi
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1e4], edi
mov dword [esi + 0x1e8], edi
mov dword [esi + 0x1ec], edi
call fcn.0041d8d0
lea ecx, [esi + 0x64]
call fcn.0041d8d0
lea ecx, [esi + 0x6c]
call fcn.0041d8d0
lea ebx, [esi + 0x70]
mov dword [ebp - 0x18], 3
mov edi, edi
mov eax, dword [ebx]
cmp dword [eax - 8], edi
je 0x491a45
cmp dword [eax - 0xc], edi
lea ecx, [eax - 0xc]
jl 0x491a2d
add eax, 0xfffffff4
cmp eax, dword [0x610020]
je 0x491a45
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491a23
mov eax, dword [ebx]
sub eax, 0xc
push eax
call fcn.00551d56
add esp, 4
mov ecx, dword [0x610024]
mov dword [ebx], ecx
jmp 0x491a45
push 0x5a6dd8
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0x5a6dd8
push eax
mov ecx, ebx
call fcn.004057d0
add ebx, 4
dec dword [ebp - 0x18]
jne 0x4919f0
xor eax, eax
mov dword [esi + 0x16c], eax
mov dword [esi + 0x170], edi
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], edi
mov dword [esi + 0x17c], edi
mov eax, dword [esi + 0x260]
cmp dword [eax - 8], edi
je 0x491ad2
cmp dword [eax - 0xc], edi
lea ecx, [eax - 0xc]
jl 0x491ab6
add eax, 0xfffffff4
cmp eax, dword [0x610020]
je 0x491ad2
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491aa8
mov eax, dword [esi + 0x260]
sub eax, 0xc
push eax
call fcn.00551d56
add esp, 4
mov edx, dword [0x610024]
mov dword [esi + 0x260], edx
jmp 0x491ad2
push 0x5a6dd8
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0x5a6dd8
push eax
lea ecx, [esi + 0x260]
call fcn.004057d0
mov dword [esi + 0x264], edi
mov dword [esi + 0x268], edi
mov eax, dword [esi + 0x270]
mov ecx, dword [esi + 0x26c]
cmp ecx, eax
je 0x491b2a
mov edx, dword [ebp - 0x20]
push edx
push ecx
push eax
push eax
call fcn.00490350
mov ecx, dword [esi + 0x270]
add esp, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
mov ebx, eax
cmp eax, ecx
je 0x491b21
nop
mov eax, dword [ebx]
mov edx, dword [eax]
push edi
mov ecx, ebx
call edx
add ebx, 0x24
cmp ebx, dword [ebp - 0x1c]
jne 0x491b10
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x270], eax
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], edi
mov ecx, dword [0x610024]
mov edx, 0x5a78f4
shr edx, 0x10
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], ecx
test edx, edx
jne 0x491c49
mov eax, 0x5a78f4
movzx eax, ax
push eax
lea ecx, [ebp - 0x14]
call fcn.00407130
mov eax, dword [0x610024]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], eax
mov eax, 0x5a78f0
shr eax, 0x10
mov byte [ebp - 4], 2
test eax, eax
jne 0x491caa
mov ecx, 0x5a78f0
movzx eax, cx
push eax
lea ecx, [ebp - 0x10]
call fcn.00407130
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 3
call fcn.00420b80
mov eax, dword [ebp - 0x10]
lea ecx, [eax - 0xc]
mov byte [ebp - 4], 2
cmp ecx, dword [0x610020]
je 0x491bd7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491bd7
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff4
push eax
call fcn.00551d56
add esp, 4
mov eax, dword [esi + 0x280]
mov ebx, dword [esi + 0x27c]
mov dword [ebp - 0x1c], eax
cmp ebx, eax
je 0x491d8e
mov edx, eax
mov dword [ebp - 0x18], edx
cmp edx, edx
je 0x491d5b
sub edx, ebx
mov dword [ebp - 0x10], edx
mov eax, dword [edx + ebx + 4]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
mov ecx, dword [edx + ebx + 8]
cmp eax, ecx
je 0x491d46
lea edx, [eax - 0xc]
mov dword [ebp - 0x20], edx
cmp dword [edx], edi
jge 0x491c2e
lea edx, [eax - 0xc]
cmp edx, dword [0x610020]
jne 0x491c37
mov edx, dword [ebp - 0x20]
cmp dword [ecx - 0xc], edi
jge 0x491d01
mov eax, dword [ecx - 8]
push ecx
push eax
lea ecx, [ebx + 8]
call fcn.004057d0
jmp 0x491d43
push 0x5a78f4
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
cmp ebx, edi
je case.0x491c8f.0
push ebx
lea ecx, [ebp - 0x14]
call fcn.00402ba0
test eax, eax
je case.0x491c8f.0
mov ecx, dword [ebp - 0x14]
push ebx
push 0x5a78f4
inc ebx
push ebx
push ecx
call fcn.00551af6
add esp, 0x10
cmp eax, 0x50
ja case.0x491cf0.1
movzx edx, byte [eax + 0x49222c]
jmp dword [edx*4 + 0x49221c]
push 0x8007000e
call fcn.00402500
push 0x80004005
call fcn.00402500
push 0x5a78f0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
cmp ebx, edi
je case.0x491cf0.0
push ebx
lea ecx, [ebp - 0x10]
call fcn.00402ba0
test eax, eax
je case.0x491cf0.0
mov edx, dword [ebp - 0x10]
push ebx
push 0x5a78f0
inc ebx
push ebx
push edx
call fcn.00551af6
add esp, 0x10
cmp eax, 0x50
ja case.0x491cf0.1
movzx eax, byte [eax + 0x492290]
jmp dword [eax*4 + 0x492280]
push 0x80070057
call fcn.00402500
add eax, 0xfffffff4
cmp eax, dword [0x610020]
je 0x491d2f
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491d26
mov eax, dword [ebx + 8]
sub eax, 0xc
push eax
call fcn.00551d56
add esp, 4
mov ecx, dword [0x610024]
mov dword [ebx + 8], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + ebx + 8]
mov dword [ebx + 8], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
add eax, 0xc
add ebx, 0xc
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jne 0x491c00
mov eax, dword [esi + 0x280]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ebx
cmp ebx, eax
je 0x491d88
jmp 0x491d70
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax]
push edi
call edx
mov eax, dword [ebp - 0x10]
add eax, 0xc
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x20]
jne 0x491d70
mov dword [esi + 0x280], ebx
mov eax, dword [0x610024]
mov dword [ebp - 0x2c], vtable.CSaveData::ScenairoFgFmt.0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 4
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x38]
je 0x492044
mov ecx, dword [ebp - 0x18]
push ecx
lea edx, [ebp - 0x1c]
push edx
mov dword [ebp - 0x28], 0
call fcn.0041f5c0
add esp, 8
mov edi, eax
mov eax, dword [edi]
mov ebx, dword [ebp - 0x24]
mov byte [ebp - 4], 5
cmp ebx, eax
je 0x491e36
cmp dword [ebx - 0xc], 0
lea ecx, [ebx - 0xc]
mov dword [ebp - 0x20], ecx
jge 0x491ded
lea ecx, [ebx - 0xc]
cmp ecx, dword [0x610020]
jne 0x491df3
cmp dword [eax - 0xc], 0
jge 0x491e05
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [ebp - 0x24]
call fcn.004057d0
mov ebx, dword [ebp - 0x24]
jmp 0x491e36
add ebx, 0xfffffff4
cmp ebx, dword [0x610020]
je 0x491e27
mov ebx, dword [ebp - 0x20]
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491e27
push ebx
call fcn.00551d56
add esp, 4
mov ebx, dword [edi]
lea eax, [ebx - 0xc]
push eax
mov dword [ebp - 0x24], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x1c]
lea ecx, [eax - 0xc]
mov byte [ebp - 4], 4
cmp ecx, dword [0x610020]
je 0x491e65
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491e65
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00551d56
add esp, 4
mov ecx, dword [esi + 0x280]
lea edx, [ebp - 0x2c]
cmp edx, ecx
jae 0x491f67
mov eax, dword [esi + 0x27c]
mov dword [ebp - 0x10], eax
cmp eax, edx
ja 0x491f67
mov edi, dword [esi + 0x284]
sub edx, eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ecx, edi
jne 0x491f01
sub ecx, dword [ebp - 0x10]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x15555554
ja 0x49207e
sub edi, dword [ebp - 0x10]
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x491f01
mov edx, eax
shr edx, 1
mov edi, 0x15555555
sub edi, edx
cmp edi, eax
jae 0x491eed
xor eax, eax
jmp 0x491eef
add eax, edx
cmp eax, ecx
jae 0x491ef5
mov eax, ecx
push eax
lea ecx, [esi + 0x27c]
call fcn.00490fe0
mov ecx, dword [esi + 0x27c]
lea eax, [ebx + ebx*2]
lea ecx, [ecx + eax*4]
mov eax, dword [esi + 0x280]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], eax
test eax, eax
je 0x492025
mov dword [eax], vtable.CSaveData::ScenairoFgFmt.0
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
lea edi, [eax + 8]
mov eax, dword [ecx + 8]
cmp dword [eax - 0xc], 0
mov byte [ebp - 4], 7
jl 0x491f4e
mov dword [edi], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x492025
mov eax, dword [0x610024]
mov dword [edi], eax
mov ebx, dword [ecx + 8]
test ebx, ebx
jne 0x492015
xor eax, eax
jmp 0x49201c
mov edi, dword [esi + 0x284]
cmp ecx, edi
jne 0x491fd6
mov ebx, dword [esi + 0x27c]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x15555554
ja 0x49207e
sub edi, ebx
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x491fd3
mov edx, eax
shr edx, 1
mov edi, 0x15555555
sub edi, edx
cmp edi, eax
jae 0x491fbf
xor eax, eax
jmp 0x491fc1
add eax, edx
cmp eax, ecx
jae 0x491fc7
mov eax, ecx
push eax
lea ecx, [esi + 0x27c]
call fcn.00490fe0
mov ebx, dword [ebp - 0x24]
mov eax, dword [esi + 0x280]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], eax
test eax, eax
je 0x492025
mov ecx, dword [ebp - 0x28]
mov dword [eax], vtable.CSaveData::ScenairoFgFmt.0
mov dword [eax + 4], ecx
cmp dword [ebx - 0xc], 0
lea edi, [eax + 8]
lea eax, [ebx - 0xc]
mov byte [ebp - 4], 9
jl 0x49200d
push eax
mov dword [edi], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x492025
mov edx, dword [0x610024]
mov dword [edi], edx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
push eax
mov ecx, edi
call fcn.004057d0
mov eax, dword [ebp - 0x18]
add dword [esi + 0x280], 0xc
add eax, 4
mov byte [ebp - 4], 4
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x38]
jne 0x491db0
xor edi, edi
mov dword [esi + 0x21fc], edi
mov dword [esi + 0x2200], edi
mov eax, dword [esi + 0x2208]
mov ebx, dword [esi + 0x2204]
mov dword [ebp - 0x10], eax
cmp ebx, eax
je 0x49215e
mov edx, eax
cmp edx, edx
je 0x49212f
lea ecx, [edx + 0xc]
sub edx, ebx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edx
jmp 0x492093
push str.vector_T__too_long
call fcn.0054e131
jmp 0x492090
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + 4]
mov edx, dword [ebx + edx + 4]
cmp eax, edx
je 0x49210f
lea ecx, [eax - 0xc]
mov dword [ebp - 0x20], ecx
cmp dword [ecx], edi
jge 0x4920b6
lea ecx, [eax - 0xc]
cmp ecx, dword [0x610020]
jne 0x4920bb
mov ecx, dword [ebp - 0x20]
cmp dword [edx - 0xc], edi
jge 0x4920ca
push edx
mov edx, dword [edx - 8]
push edx
lea ecx, [ebx + 4]
call fcn.004057d0
jmp 0x49210c
add eax, 0xfffffff4
cmp eax, dword [0x610020]
je 0x4920f8
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4920ef
mov eax, dword [ebx + 4]
sub eax, 0xc
push eax
call fcn.00551d56
add esp, 4
mov ecx, dword [0x610024]
mov dword [ebx + 4], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + edx + 4]
mov dword [ebx + 4], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
mov dword [ebx + 8], eax
mov edx, dword [ecx]
add ecx, 0x10
mov dword [ebx + 0xc], edx
lea eax, [ecx - 0xc]
add ebx, 0x10
mov dword [ebp - 0x18], ecx
cmp eax, dword [ebp - 0x10]
jne 0x492090
mov eax, dword [esi + 0x2208]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
cmp ebx, eax
je 0x492158
nop
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
mov eax, dword [edx]
push edi
call eax
mov eax, dword [ebp - 0x18]
add eax, 0x10
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x20]
jne 0x492140
mov dword [esi + 0x2208], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
or eax, 0xffffffff
mov dword [esi + 0x21e0], eax
mov dword [esi + 0x21e4], eax
mov esi, dword [ebp - 0x24]
lea ecx, [esi - 0xc]
cmp ecx, dword [0x610020]
je 0x492194
add esi, 0xfffffff4
push esi
call ebx
test eax, eax
jg 0x492194
push esi
call fcn.00551d56
add esp, 4
mov eax, dword [ebp - 0x50]
lea edx, [eax - 0xc]
cmp edx, dword [0x610020]
je 0x4921bb
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4921bb
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff4
push eax
call fcn.00551d56
add esp, 4
mov eax, dword [ebp - 0x14]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x610020]
je 0x4921e2
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4921e2
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff4
push edx
call fcn.00551d56
add esp, 4
mov eax, dword [ebp - 0x3c]
cmp eax, edi
je 0x492207
mov ecx, dword [ebp - 0x20]
push ecx
mov ecx, dword [ebp - 0x38]
lea edx, [ebp - 0x30]
push edx
push ecx
push eax
call fcn.0040e880
mov edx, dword [ebp - 0x3c]
push edx
call fcn.005517f7
add esp, 0x14
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret