Function at 0x520b70
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59cac7
mov eax, dword fs:[0]
push eax
sub esp, 0x388
mov eax, dword [0x60b4e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x2a8], ebx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x2b4], eax
lea eax, [ebx + 0x30]
push eax
mov dword [ebp - 0x2e4], eax
call fcn.00434520
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 0
push eax
call fcn.0044c4c0
add esp, 4
lea ecx, [ebp - 0x64]
push 0x10
push 0x5cbc34
call fcn.0040650c
push 0
push 0x5cbc58
lea ecx, [ebp - 0x64]
call fcn.0040c43b
cmp eax, 0xffffffff
je 0x5214a6
push 0x1c0
lea eax, [ebp - 0x29c]
push 0
push eax
call fcn.0055dac0
add esp, 0xc
lea ecx, [ebp - 0x29c]
push 0
push 1
call fcn.00437900
cmp dword [ebp - 0x50], 8
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0x64]
push eax
lea eax, [ebp - 0x29c]
push eax
call fcn.00520130
add esp, 8
test eax, eax
jne 0x52149b
push eax
lea ecx, [ebp - 0x29c]
call fcn.00439330
mov esi, eax
test esi, esi
je 0x52149b
xor eax, eax
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 7
mov word [ebp - 0x7c], ax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 7
mov word [ebp - 0x34], ax
push 0x5cbc74
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00439330
cmp dword [ebx + 0x70], 0
je 0x520ccb
test eax, eax
je 0x520ce8
push 0
push 0x5cbc80
mov ecx, eax
call fcn.00438cb0
test eax, eax
je 0x520ce8
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0044f780
add esp, 8
lea ecx, [ebp - 0x34]
push eax
call fcn.00405898
lea ecx, [ebp - 0x4c]
call fcn.004047a9
jmp 0x520ce8
lea eax, [ebx + 0x60]
lea ecx, [ebp - 0x34]
cmp ecx, eax
je 0x520ce8
cmp dword [eax + 0x14], 8
jb 0x520cdd
mov eax, dword [eax]
push 0
push eax
lea ecx, [ebp - 0x34]
call fcn.00404870
push 0x5cbc88
mov ecx, esi
call fcn.00439330
test eax, eax
je 0x520d30
push 0x5cbc94
mov ecx, eax
call fcn.00439330
test eax, eax
je 0x520d30
mov ecx, eax
call fcn.004397f0
test eax, eax
je 0x520d30
push eax
lea eax, [ebp - 0x4c]
mov ecx, ebx
push eax
call fcn.00520730
push eax
lea ecx, [ebp - 0x7c]
call fcn.00405898
lea ecx, [ebp - 0x4c]
call fcn.004047a9
push 0x5cbcac
mov ecx, esi
call fcn.00439330
test eax, eax
je 0x52148b
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
xor esi, esi
movq qword [ebp - 0x1c], xmm0
xor edi, edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], esi
push 0x5cbcbc
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00439330
mov dword [ebp - 0x2ac], eax
test eax, eax
je 0x521437
nop
push 0
push 0x5cbcc8
mov ecx, eax
call fcn.00438cb0
test eax, eax
je 0x521413
push 0x1b8
call fcn.00525a98
mov esi, eax
add esp, 4
mov dword [ebp - 0x2e8], esi
mov byte [ebp - 4], 5
test esi, esi
je 0x520dce
push 0x1b8
push 0
push esi
call fcn.0055dac0
add esp, 0xc
mov ecx, esi
call fcn.00524090
mov ebx, eax
jmp 0x520dd0
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2a4], ebx
mov byte [ebp - 4], 4
mov dword [ebp - 0x2a0], ebx
cmp dword [ebp - 0x14], eax
je 0x520df2
mov dword [eax], ebx
add eax, 4
mov dword [ebp - 0x18], eax
jmp 0x520e0e
lea ecx, [ebp - 0x2a0]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.0051fa50
mov ebx, dword [ebp - 0x2a0]
mov dword [ebp - 0x2a4], ebx
push 0x60
lea eax, [ebp - 0xdc]
push 0
push eax
call fcn.0055dac0
mov esi, dword [ebp - 0x2a8]
add esp, 0xc
cmp dword [esi + 0x2c], 8
lea ecx, [esi + 0x18]
mov dword [ebp - 0x2dc], ecx
mov eax, ecx
jb 0x520e3a
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00404a0e
cmp dword [ebp - 0x20], 8
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 6
cmovae eax, dword [ebp - 0x34]
push eax
call fcn.00404a0e
cmp dword [ebp - 0x68], 8
lea eax, [ebp - 0x7c]
lea ecx, [ebp - 0x2c4]
mov byte [ebp - 4], 7
cmovae eax, dword [ebp - 0x7c]
push eax
call fcn.00404a0e
cmp dword [esi + 0x5c], 8
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 8
mov eax, ecx
mov dword [ebp - 0x2e0], ecx
jb 0x520e93
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00404a0e
cmp dword [esi + 0x44], 8
lea eax, [esi + 0x30]
mov byte [ebp - 4], 9
jb 0x520eaf
mov eax, dword [esi + 0x30]
push eax
lea ecx, [ebp - 0x2bc]
call fcn.00404a0e
cmp dword [esi + 0x14], 8
mov eax, esi
mov byte [ebp - 4], 0xa
jb 0x520ec9
mov eax, dword [esi]
push eax
lea ecx, [ebp - 0x2b8]
call fcn.00404a0e
lea eax, [ebp - 0x2cc]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2c0]
push eax
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0xdc]
call fcn.00524a50
mov edx, dword [ebp - 0x2b8]
or eax, 0xffffffff
mov byte [ebp - 4], 0xd
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x520f30
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2bc]
or eax, 0xffffffff
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x520f52
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c0]
or eax, 0xffffffff
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x520f74
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c4]
or eax, 0xffffffff
mov byte [ebp - 4], 0x10
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x520f96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c8]
or eax, 0xffffffff
mov byte [ebp - 4], 0x11
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x520fb8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2cc]
or eax, 0xffffffff
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x520fda
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x2ac]
call fcn.0051ffb0
mov edi, eax
add esp, 4
mov dword [ebp - 0x2b0], edi
test edi, edi
je 0x5213cd
push 0
push 0x5cbccc
mov ecx, edi
call fcn.00438cb0
push 0
push 0x5cbcd8
mov ecx, edi
mov esi, eax
call fcn.00438cb0
mov edi, eax
test esi, esi
je 0x521059
mov ecx, dword [ebp - 0x2a8]
lea eax, [ebp - 0x4c]
push esi
push eax
call fcn.00520730
cmp dword [ebp - 0x3c], 0
mov byte [ebp - 4], 0x13
je 0x52104d
cmp dword [ebp - 0x38], 8
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0xdc]
cmovae eax, dword [ebp - 0x4c]
push eax
call fcn.00524be0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x12
call fcn.004047a9
test edi, edi
je 0x5211bd
call fcn.00526109
test eax, eax
je 0x521509
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2a0], esi
mov byte [ebp - 4], 0x14
test edi, 0xffff0000
jne 0x521124
movzx edi, di
push edi
call fcn.00525fba
test eax, eax
je 0x52114c
push edi
push eax
call fcn.00404bf8
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x52114c
movzx ecx, word [ebx]
lea eax, [ebx + 2]
push 0
push 0
push 0
push 0
push ecx
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
js 0x5214ff
mov ecx, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub ecx, edi
or ecx, edx
jge 0x5210fa
push edi
lea ecx, [ebp - 0x2a0]
call fcn.0040b7a6
mov esi, dword [ebp - 0x2a0]
movzx eax, word [ebx]
push 0
push 0
push edi
push esi
push eax
lea eax, [ebx + 2]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp edi, dword [esi - 8]
jg 0x5214ff
mov dword [esi - 0xc], edi
mov byte [edi + esi], 0
jmp 0x52114c
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x521130
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2a0]
call fcn.0040b8c1
mov esi, dword [ebp - 0x2a0]
mov ebx, dword [ebp - 0x2a4]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x15
mov edi, dword [ebx + 0xf0]
sub edi, 0x10
cmp ecx, edi
je 0x5211ae
cmp dword [edi + 0xc], 0
jl 0x52119f
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x52119f
push ecx
call fcn.00428566
add esp, 4
lea edx, [edi + 0xc]
mov esi, eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x521194
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
lea eax, [esi + 0x10]
mov dword [ebx + 0xf0], eax
jmp 0x5211ae
push dword [esi - 0xc]
lea ecx, [ebx + 0xf0]
push esi
call fcn.0040b8c1
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x12
call fcn.00404ad1
mov eax, dword [ebp - 0x2dc]
cmp dword [eax + 0x14], 8
jb 0x5211cb
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00404a0e
mov ebx, dword [ebp - 0x2a4]
lea eax, [ebp - 0x2d0]
push eax
mov byte [ebp - 4], 0x16
lea ecx, [ebx + 0x1a0]
call fcn.00446790
mov edx, dword [ebp - 0x2d0]
or eax, 0xffffffff
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x521215
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x2a8]
mov eax, ecx
cmp dword [ecx + 0x14], 8
jb 0x521225
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2d4]
call fcn.00404a0e
lea eax, [ebp - 0x2d4]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebx + 0x1a4]
call fcn.00446790
mov edx, dword [ebp - 0x2d4]
or eax, 0xffffffff
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x521269
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2e0]
cmp dword [eax + 0x14], 8
jb 0x521277
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2d8]
call fcn.00404a0e
lea eax, [ebp - 0x2d8]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebx + 0x1a8]
call fcn.00446790
mov edx, dword [ebp - 0x2d8]
or eax, 0xffffffff
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5212bb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x2e4]
mov eax, ecx
cmp dword [ecx + 0x14], 8
jb 0x5212cb
mov eax, dword [ecx]
push dword [ebp - 0x2b0]
push eax
lea eax, [ebp - 0x394]
push eax
call fcn.00520550
add esp, 0xc
mov esi, eax
lea edi, [ebx + 0xf4]
mov byte [ebp - 4], 0x19
cmp edi, esi
je 0x521304
cmp dword [esi + 0x14], 8
jb 0x5212f9
mov eax, dword [esi]
push dword [esi + 0x10]
mov ecx, edi
push eax
call fcn.00404870
lea eax, [esi + 0x18]
lea ecx, [edi + 0x18]
cmp ecx, eax
je 0x521321
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521318
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00404870
mov eax, dword [esi + 0x30]
lea ecx, [edi + 0x34]
mov dword [edi + 0x30], eax
lea eax, [esi + 0x34]
cmp ecx, eax
je 0x521344
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x52133b
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00404870
lea eax, [esi + 0x4c]
lea ecx, [edi + 0x4c]
cmp ecx, eax
je 0x521361
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521358
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00404870
lea eax, [esi + 0x64]
lea ecx, [edi + 0x64]
cmp ecx, eax
je 0x52137e
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521375
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00404870
lea eax, [esi + 0x7c]
lea ecx, [edi + 0x7c]
cmp ecx, eax
je 0x52139b
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521392
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00404870
add esi, 0x94
lea ecx, [edi + 0x94]
cmp ecx, esi
je 0x5213be
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x5213b5
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00404870
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x12
call fcn.0051fbf0
lea eax, [ebp - 0xdc]
mov ecx, ebx
push eax
call fcn.00524800
mov ecx, dword [ebp - 0x2b4]
mov dword [ebp - 0x2b0], ebx
mov eax, dword [ecx + 4]
cmp dword [ecx + 8], eax
je 0x5213f7
mov dword [eax], ebx
add dword [ecx + 4], 4
jmp 0x521404
lea edx, [ebp - 0x2b0]
push edx
push eax
call fcn.0040c598
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 4
call fcn.00426873
mov ecx, dword [ebp - 0x2ac]
push 0x5cbcbc
call fcn.00439cc0
mov dword [ebp - 0x2ac], eax
test eax, eax
jne 0x520d80
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ecx, esi
sub ecx, edi
mov eax, ecx
sar eax, 2
cmp eax, 1
jbe 0x521483
lea eax, [ecx + 3]
xor ebx, ebx
shr eax, 2
xor ecx, ecx
cmp edi, esi
cmova eax, ecx
mov dword [ebp - 0x2b4], eax
test eax, eax
je 0x521483
nop
mov esi, dword [edi]
lea eax, [ebp - 0x1c]
sub esp, 0xc
mov ecx, esp
push eax
call fcn.0051fb60
mov ecx, esi
call fcn.005249c0
inc ebx
lea edi, [edi + 4]
cmp ebx, dword [ebp - 0x2b4]
jne 0x521460
lea ecx, [ebp - 0x1c]
call fcn.00446530
lea ecx, [ebp - 0x34]
call fcn.004047a9
lea ecx, [ebp - 0x7c]
call fcn.004047a9
lea ecx, [ebp - 0x29c]
call fcn.00437ed0
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x5214dc
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5214d2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x5214fa
push edx
push ecx
call fcn.0055a64a
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055a658
mov esp, ebp
pop ebp
ret 4
call fcn.005617aa
push 0x80070057
call fcn.00404c28
push 0x80004005
call fcn.00404c28
int3