Function at 0x50edc0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d43f6
mov eax, dword fs:[0]
push eax
mov eax, 0x4bbc
call fcn.0059bbc0
mov eax, dword [0x6229a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x4bac], esi
movss xmm0, dword [0x5d9834]
lea ecx, [esi + 0x34]
comiss xmm0, dword [esi + 0x30]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4bb8], edi
mov dword [ebp - 0x4bb4], eax
mov dword [ebp - 0x4bc0], ecx
jb 0x50f084
comiss xmm0, dword [ecx]
jb 0x50f08f
mov eax, dword [esi]
mov ecx, dword [edi]
push str.SetTexture_gTexture
push dword [eax]
push 0
push edi
call dword [ecx + 0x8c]
push eax
call fcn.0050fc70
xor eax, eax
add esp, 8
mov dword [ebp - 0x4b9c], eax
cmp dword [ebp + 0x10], eax
jle 0x50f7a2
mov ecx, dword [ebp - 0x4bb4]
movss xmm3, dword [ebp + 0x1c]
add ecx, 0x10
movss xmm4, dword [ebp + 0x18]
mov dword [ebp - 0x4b98], ecx
nop word [eax + eax]
movss xmm2, dword [esi + 0x30]
lea edx, [eax + eax*2]
shl edx, 5
inc eax
movss xmm1, dword [esi + 0x34]
movaps xmm0, xmm4
addss xmm0, dword [ecx - 0x10]
mov dword [ebp - 0x4ba0], eax
mov eax, dword [ecx]
test eax, eax
mov dword [ebp + edx - 0x25e8], 0
mov dword [ebp + edx - 0x25e4], 0x3f800000
movss dword [ebp + edx - 0x25f0], xmm0
movaps xmm0, xmm3
addss xmm0, dword [ecx - 0xc]
mov ecx, dword [ebp + 0x14]
cmovne ecx, eax
mov dword [ebp + edx - 0x25dc], 0
mov eax, dword [ebp - 0x4b98]
mov dword [ebp + edx - 0x25e0], ecx
movss dword [ebp + edx - 0x25ec], xmm0
movaps xmm0, xmm2
mov ecx, dword [ebp + 0x14]
mulss xmm0, dword [eax - 8]
mov dword [ebp + edx - 0x25c8], 0
mov dword [ebp + edx - 0x25c4], 0x3f800000
mov dword [ebp + edx - 0x25bc], 0
movss dword [ebp + edx - 0x25d8], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax - 4]
mov dword [ebp + edx - 0x25a8], 0
mov dword [ebp + edx - 0x25a4], 0x3f800000
mov dword [ebp + edx - 0x259c], 0
movss dword [ebp + edx - 0x25d4], xmm0
movaps xmm0, xmm4
addss xmm0, dword [eax + 4]
movss dword [ebp + edx - 0x25d0], xmm0
movaps xmm0, xmm3
addss xmm0, dword [eax + 8]
mov eax, dword [eax + 0x14]
test eax, eax
cmovne ecx, eax
mov eax, dword [ebp - 0x4b98]
mov dword [ebp + edx - 0x25c0], ecx
movss dword [ebp + edx - 0x25cc], xmm0
movaps xmm0, xmm2
mov ecx, dword [ebp + 0x14]
mulss xmm0, dword [eax + 0xc]
movss dword [ebp + edx - 0x25b8], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + 0x10]
movss dword [ebp + edx - 0x25b4], xmm0
movaps xmm0, xmm4
addss xmm0, dword [eax + 0x18]
movss dword [ebp + edx - 0x25b0], xmm0
movaps xmm0, xmm3
addss xmm0, dword [eax + 0x1c]
mov eax, dword [eax + 0x28]
test eax, eax
cmovne ecx, eax
mov dword [ebp + edx - 0x25a0], ecx
mov ecx, dword [ebp - 0x4b98]
movss dword [ebp + edx - 0x25ac], xmm0
mulss xmm2, dword [ecx + 0x20]
mulss xmm1, dword [ecx + 0x24]
movss dword [ebp + edx - 0x2598], xmm2
movss dword [ebp + edx - 0x2594], xmm1
mov edx, dword [ebp - 0x4ba0]
cmp edx, 0x64
je 0x50f01e
mov eax, dword [ebp + 0x10]
dec eax
cmp dword [ebp - 0x4b9c], eax
jne 0x50f05a
mov ecx, dword [edi]
lea eax, [edx + edx*2]
push str.DrawPrimitive__TriList_
push 0
push eax
lea eax, [ebp - 0x25f0]
push eax
push 0x1c4
push 4
push edi
call dword [ecx + 0x64]
push eax
call fcn.0050fc70
movss xmm3, dword [ebp + 0x1c]
add esp, 8
movss xmm4, dword [ebp + 0x18]
xor eax, eax
mov ecx, dword [ebp - 0x4b98]
jmp 0x50f060
mov eax, dword [ebp - 0x4ba0]
mov edx, dword [ebp - 0x4b9c]
add ecx, 0x3c
inc edx
mov dword [ebp - 0x4b98], ecx
mov dword [ebp - 0x4b9c], edx
cmp edx, dword [ebp + 0x10]
jl 0x50ee80
jmp 0x50f7a2
lea edi, [esi + 0x34]
mov dword [ebp - 0x4bc0], edi
jmp 0x50f092
lea edi, [esi + 0x34]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x4bb4], ecx
test ecx, ecx
jle 0x50f7a2
movss xmm2, dword [ebp + 0x1c]
lea edx, [eax + 0x10]
movss xmm3, dword [ebp + 0x18]
mov dword [ebp - 0x4bbc], edx
nop word [eax + eax]
movaps xmm0, xmm3
movss xmm5, dword [edi]
addss xmm0, dword [edx - 0x10]
movss xmm1, dword [esi + 0x30]
movaps xmm6, xmm5
mulss xmm6, dword [edx - 4]
movaps xmm7, xmm1
mov eax, dword [edx]
test eax, eax
mulss xmm7, dword [edx - 8]
movaps xmm4, xmm5
mov ecx, dword [ebp + 0x14]
movss dword [ebp - 0x70], xmm0
movaps xmm0, xmm2
mulss xmm4, dword [edx + 0x10]
cmovne ecx, eax
mov eax, dword [edx + 0x14]
test eax, eax
addss xmm0, dword [edx - 0xc]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp + 0x14]
cmovne ecx, eax
movss dword [ebp - 0x58], xmm7
mov eax, dword [edx + 0x28]
test eax, eax
movss dword [ebp - 0x6c], xmm0
movaps xmm0, xmm3
addss xmm0, dword [edx + 4]
movaps xmm3, xmm1
mov dword [ebp - 0x40], ecx
mulss xmm3, dword [edx + 0xc]
mov ecx, dword [ebp + 0x14]
cmovne ecx, eax
mov dword [ebp - 0x68], 0
movss dword [ebp - 0x50], xmm0
movaps xmm0, xmm2
addss xmm0, dword [edx + 8]
movss dword [ebp - 0x38], xmm3
mov dword [ebp - 0x64], 0x3f800000
mov dword [ebp - 0x5c], 0
movss dword [ebp - 0x54], xmm6
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [ebp + 0x18]
addss xmm0, dword [edx + 0x18]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0x3f800000
mov dword [ebp - 0x3c], 0
movss dword [ebp - 0x34], xmm4
movss dword [ebp - 0x30], xmm0
movaps xmm0, xmm2
addss xmm0, dword [edx + 0x1c]
movaps xmm2, xmm1
mov dword [ebp - 0x28], 0
mulss xmm2, dword [edx + 0x20]
mov dword [ebp - 0x24], 0x3f800000
mov dword [ebp - 0x20], ecx
movss dword [ebp - 0x2c], xmm0
movaps xmm0, xmm5
mulss xmm0, dword [edx + 0x24]
mov dword [ebp - 0x1c], 0
movss dword [ebp - 0x4b9c], xmm2
movss dword [ebp - 0x18], xmm2
movss dword [ebp - 0x4b98], xmm0
movss dword [ebp - 0x14], xmm0
movaps xmm0, xmm7
minss xmm0, xmm1
movaps xmm1, xmm3
minss xmm1, xmm0
movaps xmm0, xmm6
minss xmm0, xmm5
movss xmm5, dword [ebp - 0x4b98]
minss xmm2, xmm1
movaps xmm1, xmm4
minss xmm1, xmm0
movaps xmm0, xmm5
minss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm7, xmm1
movss dword [ebp - 0x4bb0], xmm0
movss xmm0, dword [ebp - 0x4b9c]
maxss xmm3, xmm7
maxss xmm6, xmm1
mov dword [ebp - 0x3280], 0x64
maxss xmm0, xmm3
lea eax, [ebp - 0x3f08]
mov dword [ebp - 0x3288], eax
maxss xmm4, xmm6
movss dword [ebp - 0x4b9c], xmm0
maxss xmm5, xmm4
movss dword [ebp - 0x4b98], xmm5
movups xmm0, xmmword [ebp - 0x70]
lea eax, [ebp - 0x4b94]
mov dword [ebp - 4], 0
mov dword [ebp - 0x3284], 3
movups xmmword [ebp - 0x3f08], xmm0
mov dword [ebp - 0x3f14], eax
movups xmm0, xmmword [ebp - 0x60]
mov dword [ebp - 0x3f10], 0
mov dword [ebp - 0x3f0c], 0x64
movups xmmword [ebp - 0x3ef8], xmm0
movups xmm0, xmmword [ebp - 0x50]
movups xmmword [ebp - 0x3ee8], xmm0
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [ebp - 0x3ed8], xmm0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [ebp - 0x3ec8], xmm0
movups xmm0, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x3eb8], xmm0
cvtps2pd xmm0, xmm2
sub esp, 8
mov byte [ebp - 4], 1
movsd qword [ebp - 0x4ba8], xmm0
fld qword [ebp - 0x4ba8]
fstp qword [esp]
call fcn.005af1a0
fstp qword [ebp - 0x4ba8]
movsd xmm0, qword [ebp - 0x4ba8]
cvtpd2ps xmm0, xmm0
cvttss2si edi, xmm0
movss xmm0, dword [ebp - 0x4bb0]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x4ba8], xmm0
fld qword [ebp - 0x4ba8]
fstp qword [esp]
call fcn.005af1a0
fstp qword [ebp - 0x4ba8]
movsd xmm0, qword [ebp - 0x4ba8]
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x4b9c]
cvtps2pd xmm0, xmm0
mov dword [ebp - 0x4bc4], eax
movsd qword [ebp - 0x4ba8], xmm0
fld qword [ebp - 0x4ba8]
fstp qword [esp]
call fcn.005b58b0
fstp qword [ebp - 0x4ba8]
movsd xmm0, qword [ebp - 0x4ba8]
cvtpd2ps xmm0, xmm0
cvttss2si esi, xmm0
movss xmm0, dword [ebp - 0x4b98]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x4ba8], xmm0
fld qword [ebp - 0x4ba8]
fstp qword [esp]
call fcn.005b58b0
xor ecx, ecx
add esp, 8
test edi, edi
fstp qword [ebp - 0x4ba8]
movsd xmm0, qword [ebp - 0x4ba8]
cmovns ecx, edi
mov dword [ebp - 0x4bc8], ecx
mov ecx, dword [ebp - 0x4bac]
cvtpd2ps xmm0, xmm0
mov edi, dword [ecx + 0x18]
cmp esi, edi
cmovle edi, esi
mov dword [ebp - 0x4ba4], edi
cvttss2si eax, xmm0
mov esi, dword [ecx + 0x1c]
cmp eax, esi
cmovle esi, eax
mov eax, dword [ecx]
xor edx, edx
mov dword [ebp - 0x4ba0], eax
mov eax, dword [ebp - 0x4bc4]
test eax, eax
mov dword [ebp - 0x4bb0], esi
cmovns edx, eax
mov dword [ebp - 0x4b98], edx
cmp edx, esi
jge 0x50f74e
mov eax, esi
nop word [eax + eax]
mov esi, dword [ebp - 0x4bc8]
cmp esi, edi
jge 0x50f724
nop
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx]
imul eax, edx
mov dword [ebp - 0x4b9c], ecx
lea ecx, [ebp - 0x327c]
mov dword [ebp - 0x25f4], 0x64
add eax, esi
lea edi, [eax + eax*2]
lea eax, [ebp - 0x327c]
mov dword [ebp - 0x25fc], eax
mov eax, dword [ebp - 0x3284]
push eax
mov dword [ebp - 0x25f8], eax
call fcn.00533a50
mov eax, dword [ebp - 0x25f8]
shl eax, 5
push eax
push dword [ebp - 0x3288]
push dword [ebp - 0x25fc]
call fcn.0059d280
add esp, 0xc
mov eax, dword [ebp - 0x25fc]
mov ecx, dword [ebp - 0x4b98]
mov edx, dword [ebp - 0x4bac]
movd xmm2, esi
movss xmm0, dword [eax + 0x18]
cvtdq2ps xmm2, xmm2
mov byte [ebp - 4], 2
movd xmm3, ecx
subss xmm0, xmm2
cvtdq2ps xmm3, xmm3
movss dword [eax + 0x18], xmm0
mov eax, dword [ebp - 0x25fc]
movss xmm0, dword [eax + 0x1c]
subss xmm0, xmm3
movss dword [eax + 0x1c], xmm0
mov eax, dword [edx + 0x1c]
dec eax
cmp ecx, eax
jne 0x50f500
mov ecx, dword [ebp - 0x4ba0]
mov eax, dword [ebp - 0x25fc]
movd xmm1, dword [ecx + 8]
mov ecx, dword [ebp - 0x4b9c]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [ecx + edi*4 + 8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, dword [eax + 0x1c]
movss dword [eax + 0x1c], xmm1
jmp 0x50f506
mov ecx, dword [ebp - 0x4b9c]
mov eax, dword [edx + 0x18]
dec eax
cmp esi, eax
jne 0x50f53f
mov edx, dword [ebp - 0x4ba0]
movd xmm0, dword [ecx + edi*4 + 4]
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x25fc]
movd xmm1, dword [edx + 4]
cvtdq2ps xmm1, xmm1
mov edx, dword [ebp - 0x4bac]
divss xmm1, xmm0
mulss xmm1, dword [eax + 0x18]
movss dword [eax + 0x18], xmm1
mov eax, dword [ebp - 0x25fc]
movss xmm0, dword [eax + 0x38]
subss xmm0, xmm2
movss dword [eax + 0x38], xmm0
mov eax, dword [ebp - 0x25fc]
movss xmm0, dword [eax + 0x3c]
subss xmm0, xmm3
movss dword [eax + 0x3c], xmm0
mov eax, dword [edx + 0x1c]
dec eax
cmp dword [ebp - 0x4b98], eax
jne 0x50f5a4
mov ecx, dword [ebp - 0x4ba0]
mov eax, dword [ebp - 0x25fc]
movd xmm1, dword [ecx + 8]
mov ecx, dword [ebp - 0x4b9c]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [ecx + edi*4 + 8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, dword [eax + 0x3c]
movss dword [eax + 0x3c], xmm1
mov eax, dword [edx + 0x18]
dec eax
cmp esi, eax
jne 0x50f5dd
mov edx, dword [ebp - 0x4ba0]
movd xmm0, dword [ecx + edi*4 + 4]
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x25fc]
movd xmm1, dword [edx + 4]
cvtdq2ps xmm1, xmm1
mov edx, dword [ebp - 0x4bac]
divss xmm1, xmm0
mulss xmm1, dword [eax + 0x38]
movss dword [eax + 0x38], xmm1
mov eax, dword [ebp - 0x25fc]
movss xmm0, dword [eax + 0x58]
subss xmm0, xmm2
movss dword [eax + 0x58], xmm0
mov eax, dword [ebp - 0x25fc]
movss xmm0, dword [eax + 0x5c]
subss xmm0, xmm3
movss dword [eax + 0x5c], xmm0
mov eax, dword [edx + 0x1c]
dec eax
cmp dword [ebp - 0x4b98], eax
jne 0x50f642
mov ecx, dword [ebp - 0x4ba0]
mov eax, dword [ebp - 0x25fc]
movd xmm1, dword [ecx + 8]
mov ecx, dword [ebp - 0x4b9c]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [ecx + edi*4 + 8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, dword [eax + 0x5c]
movss dword [eax + 0x5c], xmm1
mov eax, dword [edx + 0x18]
dec eax
cmp esi, eax
jne 0x50f675
mov edx, dword [ebp - 0x4ba0]
movd xmm0, dword [ecx + edi*4 + 4]
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x25fc]
movd xmm1, dword [edx + 4]
cvtdq2ps xmm1, xmm1
divss xmm1, xmm0
mulss xmm1, dword [eax + 0x58]
movss dword [eax + 0x58], xmm1
lea eax, [ebp - 0x327c]
push eax
call fcn.00513200
add esp, 4
cmp dword [ebp - 0x25f8], 3
jl 0x50f6e4
mov ecx, dword [ebp - 0x4b9c]
mov eax, dword [ebp - 0x4bb8]
push str.SetTexture_gTexture
push dword [ecx + edi*4]
mov eax, dword [eax]
mov edi, dword [ebp - 0x4bb8]
push 0
push edi
call dword [eax + 0x8c]
push eax
call fcn.0050fc70
mov eax, dword [edi]
add esp, 8
push str.DrawPrimitive__Tri__4
push 0
push dword [ebp - 0x25f8]
push dword [ebp - 0x25fc]
push 0x1c4
push 6
push edi
call dword [eax + 0x64]
push eax
call fcn.0050fc70
add esp, 8
mov eax, dword [ebp - 0x25fc]
lea ecx, [ebp - 0x327c]
mov byte [ebp - 4], 1
cmp eax, ecx
je 0x50f703
push 0x20
push eax
call fcn.0059b718
add esp, 8
mov edi, dword [ebp - 0x4ba4]
inc esi
mov ecx, dword [ebp - 0x4bac]
mov edx, dword [ebp - 0x4b98]
cmp esi, edi
jl 0x50f420
mov eax, dword [ebp - 0x4bb0]
inc edx
mov dword [ebp - 0x4b98], edx
cmp edx, eax
jl 0x50f410
mov eax, dword [ebp - 0x3f14]
lea ecx, [ebp - 0x4b94]
cmp eax, ecx
je 0x50f74e
push 0x20
push eax
call fcn.0059b718
add esp, 8
mov eax, dword [ebp - 0x3288]
lea ecx, [ebp - 0x3f08]
mov dword [ebp - 4], 0xffffffff
cmp eax, ecx
je 0x50f770
push 0x20
push eax
call fcn.0059b718
add esp, 8
mov edx, dword [ebp - 0x4bbc]
movss xmm2, dword [ebp + 0x1c]
add edx, 0x3c
sub dword [ebp - 0x4bb4], 1
movss xmm3, dword [ebp + 0x18]
mov esi, dword [ebp - 0x4bac]
mov edi, dword [ebp - 0x4bc0]
mov dword [ebp - 0x4bbc], edx
jne 0x50f0c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059b734
mov esp, ebp
pop ebp
ret 0x18