Function at 0x407160
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x47e6d1
mov eax, dword fs:[0]
push eax
sub esp, 0xc24
mov eax, dword [0x4983f8]
xor eax, esp
mov dword [esp + 0xc20], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4983f8]
xor eax, esp
push eax
lea eax, [esp + 0xc38]
mov dword fs:[0], eax
push 0x64
mov ebx, ecx
call fcn.00460f28
mov edi, eax
mov dword [edi], 0x535a46
mov byte [edi + 3], 0
lea ebp, [edi + 3]
mov byte [ebp + 1], 4
inc ebp
mov dword [ebp + 1], 0x94100
inc ebp
add ebp, 4
mov byte [ebp], 0
inc ebp
mov byte [ebp], 4
add esp, 4
inc ebp
lea eax, [esp + 0x54]
mov dword [ebp], 0x10d00
push eax
mov dword [esp + 0x18], edi
add ebp, 4
call fcn.0042c550
lea ecx, [esp + 0x54]
push ecx
mov eax, 0x12
lea esi, [esp + 0x3c]
mov dword [esp + 0xc44], 0
call fcn.0042e7c0
xor eax, eax
xor edx, edx
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], eax
mov word [esp + 0x20], dx
mov byte [esp + 0xc40], 2
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
mov eax, ebx
call fcn.0040bce0
test eax, eax
je 0x407305
lea esi, [esp + 0x1c]
call fcn.004284b0
test al, al
je 0x407305
mov eax, dword [esp + 0x4c]
push 0x487060
xor edi, edi
lea ecx, [esp + 0x3c]
call fcn.00404a20
test eax, eax
jne 0x407301
mov esi, dword [esp + 0x14]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x18]
sub ebp, esi
push ebp
push esi
mov ecx, ebx
call eax
xor ecx, ecx
cmp eax, ebp
sete cl
push esi
mov edi, ecx
call fcn.00462d5c
add esp, 4
test edi, edi
jne 0x4072cb
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
lea ecx, [esp + 0x1c]
call fcn.00405dc0
lea ecx, [esp + 0x38]
call fcn.00405dc0
lea ecx, [esp + 0x54]
mov dword [esp + 0xc40], 0xffffffff
call fcn.0042c660
xor eax, eax
jmp 0x4073fa
mov eax, ebx
call fcn.00407eb0
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.00405dc0
lea ecx, [esp + 0x38]
call fcn.00405dc0
lea ecx, [esp + 0x54]
mov dword [esp + 0xc40], 0xffffffff
call fcn.0042c660
mov eax, esi
jmp 0x4073fa
mov edi, dword [esp + 0x14]
mov byte [ebp], 0
inc ebp
mov dword [ebp], 0x14
add ebp, 4
mov byte [ebp], 0
inc ebp
mov byte [ebp], 8
inc ebp
xor esi, esi
call fcn.00463191
shl eax, 8
cdq
and edx, 0x7fff
add eax, edx
sar eax, 0xf
mov byte [ebx + esi + 0x94], al
mov byte [ebp], al
inc esi
inc ebp
cmp esi, 8
jl 0x407320
mov byte [ebp], 0
inc ebp
mov byte [ebp], 8
inc ebp
xor esi, esi
call fcn.00463191
shl eax, 8
cdq
and edx, 0x7fff
add eax, edx
sar eax, 0xf
mov byte [ebx + esi + 0x9c], al
mov byte [ebp], al
inc esi
inc ebp
cmp esi, 8
jl 0x407351
mov edx, dword [ebx]
mov eax, dword [edx + 0x18]
xor esi, esi
push esi
sub ebp, edi
push ebp
push edi
mov ecx, ebx
call eax
xor ebx, ebx
cmp eax, ebp
push edi
sete bl
call fcn.00462d5c
mov edi, 8
add esp, 4
cmp dword [esp + 0x34], edi
jb 0x4073ae
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00462b9f
add esp, 4
xor edx, edx
mov ebp, 7
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], esi
mov word [esp + 0x20], dx
cmp dword [esp + 0x50], edi
jb 0x4073d5
mov eax, dword [esp + 0x3c]
push eax
call fcn.00462b9f
add esp, 4
xor ecx, ecx
mov word [esp + 0x3c], cx
lea ecx, [esp + 0x54]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], esi
mov dword [esp + 0xc40], 0xffffffff
call fcn.0042c660
mov eax, ebx
mov ecx, dword [esp + 0xc38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc20]
xor ecx, esp
call fcn.00462baa
add esp, 0xc30
ret