Function at 0x514f64
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x515408
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x298]
add eax, 0x38
mov edx, 0x515420
call fcn.00403c38
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax]
call dword [edx + 0x40]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x40]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, 0x515440
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, 0x51544c
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, 0x51545c
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x30]
mov edx, 0x51546c
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x30]
mov edx, 0x5154a8
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
call fcn.004490a0
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 2
je 0x5153ed
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
call fcn.0042b56c
mov edi, eax
dec edi
test edi, edi
jl 0x51505c
inc edi
xor esi, esi
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0042b57c
xor edx, edx
call fcn.0042b468
inc esi
dec edi
jne 0x515041
cmp dword [ebp - 0xc], 1
jne 0x51523e
push dword [0x53722c]
push dword [0x537298]
push 0x5154d8
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00403f20
mov ecx, dword [ebp - 0x18]
mov dl, 1
mov eax, dword [0x447ee8]
call fcn.00447f58
mov dword [ebp - 4], eax
push 0
mov ecx, 0x5154e8
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.004484a0
mov esi, eax
push 0
mov ecx, 0x515508
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.004484a0
mov edi, eax
push 0
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x18]
mov eax, edi
call fcn.00407ba8
mov ecx, dword [ebp - 0x18]
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.00448380
push 0
push 0x51551c
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.00408190
push dword [ebp - 0x1c]
push 0x515548
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00403f20
mov eax, dword [ebp - 0x18]
mov cx, word [0x515564]
mov dl, 2
call fcn.004434a0
cmp eax, 7
je 0x5153ed
mov edx, edi
dec edx
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
call fcn.0042b7c4
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0042b57c
mov dl, 1
call fcn.0042b468
dec esi
push esi
mov ecx, 0x5154e8
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.0044879c
push 1
mov ecx, 0x515508
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.0044879c
lea edx, [ebp - 0x18]
mov eax, edi
call fcn.00407ba8
mov ecx, dword [ebp - 0x18]
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.00448810
mov dword [ebp - 8], 1
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
call fcn.0042b56c
mov edi, eax
inc edi
test edi, edi
jle 0x515203
mov esi, 1
push 0
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x18]
mov eax, esi
call fcn.00407ba8
mov ecx, dword [ebp - 0x18]
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.00448380
cmp dword [ebp - 0x14], 0
je 0x5151f3
mov eax, dword [ebp - 0x14]
push eax
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.00407ba8
mov ecx, dword [ebp - 0x18]
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.0044858c
cmp dword [ebp - 0x14], 0
jne 0x5151fc
dec dword [ebp - 8]
inc dword [ebp - 8]
inc esi
dec edi
jne 0x5151ae
push 0
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x1c]
mov eax, 1
call fcn.00407ba8
mov ecx, dword [ebp - 0x1c]
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.00448380
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebx + 0x2cc]
mov eax, ebx
call fcn.00513fc4
mov eax, dword [ebp - 4]
call fcn.0040301c
cmp dword [ebp - 0xc], 0
jne 0x5153ed
lea eax, [ebp - 0x18]
mov edx, dword [0x53722c]
mov dl, byte [edx]
call fcn.00403d88
lea eax, [ebp - 0x18]
mov edx, 0x515570
call fcn.00403e68
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x2c8]
call fcn.004425f8
mov eax, dword [ebx + 0x2c8]
add eax, 0x64
mov edx, 0x51557c
call fcn.00403c38
mov esi, dword [ebx + 0x2c8]
mov dword [esi + 0x2c], 0x1d
lea eax, [esi + 0x54]
mov edx, 0x515594
call fcn.00403c38
mov eax, dword [ebx + 0x2c8]
mov edx, dword [eax]
call dword [edx + 0x34]
lea edx, [ebp - 0x10]
mov eax, dword [ebx + 0x2c8]
call fcn.00442590
cmp dword [ebp - 0x10], 0
je 0x5153ed
push dword [0x53722c]
push dword [0x537298]
push 0x5154d8
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00403f20
mov ecx, dword [ebp - 0x18]
mov dl, 1
mov eax, dword [0x447ee8]
call fcn.00447f58
mov dword [ebp - 4], eax
push 0
mov ecx, 0x5154e8
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.004484a0
mov esi, eax
mov ecx, ebx
mov dl, 1
mov eax, dword [0x42a2f0]
call fcn.0042ae1c
mov edi, eax
mov dword [esi*4 + 0x537390], edi
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x10]
call fcn.00408190
mov edx, dword [ebp - 0x18]
mov eax, edi
call fcn.0042b3f8
mov eax, dword [esi*4 + 0x537390]
add eax, 0x3c
mov edx, dword [ebp - 0x10]
call fcn.00403c38
mov eax, dword [esi*4 + 0x537390]
mov dword [eax + 0x64], ebx
mov dword [eax + 0x60], 0x514e10
mov ecx, eax
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0042b6c8
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0042b57c
mov dl, 1
call fcn.0042b468
mov eax, dword [ebp - 0x10]
push eax
lea edx, [ebp - 0x18]
lea edi, [esi + 1]
mov eax, edi
call fcn.00407ba8
mov ecx, dword [ebp - 0x18]
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.0044858c
push edi
mov ecx, 0x5154e8
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.0044879c
push edi
mov ecx, 0x515508
mov edx, 0x5154f8
mov eax, dword [ebp - 4]
call fcn.0044879c
mov eax, dword [ebp - 4]
call fcn.0040301c
mov eax, 0x537248
mov edx, dword [ebp - 0x10]
call fcn.00403c38
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebx + 0x2cc]
mov eax, ebx
call fcn.00513fc4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51540f
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00403c08
ret