Function at 0x47bee0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ddc4b
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x511d60]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x47bfb2
mov ecx, dword [esi + 0xcdb0]
cmp eax, ecx
jne 0x47bfb2
mov eax, dword [ebp + 8]
dec eax
je 0x47bf5f
dec eax
je 0x47c2dc
sub eax, 0x270e
jne 0x47c3e4
test ecx, ecx
je 0x47bf42
mov eax, dword [ecx]
push 1
call dword [eax + 0x28]
mov dword [esi + 0xcdb0], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
movsd xmm0, qword [0x4e0750]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00486260
mov ecx, dword [esi + 0xcda4]
mov byte [esi + 0xced6], 1
call fcn.00486850
mov byte [esi + 0xce53], 1
mov ecx, dword [0x516334]
push 0x5dc
push 0xffffffffffffffff
call fcn.0049fff0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esi + 0xcdac]
cmp eax, ecx
jne 0x47c00e
test eax, eax
je 0x47c00e
mov eax, dword [ebp + 8]
cmp eax, 1
je 0x47c2dc
cmp eax, 0x2710
jne 0x47c3e4
mov ecx, dword [0x516334]
push 0x5dc
push 0xffffffffffffffff
call fcn.0049fff0
mov ecx, dword [esi + 0xcda4]
call fcn.00486850
mov byte [esi + 0xce53], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, dword [esi + 0xcda4]
jne 0x47c2b8
test eax, eax
je 0x47c2b8
cmp byte [esi + 0xce50], 0
jne 0x47c3e4
mov eax, dword [ebp + 8]
cmp eax, 0x68
jne 0x47c075
push 0x24
call fcn.004c0d0a
add esp, 4
test eax, eax
je 0x47c04e
mov ecx, eax
call fcn.004654e0
jmp 0x47c050
xor eax, eax
push 1
push 9
push esi
mov ecx, eax
mov dword [esi + 0xcdb4], eax
call fcn.0044ee00
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 4
jne 0x47c12d
mov ecx, esi
call fcn.0047bda0
test eax, eax
jne 0x47c095
cmp dword [esi + 0xcd10], eax
jne 0x47c3e4
cmp dword [esi + 0xce88], 0
jne 0x47c3e4
movsd xmm0, qword [esi + 0xcea0]
ucomisd xmm0, qword [0x4e0738]
lahf
test ah, 0x44
jp 0x47c3e4
mov ecx, dword [esi + 0xcda4]
xorps xmm0, xmm0
push 7
mov dword [esi + 0xce88], 1
movsd qword [esi + 0xce80], xmm0
movsd qword [esi + 0xce98], xmm0
mov dword [esi + 0xcd0c], 0
call fcn.004863c0
mov ecx, dword [esi + 0xcda4]
push 8
call fcn.00486340
movsd xmm0, qword [0x4e0750]
sub esp, 8
mov ecx, dword [esi + 0xcec0]
movsd qword [esp], xmm0
push 0
call fcn.0049faa0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 3
jne 0x47c1a5
push 0x1f8
call fcn.004c0d0a
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x47c15c
push 0x82
push esi
mov ecx, eax
call fcn.00449a40
jmp 0x47c15e
xor eax, eax
push str.dialogs_skip_minigames.xml
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0xcdb0], eax
call fcn.00486950
movsd xmm0, qword [0x4e0750]
sub esp, 8
mov ecx, dword [esi + 0xcdb0]
movsd qword [esp], xmm0
call fcn.004860f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x65
jne 0x47c28b
mov edx, dword [esi + 0xcd0c]
test edx, edx
je 0x47c3e4
cmp dword [esi + 0xcd10], 0
jne 0x47c3e4
mov byte [esi + 0xce49], 1
mov eax, dword [edx + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
lea eax, [eax + ecx*8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*8]
mov dword [esi + eax*4 + 0x58], 0
mov ecx, dword [esi + 0xcd0c]
mov dword [esi + 0xcd10], ecx
mov dword [esi + 0x50], 2
mov dword [esi + 0x20], ecx
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x38], eax
mov eax, ecx
mov dword [esi + 0xcd0c], 0
movsd xmm0, qword [eax]
movsd qword [esi + 0x40], xmm0
movsd xmm0, qword [eax + 8]
movsd qword [esi + 0x48], xmm0
movsd xmm0, qword [0x4e6fc8]
mov dword [eax + 0x18], 0x64
mov eax, dword [esi + 0xcd10]
movsd qword [eax], xmm0
mov eax, dword [esi + 0xcd10]
movsd xmm0, qword [0x4e6f90]
movsd qword [eax + 8], xmm0
xorps xmm0, xmm0
mov eax, dword [esi + 0xcd10]
mov dword [eax + 0x1c], 3
movsd qword [esi + 0xce30], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x66
jne 0x47c3e4
cmp dword [esi + 0x50], 0
je 0x47c3e4
mov ecx, esi
call fcn.0047cc80
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esi + 0xcda8]
cmp eax, ecx
jne 0x47c37d
test ecx, ecx
je 0x47c37d
mov eax, dword [ebp + 8]
cmp eax, 1
jne 0x47c304
mov byte [esi + 0xce60], al
movsd xmm0, qword [0x4e0750]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00486260
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 2
jne 0x47c32a
movsd xmm0, qword [0x4e0750]
sub esp, 8
mov byte [esi + 0xce60], 0
movsd qword [esp], xmm0
call fcn.00486260
jmp 0x47bf8d
cmp eax, 0x2710
jne 0x47c3e4
mov eax, dword [ecx]
push 1
call dword [eax + 0x28]
cmp byte [esi + 0xce60], 0
mov dword [esi + 0xcda8], 0
je 0x47bfe9
movsd xmm0, qword [0x4e0738]
mov byte [esi + 0xce70], 1
movsd qword [esi + 0xce78], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
test eax, eax
jne 0x47c3e4
mov eax, dword [ebp + 8]
cmp eax, 0x407
jne 0x47c3c2
mov edi, dword [esi + 0xcdb4]
test edi, edi
je 0x47c3a5
mov ecx, edi
call fcn.0044edc0
push edi
call fcn.004c0d5b
add esp, 4
mov dword [esi + 0xcdb4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x213
jne 0x47c3e4
mov ecx, dword [esi + 0xcdb8]
test ecx, ecx
je 0x47c3da
push 1
call fcn.0044d3c0
mov dword [esi + 0xcdb8], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8